Interface Document

  • All Superinterfaces:
    Serializable
    All Known Implementing Classes:
    BooleanDocument, ListDocument, MapDocument, NullDocument, NumberDocument, StringDocument

    @Immutable
    public interface Document
    extends Serializable
    Interface for Document Types. Document types are used to carry open content that is Data with no fixed schema, data that can't be modeled using rigid types, or data that has a schema that evolves outside the purview of a service without requiring techniques like embedding JSON inside JSON strings. Document type value is serialized using the same format as its surroundings and requires no additional encoding or escaping. This interface specifies all the methods to access a Document, also provides constructor methods for instantiating Document.
    • Method Detail

      • fromString

        static Document fromString​(String string)
        Create Document from a string, using the provided String.
        Parameters:
        string - String value.
        Returns:
        Implementation of Document that stores a String.
      • fromBoolean

        static Document fromBoolean​(boolean booleanValue)
        Create Document from a boolean.
        Parameters:
        booleanValue - Boolean value.
        Returns:
        Implementation of Document that stores a Boolean.
      • fromMap

        static Document fromMap​(Map<String,​Document> documentMap)
        Creates a Document from a Map of Documents.
        Parameters:
        documentMap - Map with Keys of Type Strinb and Value of Document type.
        Returns:
        Implementation of Document that stores a Map with String Keys and Document Values.
      • fromList

        static Document fromList​(List<Document> documentList)
        Create a Document.ListBuilder for generating a Document by directly allowing user add Documents.
        Parameters:
        documentList - List of Documents.
        Returns:
        Implementation of Document that stores a Lists of Documents.
      • mapBuilder

        static Document.MapBuilder mapBuilder()
        Create a Document.MapBuilder for generating a Document by directly allowing user to put String Keys and Document Values in the builder methods.
        Returns:
        Builder to Construct Document with Map of Documents.
      • listBuilder

        static Document.ListBuilder listBuilder()
        Provides Builder methods of Document.ListBuilder to directly create Document with List of Documents
        Returns:
        Builder methods to Construct Document with List of Documents.
      • fromNull

        static Document fromNull()
        Creates a document is a null value.
        Returns:
        Implementation of a Null Document.
      • unwrap

        Object unwrap()
        Gets the value of the document as a Java type that represents the document type data model: boolean, String for Strings and Numbers, null, List<Object>, or Map<String, Object>.
        Returns:
        Returns the document as one of a fixed set of Java types.
      • isNull

        default boolean isNull()
        Checks if the document is a null value.
        Returns:
        Returns true if the document is a null value.
      • isBoolean

        default boolean isBoolean()
        Returns:
        Returns true if this document is a boolean value.
      • asBoolean

        boolean asBoolean()
        Gets the document as a boolean if it is a boolean.
        Returns:
        Returns the boolean value.
        Throws:
        UnsupportedOperationException - if the document is not a boolean.
      • isString

        default boolean isString()
        Returns:
        Returns true if this document is a string value.
      • isNumber

        default boolean isNumber()
        Returns:
        Returns true if this document is a number value.
      • isMap

        default boolean isMap()
        Returns:
        Returns true if this document is a Map.
      • isList

        default boolean isList()
        Returns:
        Returns true if this document is a document type List.
      • asList

        List<Document> asList()
        Gets the document as a List if it is a document type array.

        Each value contained in the List is the same as how the value would be represented by Document.

        Returns:
        Returns the lists of Document.
        Throws:
        UnsupportedOperationException - if the document is not an List.
      • accept

        <R> R accept​(DocumentVisitor<? extends R> visitor)
        Accepts a visitor to the Document.
        Type Parameters:
        R - visitor return type.
        Parameters:
        visitor - Visitor to dispatch to.
        Returns:
        Returns the accepted result.
      • accept

        void accept​(VoidDocumentVisitor visitor)
        Accepts a visitor with the Document.
        Parameters:
        visitor - Visitor to dispatch to.