Class TokenStreamLocation

java.lang.Object
tools.jackson.core.TokenStreamLocation
All Implemented Interfaces:
Serializable

public class TokenStreamLocation extends Object implements Serializable
Object that encapsulates Location information used for reporting parsing (or potentially generation) errors, as well as current location within input streams.

NOTE: users should be careful if using equals(java.lang.Object) implementation as it may or may not compare underlying "content reference" for equality. Instead if would make sense to explicitly implementing equality checks using specific criteria caller desires
NOTE: in Jackson 2.x this type was named JsonLocation

See Also:
  • Field Details

    • NA

      public static final TokenStreamLocation NA
      Shared immutable "N/A location" that can be returned to indicate that no location information is available.
    • _totalBytes

      protected final long _totalBytes
    • _totalChars

      protected final long _totalChars
    • _lineNr

      protected final int _lineNr
    • _columnNr

      protected final int _columnNr
    • _contentReference

      protected final ContentReference _contentReference
      Reference to input source; never null (but may be that of ContentReference.unknown()).
    • _sourceDescription

      protected transient String _sourceDescription
      Lazily constructed description for source; constructed if and when sourceDescription() is called, retained.
      Since:
      2.13
  • Constructor Details

    • TokenStreamLocation

      public TokenStreamLocation(ContentReference contentRef, long totalChars, int lineNr, int colNr)
    • TokenStreamLocation

      public TokenStreamLocation(ContentReference contentRef, long totalBytes, long totalChars, int lineNr, int columnNr)
  • Method Details

    • contentReference

      public ContentReference contentReference()
      Accessor for information about the original input source content is being read from. Returned reference is never null but may not contain useful information.

      NOTE: not getter, on purpose, to avoid inclusion if serialized using default Jackson serializer.

      Returns:
      Object with information about input source.
    • getLineNr

      public int getLineNr()
      Access for getting line number of this location, if available. Note that line number is typically not available for binary formats.
      Returns:
      Line number of the location (1-based), if available; -1 if not.
    • getColumnNr

      public int getColumnNr()
      Access for getting column offset of this location, if available. Note that column position is typically not available for binary formats. Note: this returns an offset that is in units of input, so for byte-based input sources (like InputStream) this does not take into account multi-byte characters: one logical character can be 1, 2 or 3 bytes long. To calculate column position in characters either char-based input source (like Reader) needs to be used, or content needs to be explicitly decoded.
      Returns:
      Column offset of the location (1-based), if available; -1 if not.
    • getCharOffset

      public long getCharOffset()
      Returns:
      Character offset within underlying stream, reader or writer, if available; -1 if not.
    • getByteOffset

      public long getByteOffset()
      Returns:
      Byte offset within underlying stream, reader or writer, if available; -1 if not.
    • sourceDescription

      public String sourceDescription()
      Accessor for getting a textual description of source reference (Object returned by contentReference()), as included in description returned by toString().

      Note: implementation will simply call ContentReference.buildSourceDescription())

      NOTE: not added as a "getter" to prevent it from getting serialized.

      Returns:
      Description of the source reference (see contentReference()
    • offsetDescription

      public String offsetDescription()
      Accessor for a brief summary of Location offsets (line number, column position, or byte offset, if available).
      Returns:
      Description of available relevant location offsets; combination of line number and column position or byte offset
    • appendOffsetDescription

      public StringBuilder appendOffsetDescription(StringBuilder sb)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public StringBuilder toString(StringBuilder sb)