Class NormalCompletionResult
- java.lang.Object
-
- de.xima.fc.workflow.processor.model.NormalCompletionResult
-
- All Implemented Interfaces:
IBaseCompletionResult
,INormalCompletionResult
,ISuccessResultData
,Serializable
public final class NormalCompletionResult extends Object implements INormalCompletionResult
POJO implementation ofINormalCompletionResult
.- Since:
- 7.0.0
- Author:
- XIMA MEDIA GmbH
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NormalCompletionResult.Builder
A simple builder for anNormalCompletionResult
-
Constructor Summary
Constructors Constructor Description NormalCompletionResult(WorkflowNode node, Object alwaysValue, Object successValue, IWorkflowFileValue fileValue, List<NodeSoftErrorException> softErrors)
Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static NormalCompletionResult.Builder
builder(WorkflowNode node)
static INormalCompletionResult
empty()
Object
getAlwaysValue()
IWorkflowAttachmentValue
getAttachmentValue()
IWorkflowFileValue
getFileValue()
WorkflowNode
getNode()
List<NodeSoftErrorException>
getSoftErrors()
Business logic might need to distinguish between hard errors and soft errors.Object
getSuccessValue()
-
-
-
Constructor Detail
-
NormalCompletionResult
@Deprecated public NormalCompletionResult(WorkflowNode node, Object alwaysValue, Object successValue, IWorkflowFileValue fileValue, List<NodeSoftErrorException> softErrors)
Deprecated.Usebuilder(WorkflowNode)
. Ideally, do not create an instance directly, prefer usingINodeExecutionParams.normalResult()
.Creates a new POJO with the given data.- Parameters:
node
- The value returned byIBaseCompletionResult.getNode()
.alwaysValue
- The value returned byIBaseCompletionResult.getAlwaysValue()
.successValue
- The value returned byISuccessResultData.getSuccessValue()
.fileValue
- The value returned byIBaseCompletionResult.getFileValue()
.softErrors
- The value returned byISuccessResultData.getSoftErrors()
.
-
-
Method Detail
-
getAlwaysValue
public Object getAlwaysValue()
- Specified by:
getAlwaysValue
in interfaceIBaseCompletionResult
- Returns:
- The value that is always returned, irrespective of whether the node completed normally or abruptly. Must
conform to the
IExecutionResultDescriptor.getAlwaysValueDescriptor(IValueDescriptorFactory)
IExecutionResultDescriptor#getAlwaysValueDescriptor.
-
getAttachmentValue
public IWorkflowAttachmentValue getAttachmentValue()
- Specified by:
getAttachmentValue
in interfaceIBaseCompletionResult
- Returns:
- The attachment or attachments returned by the node when executed. Must conform to the
IExecutionResultDescriptor.getAttachmentValueDescriptor()
.
-
getFileValue
public IWorkflowFileValue getFileValue()
- Specified by:
getFileValue
in interfaceIBaseCompletionResult
- Returns:
- The file returned by the node when executed. Must conform to the
IExecutionResultDescriptor.getFileValueDescriptor()
.
-
getNode
public WorkflowNode getNode()
- Specified by:
getNode
in interfaceIBaseCompletionResult
- Returns:
- The node that created this result. May be
null
when no node is associated with this result.
-
getSoftErrors
public List<NodeSoftErrorException> getSoftErrors()
Description copied from interface:ISuccessResultData
Business logic might need to distinguish between hard errors and soft errors. A hard error is anexception
that results in the workflow failing when not caught by an error handler. These are for example technical errors such as a missing database connection, or when a file cannot be read form the file system due to missing permissions.Soft errors are similar to warnings in that not all of the the business logic could be performed or that some the business logic had to be skipped. In contrast with hard errors, however, the node itself still completes normally and does not cause the workflow to fail. This method can be used to check if any soft errors occurred.
Soft errors are similar to
hard errors
in that both provide an error code, an error message, as well as custom additional data.Common examples of soft errors include missing files from optional upload form elements, or a
4xx
HTTP return code. However, the exact definition of what constitutes a soft error must be decided on a case-by-case basis by each individualnode implementation
. This method is meant to be a uniform interface for nodes to provide information about soft errors. This method can also be used to check whether a node was "successful", by checking whether the list of soft errors is empty. Implementations are encouraged to provide more details about their completion status viaISuccessResultData.getSuccessValue()
.Soft errors are purely informational. Workflow execution is not affected in any way by whether or not soft error occurred. The node still either completes normally or returns, and the next node or trigger is processed as if no soft errors were present.
@implNote This interface provides a default implementation that returns an empty list for backwards compatibility so as not to break existing implementation. However, all existing implementations are strongly advised to override and implement this method. The default implementation may be removed at some point.
- Specified by:
getSoftErrors
in interfaceISuccessResultData
- Returns:
- A list of soft errors that did occur during the execution of the workflow node.
-
getSuccessValue
public Object getSuccessValue()
- Specified by:
getSuccessValue
in interfaceISuccessResultData
- Returns:
- The value that is returned when node completed normally. Must conform to the
IExecutionResultDescriptor.getSuccessValueDescriptor(IValueDescriptorFactory)
IExecutionResultDescriptor#getSuccessValueDescriptor.
-
empty
public static INormalCompletionResult empty()
- Returns:
- An empty success result with no data.
-
builder
public static NormalCompletionResult.Builder builder(WorkflowNode node)
- Parameters:
node
- The node that did finish execution.- Returns:
- A builder for a
NormalCompletionResult
.
-
-