Class FcSaveToWebDavHandler
- All Implemented Interfaces:
IResourceBundleLocator
,IWorkflowNodeFlowAnalyzer<FcSaveToWebDavProps>
,IElementHandler<FcSaveToWebDavProps,
,WorkflowNode> IExecutionResultDescriptor
,ICustomParametersUpdateable
,IWorkflowElementTypeProviding
,IBeanValidatingElement<FcSaveToWebDavProps,
,WorkflowNode> IBeanValidatingNode<FcSaveToWebDavProps>
,IExecutingLikeActionNode<FcSaveToWebDavProps>
,IHierarchyValidatingNode<FcSaveToWebDavProps>
,IKeyValueSummarizableElement<FcSaveToWebDavProps,
,WorkflowNode> IKeyValueSummarizableNode<FcSaveToWebDavProps>
,IOfficialHelpPageElement<FcSaveToWebDavProps,
,WorkflowNode> IOfficialHelpPageNode<FcSaveToWebDavProps>
,ISingleElementPrototype<FcSaveToWebDavProps,
,WorkflowNode> ISingleNodePrototype<FcSaveToWebDavProps>
,INodeHandler<FcSaveToWebDavProps>
,IWorkflowNodeTypeProviding
,IListenerRegistrator
,IOrderable
,ISingleBaseActionBuiltinNodePrototype<FcSaveToWebDavProps>
,ISingleBuiltinNodePrototype<FcSaveToWebDavProps>
,IBuiltinResourcesHandler<FcSaveToWebDavProps,
,WorkflowNode> IBaseActionNode<FcSaveToWebDavProps>
,IBuiltinNodeType<FcSaveToWebDavProps>
,ISingleBaseActionNodePrototype<FcSaveToWebDavProps>
,IFcSaveToWebDavDescriptors
,Comparable<IOrderable>
INodeHandler
for nodes of type EWorkflowNodeType.FC_SAVE_TO_WEB_DAV
- Since:
- 7.1.0
- Author:
- XIMA MEDIA GmbH
-
Field Summary
Fields inherited from interface de.xima.fc.interfaces.workflow.elements.IElementHandler
CURRENT_HANDLER_VERSION
Fields inherited from interface de.xima.fc.workflow.retval.node.IFcSaveToWebDavDescriptors
ATTR_STORAGE_FILES, ATTR_STORAGE_URL
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Executes the given workflow node.Returns the class of the custom properties used by the elements handled by this element logic handler.static FcSaveToWebDavHandler
Class<? extends INodePropertiesBean<FcSaveToWebDavProps>>
Returns the class of the bean that should be used when editing the properties of a workflow element.This method must return the path to the XHTML page for the custom user interface.Optional sub category.int
hashCode()
boolean
Checks whether this workflow element is available to the given client.boolean
Whether to replace allString
fields annotated withPlaceholder
in the properties model automatically before execution.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface de.xima.fc.workflow.mixin.IBaseActionNode
isValidChildCount, isValidChildType, isValidParentType, validateLocal
Methods inherited from interface de.xima.fc.interfaces.workflow.mixin.IBeanValidatingElement
getValidationGroups
Methods inherited from interface de.xima.fc.workflow.mixin.IBuiltinNodeType
getOfficialHelpPagePath, getType, register
Methods inherited from interface de.xima.fc.workflow.designer.registry.IBuiltinResourcesHandler
getCascadingStyleSheet, getJavaScript
Methods inherited from interface de.xima.fc.interfaces.workflow.ICustomParametersUpdateable
updateCustomParams
Methods inherited from interface de.xima.fc.interfaces.workflow.elements.IElementHandler
extractDescription, extractName, extractSearchTerms, getCascadingStyleSheet, getDisplayLabel, getFastJsonConverter, getFilterCriteriaForEntities, getJavaScript, getResourceBundle, getVersion, isHasUserVisibleName, readEntityReferences, readPlaceholders, validateGlobal, writeEntityReferences, writePlaceholders
Methods inherited from interface de.xima.fc.interfaces.workflow.mixin.IExecutingLikeActionNode
createFlowGraph
Methods inherited from interface de.xima.fc.interfaces.workflow.execution.IExecutionResultDescriptor
getAlwaysValueDescriptor
Methods inherited from interface de.xima.fc.workflow.retval.node.IFcSaveToWebDavDescriptors
getAttachmentValueDescriptor, getErrorValueDescriptor, getFileValueDescriptor, getSoftErrorValueDescriptor, getSuccessValueDescriptor
Methods inherited from interface de.xima.fc.interfaces.workflow.mixin.IKeyValueSummarizableElement
getElementSummaryModel, getElementSummaryXhtml
Methods inherited from interface de.xima.fc.interfaces.workflow.nodes.INodeHandler
getLocalizedTypeName, getRelatedNodeTypes, isCreateProtocolEntryAfterExecution, isCreateProtocolEntryAfterExecution
Methods inherited from interface de.xima.fc.interfaces.workflow.mixin.IOfficialHelpPageElement
getHelpPageLocation
Methods inherited from interface de.xima.fc.listener.IOrderable
compareTo, shouldBeAfter
Methods inherited from interface de.xima.fc.workflow.mixin.ISingleBaseActionNodePrototype
getPrototypeModelData, getThemeColor
Methods inherited from interface de.xima.fc.workflow.designer.mixin.ISingleBuiltinNodePrototype
getPrototypeIcon, getPrototypeLabel, getPrototypeSearchText, getPrototypeSortKey, getPrototypeSubLabel, getPrototypeTitle
Methods inherited from interface de.xima.fc.interfaces.workflow.mixin.ISingleElementPrototype
getPrototypeTags
Methods inherited from interface de.xima.fc.interfaces.workflow.mixin.ISingleNodePrototype
getNodePrototypes, getPrototypeElement
-
Method Details
-
equals
-
execute
public INormalCompletionResult execute(INodeExecutionParams<FcSaveToWebDavProps> params) throws AbstractAbruptCompletionException Description copied from interface:INodeHandler
Executes the given workflow node. You may perform any action required by this node type, such as creating files, sending HTTP requests etc. If this node has children that need to be executed (such as for control nodes like conditions or switches), you must useIWorkflowExecutionContext.executor()
.In case you throw any other exception other than the exceptions mentioned in the throws clause, it will be wrapped in a
NodeThrewException
.- Specified by:
execute
in interfaceINodeHandler<FcSaveToWebDavProps>
- Parameters:
params
- The node that needs to be executed and the current workflow context.- Returns:
- The result value or values created by the executed node.
- Throws:
AbstractAbruptCompletionException
- When the execution of the node could not be completed normally, see below.NodeThrewException
- When the execution of the node could not be completed normally due to abnormal circumstances. When this exception is thrown, execution of the workflow is cancelled, unless an error handler has been defined (such as via a try-catch node).NodeReturnedException
- When the execution of the node could not be completed normally due to a return statement. To end the execution of the workflow and return, throw this exception.
-
getBuiltinType
- Specified by:
getBuiltinType
in interfaceIBuiltinNodeType<FcSaveToWebDavProps>
- Returns:
- The built-in node type.
-
getDataModelClass
Description copied from interface:IElementHandler
Returns the class of the custom properties used by the elements handled by this element logic handler.The custom properties of a workflow element are internally stored as JSON. To ease the development work, you can specify a model class, and the JSON is automatically converted to an instance of that model class. Please note that the model class must be compatible with serialization mechanism used by
JSON
.See
IElementHandler.getVersion()
for how custom properties are updated.If you need more control over serialization and deserialization, specify
JSONObject
as the type parameter and returnJSONObject.class
. You will then receive the raw JSON data and may perform the serialization in whatever way you like.- Specified by:
getDataModelClass
in interfaceIElementHandler<FcSaveToWebDavProps,
WorkflowNode> - Returns:
- The class corresponding to the type parameter
TData
.
-
getElementSummaryKeyValueModel
public ISummaryKeyValueModel getElementSummaryKeyValueModel(IGetElementSummaryParams<FcSaveToWebDavProps> params) - Specified by:
getElementSummaryKeyValueModel
in interfaceIKeyValueSummarizableElement<FcSaveToWebDavProps,
WorkflowNode> - Parameters:
params
- The custom properties of the node or trigger.- Returns:
- A list of key value pairs to display in a table in the overview panel.
-
getMainCategory
- Specified by:
getMainCategory
in interfaceISingleElementPrototype<FcSaveToWebDavProps,
WorkflowNode> - Parameters:
params
- Parameters with the current client, locale, entity context etc.- Returns:
IElementCategory
element's main category, which is used for grouping the elements.
-
getPropertiesBeanClass
Description copied from interface:IElementHandler
Returns the class of the bean that should be used when editing the properties of a workflow element. May benull
if you do not required any bean or custom logic. When you only wish to access the properties of yourIElementHandler.getDataModelClass()
, you do have to use a custom bean - the model is available via the expression language variablemodel
. SeeIElementHandler.getPropertiesViewXhtml()
for further details.The default returns
null
, which uses no extra bean. An extra bean may not be required for simple UIs if you only need to access the properties model of the workflow element - seeIElementHandler.getPropertiesViewXhtml()
.- Specified by:
getPropertiesBeanClass
in interfaceIElementHandler<FcSaveToWebDavProps,
WorkflowNode> - Specified by:
getPropertiesBeanClass
in interfaceINodeHandler<FcSaveToWebDavProps>
- Returns:
- The class of the bean to use for editing a workflow node's properties.
- See Also:
-
getPropertiesViewXhtml
Description copied from interface:IElementHandler
This method must return the path to the XHTML page for the custom user interface. Usually the XHTML file is part of the JAR resources of the module or plugin. In this case, you should return an URL to a JAR file resource (jar:file:/...
) like so:@Override public URL getXhtmlView() { return getClass().getResource("/path/to/view.xhtml"); }
The contents of this XHTML page is included in the properties panel, without a fieldset or container around it, but already inside a form (i.e. do not use a
h:form
as that would result in an error). You should wrap your custom UI in a naming container to ensure unique IDs that do not clash with other plugins or actions. The following is a recommended template on which you may base your UI:<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:o="http://omnifaces.org/ui" xmlns:p="http://primefaces.org/ui" xmlns:xi="http://www.xima.de/taglib/xfc"> <!-- Enable bean validation (when #validateLocal is implemented via the bean validator)--> <o:validateBean value="#{model}" showMessageFor="@violating" method="validateActual" /> <xi:namingContainer id="myAwesomeWorkflowElement"> <!--Base info with name and description (when TData extends BaseActionProps) --> <xi:newWorkflowActionBase id="base" value="#{model}" legend="#{msg['wf.node.myawesomelememnt']}" /> <!-- Remove when TData does not have a
ISingleFileProviding
field --> <xi:singleFile id="resource" value="#{model.singleFile}" required="true" /> <!-- Remove when TData does not have aIMultiFileProviding
field --> <xi:multiFile id="resource" value="#{model.multiFile}" required="true" /> <!-- Remove when TData does not implement IProviding --> <xi:newWorkflowProviding id="providing" value="#{model}" /> <!-- Custom section with editors specific to your workflow element --> <p:fieldset legend="#{msg['MyAwesomeWorkflowElementProps.fieldset.base']}" styleClass="fc-fieldset"> <!-- A simple input field bound to the mail property of your properties model --> <xi:inputText id="mail" label="#{msg['MyAwesomeWorkflowElementProps.mail']}" formPlaceholder="true" value="#{model.mail}" forceIndicateRequired="true" > <p:ajax event="change" partialSubmit="true" listener="#{elementPropertiesBean.storeCurrent}" process="@this" update=":flowchartForm:flowchart" global="false" /> </xi:inputText> </p:fieldset> </xi:namingContainer> </ui:composition>The XHTML page may access the following expression language variables:
- model: The deserialized custom properties of the workflow element, of the type
TData
. - provider: An object that implements
IWorkflowProvider
, for accessing various data, such as a list of all users or text templates. - msg: The localized messages as returned by
IElementHandler.getResourceBundle(Locale)
. Empty when that method returnsnull
. For example, if the resource bundle contains the keymail.label
, you can access the localized message via the EL expression['mail.label']
To access the values of an enum or the constants defined by a class, consider using
<xi:importConstants type="my.fully.classified.path.MyEnum" var="MyEnum" loader="#{model}"/>
Theloader
argument is only required for plugins and ensures that the correct class loader is used that knows about the plugin class. Without the loader attribute, the above is equivalent to the PrimeFaces tag handler<p:importConstants />
.- Specified by:
getPropertiesViewXhtml
in interfaceIElementHandler<FcSaveToWebDavProps,
WorkflowNode> - Returns:
- Path to the XHTML view. If the action can be configured, this must not return
null
. If you do returnnull
, it will be treated as an error and an appropriate message is displayed to the user informing them that the properties panel could not be loaded. If the action cannot be configured (i.e. when the action is not selectable), this should returnnull
. - Throws:
MalformedURLException
- This exception is declared for convenience - normally you would usenew URL(String)
with a constant URL string that should not throw. In case an exception is thrown, it is treated the same as if this returnednull
.
- model: The deserialized custom properties of the workflow element, of the type
-
getSubCategory
Description copied from interface:ISingleElementPrototype
Optional sub category. When not set or this returnsnull
, the element is shown under the categorymiscellaneous
.- Specified by:
getSubCategory
in interfaceISingleElementPrototype<FcSaveToWebDavProps,
WorkflowNode> - Parameters:
params
- Parameters with the current client, locale, entity context etc.- Returns:
IElementCategory
element's sub category, which is used for grouping the element within the given main group.
-
hashCode
public int hashCode() -
isAvailable
Description copied from interface:IElementHandler
Checks whether this workflow element is available to the given client. If this returnfalse
, this action cannot be used in the workflow designer. When attempting to execute a workflow with an unavailable action, an error of typeNODE_UNAVAILABLE
is thrown. The default implementation always returnstrue
.- Specified by:
isAvailable
in interfaceIBuiltinNodeType<FcSaveToWebDavProps>
- Specified by:
isAvailable
in interfaceIElementHandler<FcSaveToWebDavProps,
WorkflowNode> - Parameters:
params
- The node's data, the entity context, and the current client.- Returns:
- Whether the workflow element is available to the given client.
-
isReplacePlaceholderBeforeExecution
public boolean isReplacePlaceholderBeforeExecution()Description copied from interface:INodeHandler
Whether to replace allString
fields annotated withPlaceholder
in the properties model automatically before execution.Specifically: When this returns
true
andTData
is not setJSONObject
,IWorkflowPlaceholderHandler#replaceStringFields
is invoked on the properties model before it is passed to the#execute
viaINodeExecutionParams#getData
. When this returnsfalse
, no such call is made. Defaults totrue
when not overridden.- Specified by:
isReplacePlaceholderBeforeExecution
in interfaceINodeHandler<FcSaveToWebDavProps>
- Returns:
true
to replace placeholders in the properties model automatically before execution, orfalse
otherwise.
-
getInstance
- Returns:
- The singleton instance of this handler
-