Interface AuthorReferenceResolver

    • Method Detail

      • hasReferences

        boolean hasReferences​(AuthorNode node)
        Verifies if the handler considers the node to have references.
        For example the method should return true for a DITA element that has conref attribute set.
        Parameters:
        node - The node to be analyzed.
        Returns:
        true if it has references.
      • isReferenceChanged

        boolean isReferenceChanged​(AuthorNode node,
                                   java.lang.String attributeName)
        Verifies if the references of the given node must be refreshed when the attribute with the specified name has changed.
        For example the DITA implementation returns true when the attribute name is equal to 'conref'.
        Parameters:
        node - The AuthorNode with the references.
        attributeName - The name of the changed attribute.
        Returns:
        true if the references must be refreshed.
      • resolveReference

        javax.xml.transform.sax.SAXSource resolveReference​(AuthorNode node,
                                                           java.lang.String systemID,
                                                           AuthorAccess authorAccess,
                                                           org.xml.sax.EntityResolver entityResolver)
                                                    throws ReferenceResolverException
        Resolve the references of the node. The returning SAXSource will be used for creating the referred content using the parser and the source inside it.
        IMPORTANT: the SAXSource needs to have an XMLReader set to it.
        For example the DITA implementation resolves the content referred by the conref attribute.
        Parameters:
        node - The node which has references.
        systemID - The system ID of the node with references.
        authorAccess - The author access implementation. Provides access to specific informations and actions for editor, document, workspace, tables, change tracking, utility a.s.o.
        entityResolver - The entity resolver that can be used to resolve:
        • Resources that are already opened in editor. For this case the InputSource will contain the editor content.
        • Resources resolved through XML catalog.
        Returns:
        The SAXSource including the parser and the parser's InputSource.
        IMPORTANT: the SAXSource needs to have an XMLReader set to it.
        Throws:
        ReferenceResolverException - If something goes wrong when resolving the references.
      • getDisplayName

        java.lang.String getDisplayName​(AuthorNode node)
        Returns the name of the node that contains the expanded referred content.
        For example the value of the conref attribute is returned by the DITA implementation.
        Parameters:
        node - The node that contains references.
        Returns:
        The display name of the node.
      • getReferenceUniqueID

        java.lang.String getReferenceUniqueID​(AuthorNode node)
        Get an unique identifier for the node reference. The unique identifier is used to avoid resolving the references recursively.
        For example the DITA implementation uses the value of the conref attribute as the unique identifier.
        Parameters:
        node - The node that has reference.
        Returns:
        An unique identifier for the reference node.
      • getReferenceSystemID

        java.lang.String getReferenceSystemID​(AuthorNode node,
                                              AuthorAccess authorAccess)
        Return the systemID of the referred content.
        Parameters:
        node - The reference node.
        authorAccess - The author access. It provides access to specific informations and actions for editor, document, workspace, tables, change tracking, utility a.s.o.
        Returns:
        The systemID of the referred content.
      • hasEditableReference

        default boolean hasEditableReference​(java.lang.String systemID,
                                             AuthorNode referenceNodeParent)
        Check if the node is editable.
        Parameters:
        systemID - System ID of the document in which the current node is located.
        referenceNodeParent - The parent of the future referene node
        Returns:
        true if the node is editable.
        Since:
        23
      • allowsValidatationForEditableReference

        default boolean allowsValidatationForEditableReference​(java.lang.String systemID,
                                                               AuthorNode referenceNodeParent)
        Check if the editable node reference can be validated by Oxygen on its own, when modified, based on its own schema information.
        Parameters:
        systemID - System ID of the document in which the current node is located.
        referenceNodeParent - The parent of the future reference node
        Returns:
        true if the editable node reference can be validated by Oxygen on its own, based on its own schema information.
        Since:
        23
      • replaceReference

        default void replaceReference​(AuthorDocumentProvider targetProvider,
                                      AuthorAccess authorAccess,
                                      AuthorReferenceNode referenceNode)
                               throws java.io.IOException
        Replace the content of the referenced node from the target document with the modified content inside the reference node.
        Parameters:
        targetProvider - The provider if the target document.
        authorAccess - Access to the current document.
        referenceNode - The reference node to get the modified content from.
        Throws:
        java.io.IOException - If the save process fails
        Since:
        23