Class ContentReference

  • All Implemented Interfaces:
    java.io.Serializable

    public class ContentReference
    extends java.lang.Object
    implements java.io.Serializable
    Abstraction that encloses information about content being processed -- input source or output target, streaming or not -- for the purpose of including pertinent information in location (see JsonLocation) objections, most commonly to be printed out as part of Exception messages.
    Since:
    2.13
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_MAX_CONTENT_SNIPPET
      Include at most first 500 characters/bytes from contents; should be enough to give context, but not cause unfortunate side effects in things like logs.
    • Field Detail

      • DEFAULT_MAX_CONTENT_SNIPPET

        public static final int DEFAULT_MAX_CONTENT_SNIPPET
        Include at most first 500 characters/bytes from contents; should be enough to give context, but not cause unfortunate side effects in things like logs.
        Since:
        2.9
        See Also:
        Constant Field Values
    • Method Detail

      • unknown

        public static ContentReference unknown()
        Accessor for getting a placeholder for cases where actual content is not known (or is not something that system wants to expose).
        Returns:
        Placeholder "unknown" (or "empty") instance to use instead of null reference
      • construct

        public static ContentReference construct​(boolean isContentTextual,
                                                 java.lang.Object rawContent)
      • construct

        public static ContentReference construct​(boolean isContentTextual,
                                                 java.lang.Object rawContent,
                                                 int offset,
                                                 int length)
      • rawReference

        public static ContentReference rawReference​(boolean isContentTextual,
                                                    java.lang.Object rawContent)
        Factory method for legacy code to use for constructing instances to content about which only minimal amount of information is available. Assumed not to contain textual content (no snippet displayed).
        Parameters:
        isContentTextual - Is raw content assumed to have textual content (true) or binary (false)
        rawContent - Underlying raw content access
        Returns:
        Instance with minimal information about content (basically just raw content reference without offsets
      • rawReference

        public static ContentReference rawReference​(java.lang.Object rawContent)
      • hasTextualContent

        public boolean hasTextualContent()
      • getRawContent

        public java.lang.Object getRawContent()
      • contentOffset

        public int contentOffset()
      • contentLength

        public int contentLength()
      • buildSourceDescription

        public java.lang.String buildSourceDescription()
        Method for constructing a "source description" when content represented by this reference is read.
        Returns:
        Description constructed
      • appendSourceDescription

        public java.lang.StringBuilder appendSourceDescription​(java.lang.StringBuilder sb)
        Method for appending a "source description" when content represented by this reference is read.
        Parameters:
        sb - StringBuilder to append description to
        Returns:
        StringBuilder passed as argument (for call chaining)
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object