Package ro.sync.ecss.extensions.api
Interface AuthorReferenceResolver
- All Superinterfaces:
Extension
- All Known Subinterfaces:
DITAMapReferencesResolver,ValidatingAuthorReferenceResolver
- All Known Implementing Classes:
AuthorReferenceResolverWrapper,DITAConRefResolver,DITAConrefsResolverBase,DITAMapRefResolver,DOTProjectAuthorReferenceResolver
Interface for the custom handlers used to expand content references.
-
Method Summary
Modifier and TypeMethodDescriptiondefault booleanallowsValidatationForEditableReference(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.getDisplayName(AuthorNode node) Returns the name of the node that contains the expanded referred content.getReferenceSystemID(AuthorNode node, AuthorAccess authorAccess) Return the systemID of the referred content.Get an unique identifier for the node reference.default booleanhasEditableReference(String systemID, AuthorNode referenceNodeParent) Check if the node is editable.booleanhasReferences(AuthorNode node) Verifies if the handler considers the node to have references.booleanisReferenceChanged(AuthorNode node, String attributeName) Verifies if the references of the given node must be refreshed when the attribute with the specified name has changed.default voidreplaceReference(AuthorDocumentProvider targetProvider, AuthorAccess authorAccess, AuthorReferenceNode referenceNode) Replace the content of the referenced node from the target document with the modified content inside the reference node.resolveReference(AuthorNode node, String systemID, AuthorAccess authorAccess, EntityResolver entityResolver) Resolve the references of the node.Methods inherited from interface ro.sync.ecss.extensions.api.Extension
getDescription
-
Method Details
-
hasReferences
Verifies if the handler considers the node to have references.
For example the method should returntruefor a DITA element that hasconrefattribute set.- Parameters:
node- The node to be analyzed.- Returns:
trueif it has references.
-
isReferenceChanged
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 returnstruewhen the attribute name is equal to'conref'.- Parameters:
node- TheAuthorNodewith the references.attributeName- The name of the changed attribute.- Returns:
trueif the references must be refreshed.
-
resolveReference
SAXSource resolveReference(AuthorNode node, String systemID, AuthorAccess authorAccess, EntityResolver entityResolver) throws ReferenceResolverException Resolve the references of the node. The returningSAXSourcewill 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 theconrefattribute.- 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
InputSourcewill contain the editor content. - Resources resolved through XML catalog.
- Resources that are already opened in editor.
For this case the
- Returns:
- The
SAXSourceincluding the parser and the parser'sInputSource.
IMPORTANT: the SAXSource needs to have an XMLReader set to it. - Throws:
ReferenceResolverException- If something goes wrong when resolving the references.
-
getDisplayName
Returns the name of the node that contains the expanded referred content.
For example the value of theconrefattribute is returned by the DITA implementation.- Parameters:
node- The node that contains references.- Returns:
- The display name of the node.
-
getReferenceUniqueID
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 theconrefattribute as the unique identifier.- Parameters:
node- The node that has reference.- Returns:
- An unique identifier for the reference node.
-
getReferenceSystemID
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
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:
trueif the node is editable.- Since:
- 23
-
allowsValidatationForEditableReference
default boolean allowsValidatationForEditableReference(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:
trueif 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 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:
IOException- If the save process fails- Since:
- 23
-