Interface ExtensionNode<N extends ExtensionNode<N,​M>,​M extends Mark>

    • Method Detail

      • copy

        N 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
        Specified by:
        copy in interface Marked<N extends ExtensionNode<N,​M>,​M extends Mark>
        Specified by:
        copy in interface Node
        Returns:
        a copy of this element, or this if the element is immutable anyway
      • extensionKey

        String extensionKey()
        Returns:
        the extension's key
      • extensionKey

        N extensionKey​(String extensionKey)
        Replace the extension's key.
        Parameters:
        extensionKey - the new extension key value; must not be empty
        Returns:
        this
      • extensionType

        String extensionType()
        Returns:
        the extension's type
      • extensionType

        N extensionType​(String extensionType)
        Replace the extension's type.
        Parameters:
        extensionType - the new extension type value; must not be empty
        Returns:
        this
      • localId

        Optional<String> localId()
        Returns:
        the extension's local ID, or empty if it has not been set
      • localId

        N localId​(@Nullable
                  String localId)
        Replaces (or clears) the extension's local ID.
        Parameters:
        localId - the extension's new local ID, or null to clear it.
        Returns:
        this
      • text

        Optional<String> text()
        Returns:
        the extension's text value, or empty if it has not been set
      • text

        N text​(@Nullable
               String text)
        Replaces (or clears) the extension's text value.
        Parameters:
        text - the extension's new text value, or null to clear it.
        Returns:
        this
      • parameters

        Optional<Map<String,​?>> parameters()
        Returns:
        the extension's parameter map, or empty if it has not been set
      • parameters

        N parameters​(@Nullable
                     Map<String,​?> parameters)
        Replaces (or clears) the extension's parameter map.
        Parameters:
        parameters - the extension's new parameter map, or null to discard any existing one.
        Returns:
        this