Class XQueryUpdateOperation
- java.lang.Object
-
- ro.sync.ecss.extensions.commons.operations.XQueryUpdateOperation
-
- All Implemented Interfaces:
AuthorOperation
,Extension
@API(type=INTERNAL, src=PUBLIC) public class XQueryUpdateOperation extends java.lang.Object implements AuthorOperation
An implementation of an operation that applies an XQuery Update script. The changes are performed directly over the Author nodes model. The script will be executed in the context of the caret node. If the XQuery script declares the selection variable (see the following code snippet), it will also receive the selected nodes (assuming that the selection consists entirely of nodes). THe following code snippet converts the selected paragraphs in a list.declare namespace oxyxq = "http://www.oxygenxml.com/ns/xqu"; (: This variable will be linked to the selected nodes assuming that there are actually fully selected nodes. For example this selection will return null:
{SEL_START}text{SEL_END} in para
but this will give two "p" elements: {SEL_END}text
text2
{SEL_END} If a multiple selection exists it will also be processed and forwarded. Again, only fully selected nodes will be passed. :) declare variable $oxyxq:selection external; (: We will process either the selection or the context node :) let $toProcess := if (empty($oxyxq:selection)) then (.) else ($oxyxq:selection) return if (not(empty($toProcess))) then ( (: Create the list :) let $ul := <ul> { for $sel in $toProcess return <li>{$sel}</li> } </ul> return ( (: Delete the processed nodes :) for $sel in $toProcess return delete node $sel, (: Inserts the constructed list :) insert node $ul before $toProcess[1] ) ) else ()
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ARGUMENT_EXPAND_XINCLUDE_REFERENCES
Make XInclude elements transparent in document model.static java.lang.String
ARGUMENT_SCRIPT
The script argument.static java.lang.String
ARGUMENT_SCRIPT_PARAMETERS
External parameters for xquery.-
Fields inherited from interface ro.sync.ecss.extensions.api.AuthorOperation
NAMESPACE_ARGUMENT, NAMESPACE_ARGUMENT_DESCRIPTOR, SCHEMA_AWARE_ARGUMENT, SCHEMA_AWARE_ARGUMENT_DESCRIPTOR
-
-
Constructor Summary
Constructors Constructor Description XQueryUpdateOperation()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doOperation(AuthorAccess authorAccess, ArgumentsMap args)
Perform the actual operation.ArgumentDescriptor[]
getArguments()
java.lang.String
getDescription()
-
-
-
Field Detail
-
ARGUMENT_SCRIPT
public static final java.lang.String ARGUMENT_SCRIPT
The script argument. The value isscript
.- See Also:
- Constant Field Values
-
ARGUMENT_SCRIPT_PARAMETERS
public static final java.lang.String ARGUMENT_SCRIPT_PARAMETERS
External parameters for xquery.- See Also:
- Constant Field Values
-
ARGUMENT_EXPAND_XINCLUDE_REFERENCES
public static final java.lang.String ARGUMENT_EXPAND_XINCLUDE_REFERENCES
Make XInclude elements transparent in document model.- See Also:
- Constant Field Values
-
-
Method Detail
-
doOperation
public void doOperation(AuthorAccess authorAccess, ArgumentsMap args) throws AuthorOperationException
Description copied from interface:AuthorOperation
Perform the actual operation. You can check if the operation was invoked from the oXygen standalone application or from the oXygen plugin for Eclipse by using the method:ApplicationInformationAccess.getPlatform()
. To get to theWorkspace
you may use:AuthorAccess.getWorkspaceAccess()
.- Specified by:
doOperation
in interfaceAuthorOperation
- Parameters:
authorAccess
- The author access. Provides access to specific informations and actions for editor, document, workspace, tables, change tracking, utility a.s.o.args
- The map of arguments. All the arguments defined by methodAuthorOperation.getArguments()
must be present in the map of arguments.- Throws:
AuthorOperationException
- Thrown when the operation fails.- See Also:
AuthorOperation.doOperation(AuthorAccess, ArgumentsMap)
-
getArguments
public ArgumentDescriptor[] getArguments()
- Specified by:
getArguments
in interfaceAuthorOperation
- Returns:
- An array of
ArgumentDescriptor
representing the arguments this operation uses. - See Also:
AuthorOperation.getArguments()
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescription
in interfaceExtension
- Returns:
- The description of the extension.
- See Also:
Extension.getDescription()
-
-