Package de.xima.fc.plugin.workflow
Class WorkflowCustomParametersHelper
- java.lang.Object
-
- de.xima.fc.plugin.workflow.WorkflowCustomParametersHelper
-
public class WorkflowCustomParametersHelper extends Object
Helper class for serializing and deserializing the custom properties model of workflow nodes and triggers, seeICustomParametersProviding
.- Since:
- 7.0.0
- Author:
- XIMA MEDIA GmbH
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <TData,TElement extends IWorkflowElementEntity>
TDatadeserializeCustomProps(com.alibaba.fastjson.JSONObject json, IElementHandler<TData,TElement> handler)
Takes the serialized JSON properties model of a workflow element, deserializes it according to the given handler, and returns the deserialized properties model.static <TElement extends IWorkflowElementEntity>
ObjectdeserializeCustomProps(TElement element, Mandant client)
Takes the serialized JSON custom parameters of the given node, and returns the deserialized properties model.static <TData,TElement extends IWorkflowElementEntity>
TDatadeserializeCustomProps(TElement element, IElementHandler<TData,TElement> handler, Mandant client)
Takes the serialized JSON custom parameters of the given node, and returns the deserialized properties model.static Iterable<WorkflowNode>
eachNode(WorkflowNode startNode, Mandant client)
static <TElement extends IWorkflowElementEntity>
com.alibaba.fastjson.JSONObjectretrieveCustomParams(TElement element, Mandant client)
Retrieves the deserialized custom properties of a node or trigger, making sure to update the properties to the current version.static com.alibaba.fastjson.JSONObject
serializeCustomProps(Object data, IWorkflowElementEntity element, Mandant client)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.static <TData,TElement extends IWorkflowElementEntity>
com.alibaba.fastjson.JSONObjectserializeCustomProps(TData data, IElementHandler<TData,TElement> handler)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.static <TData,TElement extends IWorkflowElementEntity>
StringserializeCustomPropsToString(TData data, IElementHandler<TData,TElement> handler)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.static <TData,TElement extends IWorkflowElementEntity>
StringserializeCustomPropsToString(TData data, TElement element, Mandant client)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.static void
setCustomProps(Object data, IWorkflowElementEntity element, Mandant client)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.static <TData,TElement extends IWorkflowElementEntity>
voidsetCustomProps(TData data, TElement element, IElementHandler<TData,TElement> handler)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.static com.alibaba.fastjson.JSONObject
toJson(Object data, IWorkflowElementTypeProviding element, Mandant client)
Takes the deserialized properties model of a workflow element and serializes it to JSON.static <TData> com.alibaba.fastjson.JSONObject
toJson(TData data, IElementHandler<TData,?> handler)
Takes the deserialized properties model of a workflow element and serializes it to JSON.static <TData> String
toJsonString(TData data, IElementHandler<TData,?> handler)
Takes the deserialized properties model of a workflow element and serializes it to JSON.static WorkflowNode
transferToDataModel(WorkflowNode node, com.alibaba.fastjson.JSONObject customParams, Object data, Mandant client)
Extract the relevant data from the node's properties model and set the data on theWorkflowNode
.static WorkflowNode
transferToDataModel(WorkflowNode node, Mandant client)
Extract the relevant data from the node's properties model and set the data on theWorkflowNode
.static WorkflowTrigger
transferToDataModel(WorkflowTrigger trigger, com.alibaba.fastjson.JSONObject customParams, Object data, Mandant client)
Extract the relevant data from the triggers's properties model and set the data on theWorkflowTrigger
.static WorkflowTrigger
transferToDataModel(WorkflowTrigger trigger, Mandant client)
Extract the relevant data from the triggers's properties model and set the data on theWorkflowTrigger
.static <TElement extends AWorkflowElement<?,?>>
TElementtransferToDataModel(TElement element, com.alibaba.fastjson.JSONObject customParams, Object data, Mandant client)
Extract the relevant data from the element's properties model and set the data on theAWorkflowElement
.static com.alibaba.fastjson.JSONObject
updateCustomParams(com.alibaba.fastjson.JSONObject json, IElementHandler<?,?> handler)
Updates the serialized JSON properties of the node or trigger.
-
-
-
Method Detail
-
deserializeCustomProps
public static <TData,TElement extends IWorkflowElementEntity> TData deserializeCustomProps(com.alibaba.fastjson.JSONObject json, IElementHandler<TData,TElement> handler)
Takes the serialized JSON properties model of a workflow element, deserializes it according to the given handler, and returns the deserialized properties model.- Parameters:
json
- The properties model in serialized form.handler
- Handler to use for deserialization.- Returns:
- The properties model, deserialized according to the given handler.
-
deserializeCustomProps
public static <TData,TElement extends IWorkflowElementEntity> TData deserializeCustomProps(TElement element, IElementHandler<TData,TElement> handler, Mandant client)
Takes the serialized JSON custom parameters of the given node, and returns the deserialized properties model.- Parameters:
element
- Workflow element to process.handler
- Logic handler to use for the deserialization.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The deserialized custom properties of the given node.
-
deserializeCustomProps
public static <TElement extends IWorkflowElementEntity> Object deserializeCustomProps(TElement element, Mandant client)
Takes the serialized JSON custom parameters of the given node, and returns the deserialized properties model.- Parameters:
element
- Workflow element to process.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The deserialized custom properties of the given node.
-
eachNode
public static Iterable<WorkflowNode> eachNode(WorkflowNode startNode, Mandant client)
- Parameters:
startNode
- Node at which to start the iteration.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- An iterable over the (sub) tree at the given node, including the node itself.
-
retrieveCustomParams
public static <TElement extends IWorkflowElementEntity> com.alibaba.fastjson.JSONObject retrieveCustomParams(TElement element, Mandant client)
Retrieves the deserialized custom properties of a node or trigger, making sure to update the properties to the current version.- Type Parameters:
TElement
- Type of the workflow element, i.e. a node or trigger.- Parameters:
element
- Element with custom properties.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The updated, deserialized custom properties of the node or trigger.
-
serializeCustomProps
public static com.alibaba.fastjson.JSONObject serializeCustomProps(Object data, IWorkflowElementEntity element, Mandant client)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.- Parameters:
data
- Data to serialize.element
- Element from the data originates.client
- Client for retrieving the element handler.- Returns:
- The serialized JSON.
-
serializeCustomProps
public static <TData,TElement extends IWorkflowElementEntity> com.alibaba.fastjson.JSONObject serializeCustomProps(TData data, IElementHandler<TData,TElement> handler)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.- Type Parameters:
TData
- Type of the element's properties model.TElement
- Type of the element.- Parameters:
data
- Data to serialize.handler
- Handler for the element type.- Returns:
- The serialized JSON.
-
serializeCustomPropsToString
public static <TData,TElement extends IWorkflowElementEntity> String serializeCustomPropsToString(TData data, IElementHandler<TData,TElement> handler)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.- Type Parameters:
TData
- Type of the element's properties model.TElement
- Type of the element.- Parameters:
data
- Data to serialize.handler
- Handler for the element type.- Returns:
- The serialized JSON.
-
serializeCustomPropsToString
public static <TData,TElement extends IWorkflowElementEntity> String serializeCustomPropsToString(TData data, TElement element, Mandant client)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.- Type Parameters:
TData
- Type of the element's properties model.TElement
- Type of the element.- Parameters:
data
- Data to serialize.element
- Element from the data originates.client
- Client for retrieving the element handler.- Returns:
- The serialized JSON.
-
setCustomProps
public static void setCustomProps(Object data, IWorkflowElementEntity element, Mandant client)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.- Parameters:
data
- Data to serialize and set on the element.element
- Element on which to set the data.client
- Client for retrieving the element handler.
-
setCustomProps
public static <TData,TElement extends IWorkflowElementEntity> void setCustomProps(TData data, TElement element, IElementHandler<TData,TElement> handler)
Serializes the custom properties of a workflow element and set the result on the element viaIWorkflowElementEntity.setCustomParameters(String)
.- Type Parameters:
TData
- Type of the element's properties model.TElement
- Type of the element.- Parameters:
data
- Data to serialize and set on the element.element
- Element on which to set the data.handler
- Handler for the element type.
-
toJson
public static com.alibaba.fastjson.JSONObject toJson(Object data, IWorkflowElementTypeProviding element, Mandant client) throws FastJsonException
Takes the deserialized properties model of a workflow element and serializes it to JSON.- Parameters:
data
- Custom properties model to serialize.element
- Type of the element for retrieving the handler.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The properties model, serialized to JSON according to the handler of the given element type.
- Throws:
FastJsonException
- When the JSON could not be converted.
-
toJson
public static <TData> com.alibaba.fastjson.JSONObject toJson(TData data, IElementHandler<TData,?> handler) throws FastJsonException
Takes the deserialized properties model of a workflow element and serializes it to JSON.- Type Parameters:
TData
- Type of the properties model.- Parameters:
data
- Custom properties model to serialize.handler
- Handler to be used for serialization..- Returns:
- The properties model, serialized to JSON according to the given handler.
- Throws:
FastJsonException
- When the JSON could not be converted.
-
toJsonString
public static <TData> String toJsonString(TData data, IElementHandler<TData,?> handler) throws FastJsonException
Takes the deserialized properties model of a workflow element and serializes it to JSON.- Parameters:
data
- Custom properties model to serialize.handler
- Handler to be used for serialization..- Returns:
- The properties model, serialized to JSON according to the given handler.
- Throws:
FastJsonException
- When the JSON could not be converted.
-
transferToDataModel
public static WorkflowNode transferToDataModel(WorkflowNode node, com.alibaba.fastjson.JSONObject customParams, Object data, Mandant client)
Extract the relevant data from the node's properties model and set the data on theWorkflowNode
.- Parameters:
node
- The node on which to set the data.customParams
- Serialized and updated properties model.data
- Deserialized properties model.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The node as it was passed in, with the data set.
- See Also:
transferToDataModel(WorkflowNode, Mandant)
-
transferToDataModel
public static WorkflowNode transferToDataModel(WorkflowNode node, Mandant client)
Extract the relevant data from the node's properties model and set the data on theWorkflowNode
.- Parameters:
node
- The node on which to set the data.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The node as it was passed in, with the data set.
-
transferToDataModel
public static WorkflowTrigger transferToDataModel(WorkflowTrigger trigger, com.alibaba.fastjson.JSONObject customParams, Object data, Mandant client)
Extract the relevant data from the triggers's properties model and set the data on theWorkflowTrigger
.- Parameters:
trigger
- The trigger on which to set the data.customParams
- Serialized properties model.data
- Deserialized properties model.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The trigger as it was passed in, with the data set.
-
transferToDataModel
public static <TElement extends AWorkflowElement<?,?>> TElement transferToDataModel(TElement element, com.alibaba.fastjson.JSONObject customParams, Object data, Mandant client)
Extract the relevant data from the element's properties model and set the data on theAWorkflowElement
.- Parameters:
element
- The element on which to set the data.customParams
- Serialized properties model.data
- Deserialized properties model.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The element as it was passed in, with the data set.
-
transferToDataModel
public static WorkflowTrigger transferToDataModel(WorkflowTrigger trigger, Mandant client)
Extract the relevant data from the triggers's properties model and set the data on theWorkflowTrigger
.- Parameters:
trigger
- The trigger on which to set the data.client
- The client scope where this method is called. Required for accessing client-scope handler plugins.- Returns:
- The trigger as it was passed in, with the data set.
-
updateCustomParams
public static com.alibaba.fastjson.JSONObject updateCustomParams(com.alibaba.fastjson.JSONObject json, IElementHandler<?,?> handler)
Updates the serialized JSON properties of the node or trigger. Checks the version of the properties (an entry in the JSON object with the nameCmnConst.Workflow.PARAMS_KEY_VERSION
), and if different from the current version, locates the handler class for the for workflow element, and invokes itsICustomParametersUpdateable.updateCustomParams(IUpdateCustomParametersParams)
method.- Parameters:
json
- Properties to update.handler
- Handler class of the node or trigger.- Returns:
- The updated properties.
-
-