Class MaskingState

java.lang.Object
dev.blaauwendraad.masker.json.MaskingState

public final class MaskingState extends Object
Represents the state of the JsonMasker at a given point in time during the JsonMasker.mask(byte[]) operation.
  • Constructor Details

    • MaskingState

      public MaskingState(byte[] message, int currentIndex)
  • Method Details

    • incrementCurrentIndex

      public void incrementCurrentIndex()
    • setCurrentIndex

      public void setCurrentIndex(int currentIndex)
    • setMessage

      public void setMessage(byte[] newMessage)
    • byteAtCurrentIndex

      public byte byteAtCurrentIndex()
    • byteAtCurrentIndexMinusOne

      public byte byteAtCurrentIndexMinusOne()
    • currentIndex

      public int currentIndex()
    • messageLength

      public int messageLength()
    • getMessage

      public byte[] getMessage()
    • addReplacementOperation

      public void addReplacementOperation(int startIndex, int endIndex, byte[] mask, int maskRepeat)
      Adds new delayed replacement operation to the list of operations to be applied to the message.
    • getReplacementOperations

      public List<MaskingState.ReplacementOperation> getReplacementOperations()
      Returns the list of replacement operations that need to be applied to the message.
    • getReplacementOperationsTotalDifference

      public int getReplacementOperationsTotalDifference()
      Returns the total difference between the masks and target values lengths of all replacement operations.
    • expandCurrentJsonPath

      public void expandCurrentJsonPath(int start, int offset)
      Expands current jsonpath with a new "key" segment.
      Parameters:
      start - the index of a new segment start in message
      offset - the length of a new segment.
    • expandCurrentJsonPath

      public void expandCurrentJsonPath()
      Expands current jsonpath with a new array segment.
    • backtrackCurrentJsonPath

      public void backtrackCurrentJsonPath()
      Backtracks current jsonpath to the previous segment.
    • isInArray

      public boolean isInArray()
      Checks if the last segment of the current jsonpath is an array index.
    • incrementCurrentJsonPathArrayIndex

      public void incrementCurrentJsonPathArrayIndex()
      Increments an array index in the last segment of the current jsonpath. Throws IllegalStateException if the last segment is not an array index.
    • getCurrentJsonPath

      public Iterator<MaskingState.SegmentReference> getCurrentJsonPath()
      Returns the iterator over the json path component references from head to tail
    • toString

      public String toString()
      Overrides:
      toString in class Object