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
@API(type=EXTENDABLE, src=PUBLIC) public interface AuthorReferenceResolver extends Extension
Interface for the custom handlers used to expand content references.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description 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.java.lang.String
getDisplayName(AuthorNode node)
Returns the name of the node that contains the expanded referred content.java.lang.String
getReferenceSystemID(AuthorNode node, AuthorAccess authorAccess)
Return the systemID of the referred content.java.lang.String
getReferenceUniqueID(AuthorNode node)
Get an unique identifier for the node reference.default boolean
hasEditableReference(java.lang.String systemID, AuthorNode referenceNodeParent)
Check if the node is editable.boolean
hasReferences(AuthorNode node)
Verifies if the handler considers the node to have references.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.default void
replaceReference(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.javax.xml.transform.sax.SAXSource
resolveReference(AuthorNode node, java.lang.String systemID, AuthorAccess authorAccess, org.xml.sax.EntityResolver entityResolver)
Resolve the references of the node.-
Methods inherited from interface ro.sync.ecss.extensions.api.Extension
getDescription
-
-
-
-
Method Detail
-
hasReferences
boolean hasReferences(AuthorNode node)
Verifies if the handler considers the node to have references.
For example the method should returntrue
for a DITA element that hasconref
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 returnstrue
when the attribute name is equal to'conref'
.- Parameters:
node
- TheAuthorNode
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 returningSAXSource
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 theconref
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.
- Resources that are already opened in editor.
For this case the
- Returns:
- The
SAXSource
including 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
java.lang.String getDisplayName(AuthorNode node)
Returns the name of the node that contains the expanded referred content.
For example the value of theconref
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 theconref
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
-
-