Enum Class DataMask

java.lang.Object
java.lang.Enum<DataMask>
com.google.zxing.qrcode.decoder.DataMask
All Implemented Interfaces:
Serializable, Comparable<DataMask>, Constable

enum DataMask extends Enum<DataMask>

Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix, including areas used for finder patterns, timing patterns, etc. These areas should be unused after the point they are unmasked anyway.

Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position and j is row position. In fact, as the text says, i is row position and j is column position.

  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    000: mask bits for which (x + y) mod 2 == 0
    001: mask bits for which x mod 2 == 0
    010: mask bits for which y mod 3 == 0
    011: mask bits for which (x + y) mod 3 == 0
    100: mask bits for which (x/2 + y/3) mod 2 == 0
    101: mask bits for which xy mod 2 + xy mod 3 == 0 equivalently, such that xy mod 6 == 0
    110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0 equivalently, such that xy mod 6 invalid input: '<' 3
    111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0 equivalently, such that (x + y + xy mod 3) mod 2 == 0
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) abstract boolean
    isMasked(int i, int j)
     
    (package private) final void
    unmaskBitMatrix(BitMatrix bits, int dimension)
    Implementations of this method reverse the data masking process applied to a QR Code and make its bits ready to read.
    static DataMask
    Returns the enum constant of this class with the specified name.
    static DataMask[]
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • DATA_MASK_000

      public static final DataMask DATA_MASK_000
      000: mask bits for which (x + y) mod 2 == 0
    • DATA_MASK_001

      public static final DataMask DATA_MASK_001
      001: mask bits for which x mod 2 == 0
    • DATA_MASK_010

      public static final DataMask DATA_MASK_010
      010: mask bits for which y mod 3 == 0
    • DATA_MASK_011

      public static final DataMask DATA_MASK_011
      011: mask bits for which (x + y) mod 3 == 0
    • DATA_MASK_100

      public static final DataMask DATA_MASK_100
      100: mask bits for which (x/2 + y/3) mod 2 == 0
    • DATA_MASK_101

      public static final DataMask DATA_MASK_101
      101: mask bits for which xy mod 2 + xy mod 3 == 0 equivalently, such that xy mod 6 == 0
    • DATA_MASK_110

      public static final DataMask DATA_MASK_110
      110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0 equivalently, such that xy mod 6 invalid input: '<' 3
    • DATA_MASK_111

      public static final DataMask DATA_MASK_111
      111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0 equivalently, such that (x + y + xy mod 3) mod 2 == 0
  • Constructor Details

    • DataMask

      private DataMask()
  • Method Details

    • values

      public static DataMask[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static DataMask valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • unmaskBitMatrix

      final void unmaskBitMatrix(BitMatrix bits, int dimension)

      Implementations of this method reverse the data masking process applied to a QR Code and make its bits ready to read.

      Parameters:
      bits - representation of QR Code bits
      dimension - dimension of QR Code, represented by bits, being unmasked
    • isMasked

      abstract boolean isMasked(int i, int j)