Class TransformOperation

  • All Implemented Interfaces:
    AuthorOperation, Extension
    Direct Known Subclasses:
    XQueryOperation, XSLTOperation

    @API(type=EXTENDABLE,
         src=PUBLIC)
    public abstract class TransformOperation
    extends java.lang.Object
    implements AuthorOperation
    An implementation of an operation to apply a script (XSLT or XQuery) on a element and replacing it with the result of the transformation or inserting the result in the document.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ACTION_AT_CARET
      The name of the operation action indicating that the transformation result should be inserted at the caret position.
      static java.lang.String ACTION_INSERT_AFTER
      The name of the operation action indicating that the transformation result should be inserted after the target node.
      static java.lang.String ACTION_INSERT_AS_FIRST_CHILD
      The name of the operation action indicating that the transformation result should be inserted as the first child of the target node.
      static java.lang.String ACTION_INSERT_AS_LAST_CHILD
      The name of the operation action indicating that the transformation result should be inserted as the last child of the target node.
      static java.lang.String ACTION_INSERT_BEFORE
      The name of the operation action indicating that the transformation result should be inserted before the target node.
      static java.lang.String ACTION_REPLACE
      The name of the operation action indicating a replace of the target node with the result of the transformation.
      protected java.lang.String ARGUMENT_SCRIPT
      The XSLT or XQuery script.
      static java.lang.String ARGUMENT_SCRIPT_PARAMETERS
      External parameters argument.
      static java.lang.String CARET_POSITION_AFTER
      Constant for the caret position indicating that the caret should be positioned just after the inserted fragment.
      static java.lang.String CARET_POSITION_BEFORE
      Constant for the caret position indicating that the caret should be positioned just before the inserted fragment.
      static java.lang.String CARET_POSITION_EDITABLE
      Constant for the caret position indicating that the caret should be positioned just at the start of the inserted fragment, in the first editable position.
      static java.lang.String CARET_POSITION_END
      Constant for the caret position indicating that the caret should be positioned just at the end of the inserted fragment, inside that fragment.
      static java.lang.String CARET_POSITION_PRESERVE
      Constant for the caret position indicating that the same caret position offset should be preserved.
      static java.lang.String CARET_POSITION_START
      Constant for the caret position indicating that the caret should be positioned just at the start of the inserted fragment, inside that fragment.
      static java.lang.String CURRENT_ELEMENT_LOCATION
      The name of a parameter containing the location path of the current element inside the source element.
    • Field Detail

      • CURRENT_ELEMENT_LOCATION

        public static final java.lang.String CURRENT_ELEMENT_LOCATION
        The name of a parameter containing the location path of the current element inside the source element. This can be accessed in the script to perform context sensitive actions.
        See Also:
        Constant Field Values
      • ACTION_REPLACE

        public static final java.lang.String ACTION_REPLACE
        The name of the operation action indicating a replace of the target node with the result of the transformation.
        See Also:
        Constant Field Values
      • ACTION_AT_CARET

        public static final java.lang.String ACTION_AT_CARET
        The name of the operation action indicating that the transformation result should be inserted at the caret position.
        See Also:
        Constant Field Values
      • ACTION_INSERT_BEFORE

        public static final java.lang.String ACTION_INSERT_BEFORE
        The name of the operation action indicating that the transformation result should be inserted before the target node.
        See Also:
        Constant Field Values
      • ACTION_INSERT_AFTER

        public static final java.lang.String ACTION_INSERT_AFTER
        The name of the operation action indicating that the transformation result should be inserted after the target node.
        See Also:
        Constant Field Values
      • ACTION_INSERT_AS_FIRST_CHILD

        public static final java.lang.String ACTION_INSERT_AS_FIRST_CHILD
        The name of the operation action indicating that the transformation result should be inserted as the first child of the target node.
        See Also:
        Constant Field Values
      • ACTION_INSERT_AS_LAST_CHILD

        public static final java.lang.String ACTION_INSERT_AS_LAST_CHILD
        The name of the operation action indicating that the transformation result should be inserted as the last child of the target node.
        See Also:
        Constant Field Values
      • CARET_POSITION_PRESERVE

        public static final java.lang.String CARET_POSITION_PRESERVE
        Constant for the caret position indicating that the same caret position offset should be preserved.
        See Also:
        Constant Field Values
      • CARET_POSITION_BEFORE

        public static final java.lang.String CARET_POSITION_BEFORE
        Constant for the caret position indicating that the caret should be positioned just before the inserted fragment.
        See Also:
        Constant Field Values
      • CARET_POSITION_START

        public static final java.lang.String CARET_POSITION_START
        Constant for the caret position indicating that the caret should be positioned just at the start of the inserted fragment, inside that fragment.
        See Also:
        Constant Field Values
      • CARET_POSITION_EDITABLE

        public static final java.lang.String CARET_POSITION_EDITABLE
        Constant for the caret position indicating that the caret should be positioned just at the start of the inserted fragment, in the first editable position.
        See Also:
        Constant Field Values
      • CARET_POSITION_END

        public static final java.lang.String CARET_POSITION_END
        Constant for the caret position indicating that the caret should be positioned just at the end of the inserted fragment, inside that fragment.
        See Also:
        Constant Field Values
      • CARET_POSITION_AFTER

        public static final java.lang.String CARET_POSITION_AFTER
        Constant for the caret position indicating that the caret should be positioned just after the inserted fragment.
        See Also:
        Constant Field Values
      • ARGUMENT_SCRIPT

        protected java.lang.String ARGUMENT_SCRIPT
        The XSLT or XQuery script. The value is script.
      • ARGUMENT_SCRIPT_PARAMETERS

        public static final java.lang.String ARGUMENT_SCRIPT_PARAMETERS
        External parameters argument. Pairs key=value separated by comma or new line.
        See Also:
        Constant Field Values
    • Constructor Detail

      • TransformOperation

        public TransformOperation()
        Constructor.
    • Method Detail

      • canTreatAsScript

        protected boolean canTreatAsScript​(java.lang.String script)
        Parameters:
        script - The value of the script parameter.
        Returns:
        true if this is an actual script or false if it isn't.
      • createTransformer

        protected abstract javax.xml.transform.Transformer createTransformer​(AuthorAccess authorAccess,
                                                                             javax.xml.transform.Source scriptSrc)
                                                                      throws javax.xml.transform.TransformerConfigurationException
        Creates a Transformer from a given script.
        Parameters:
        authorAccess - Access to different Author resources.
        scriptSrc - The XSLT or XQuery script.
        Returns:
        A JAXP Transformer that will perform the transformation defined in the given script.
        Throws:
        javax.xml.transform.TransformerConfigurationException
      • createTransformer

        protected javax.xml.transform.Transformer createTransformer​(AuthorAccess authorAccess,
                                                                    javax.xml.transform.Source scriptSrc,
                                                                    ro.sync.ecss.extensions.commons.operations.ElementLocationPath location)
                                                             throws javax.xml.transform.TransformerConfigurationException
        Creates a Transformer from a given script.
        Parameters:
        authorAccess - Access to different Author resources.
        scriptSrc - The XSLT or XQuery script.
        location - The location of the "current" element.
        Returns:
        A JAXP Transformer that will perform the transformation defined in the given script.
        Throws:
        javax.xml.transform.TransformerConfigurationException