Interface Node

    • Method Detail

      • parse

        static Node parse​(Map<String,​?> map)
        Parses a node of unknown type and without any known context for it. If the node happens to be a doc, then this is equivalent to calling Doc.parse(Map) directly. Otherwise, the ADF node is parsed as an isolated fragment with no restrictions on the type of node it may be.
        Parameters:
        map - the ADF content to parse.
        Returns:
        the parsed node
        Throws:
        AdfException - if the content cannot be parsed
      • parse

        static <T extends Node> T parse​(Class<T> requiredClass,
                                        Map<String,​?> map)
        Parses a node of unknown type and without any known context for it. If the node happens to be a doc and the requiredClass is appropriate, then this is equivalent to calling Doc.parse(Map) directly. Otherwise, the ADF node is parsed as an isolated fragment with the only restriction being that the returned node must be assignable to requiredClass.
        Parameters:
        requiredClass - a return type to restrict the types of nodes that may be returned
        map - the ADF content to parse.
        Returns:
        the parsed node
        Throws:
        AdfException - if the content cannot be parsed or is not assignable to requiredClass
      • copy

        Node copy()
        Description copied from interface: Element
        Returns a deep copy of this element, including copies of any nodes or marks that it contains. The copy will not necessarily be in exactly the same state as the original in some cases. For example, a text node that is used inside a codeBlock will have the ability to use marks on it disabled, but a copy made of the text node using this method will not similarly disallow marks unless it is also added to a content node with those same restrictions.

        Implementations notes:

        • Implementations should narrow the return type.
        • Implementations should return this if the element is immutable. The @Immutable annotation should be used on the class to offer additional confirmation of this intent.
        • Implementations should return parse(toMap()) if they have state.
        • While there may be cases where it is worthwhile to do something more efficient than the conversion to a map and back, this is discouraged because it would add yet another fragile piece of code that breaks when new data is added to the node. The parse and toMap methods already have to be updated in these circumstances, so it makes sense to take advantage of that.
        Specified by:
        copy in interface Element
        Returns:
        a copy of this element, or this if the element is immutable anyway
      • toPlainText

        String toPlainText()
        Renders this node as plain-text suitable for viewing by end users. Note that this is distinct from the more informative toString() value, which is meant for debugging and logging, only.
      • appendPlainText

        void appendPlainText​(StringBuilder sb)
        Renders this node as plain-text suitable for viewing by end users. This is equivalent to calling toPlainText() and appending the result to the given buffer, except that it may be slightly more efficient, since it will write directly to the existing buffer instead of using a temporary buffer and having to make a copy of the result.
        Parameters:
        sb - where to write the result