Class EmailResultActionFactory
- All Implemented Interfaces:
com.inet.plugin.NamedExtension
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe extension name used to create aResultActionDefinition.static final StringThe attachment property used to create aResultActionDefinition.static final StringThe BCC property used to create aResultActionDefinition.static final StringThe CC property used to create aResultActionDefinition.static final StringThe message property used to create aResultActionDefinition.static final StringProperty indicating whether to treat PROP_MESSAGE as plain text rather than HTML.static final StringThe receiver property used to create aResultActionDefinition.static final StringThe optional sender/from address property used to create aResultActionDefinition.static final StringThe subject property used to create aResultActionDefinition.static final StringThe format of the file names.Fields inherited from class SeriesDependentFactory
PLACEHOLDER_END_CHARACTER, PLACEHOLDER_START_CHARACTER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected com.inet.taskplanner.server.api.action.email.EmailResultActioncreateInstanceFrom(@Nullable ResultActionDefinition definition, @Nullable com.inet.id.GUID taskID) Constructs a component (PRODUCT) from the given definition.getInformation(@Nullable com.inet.id.GUID taskID) Returns an information object about components which can be produced with this factory.getSummary(@Nullable ResultActionDefinition definition) Constructs summary information for the component represented by the given definition.getSupportedFlavors(ResultActionDefinition definition) Returns the list offlavorssupported by this action for the given definition.booleanDefines whether placeholders will be automatically replaced before the handle method is called.protected ResultActionDefinitionpatchDefinitionProperties(@Nonnull ResultActionDefinition baseDefinition, @Nonnull Map<String, String> seriesProperties, @Nullable com.inet.id.GUID taskID) Patches the properties of the given base definition with properties from the series properties.voidvalidate(@Nonnull ResultActionDefinition definition, @Nullable com.inet.id.GUID taskID) Validate the given definition.Methods inherited from class ResultActionFactory
hasPlaceholderSetMethods inherited from class SeriesDependentFactory
createFrom, getFirstValueFromSeries, updateValues, updateValues, validateMethods inherited from class AbstractFactory
checkDefinitionArgument, createInstanceFrom, getExtensionName, getInformation, getKeywords, isAvailable, isSupportedForSystemTasks
-
Field Details
-
EXTENSION_NAME
The extension name used to create aResultActionDefinition.- See Also:
-
PROP_SUBJECT
The subject property used to create aResultActionDefinition.- See Also:
-
PROP_PLAINTEXT
Property indicating whether to treat PROP_MESSAGE as plain text rather than HTML.- See Also:
-
PROP_MESSAGE
The message property used to create aResultActionDefinition. It is treated as plain text ifPROP_PLAINTEXTis true; otherwise it is treated as HTML.- See Also:
-
PROP_RECEIVER
The receiver property used to create aResultActionDefinition. A semicolon-separated list of email addresses.- See Also:
-
PROP_CC
The CC property used to create aResultActionDefinition. A semicolon-separated list of email addresses.- See Also:
-
PROP_BCC
The BCC property used to create aResultActionDefinition. A semicolon-separated list of email addresses.- See Also:
-
PROP_ATTACH_FILES
The attachment property used to create aResultActionDefinition. Valid values are "true" or "false".- See Also:
-
PROPERTY_FILENAME_FORMAT
The format of the file names. The default is "[filename] [date] [time]".- See Also:
-
PROP_SENDER
The optional sender/from address property used to create aResultActionDefinition.- See Also:
-
-
Constructor Details
-
EmailResultActionFactory
public EmailResultActionFactory()Creates an instance of the factory.- Since:
- taskplanner 3.0
-
-
Method Details
-
getInformation
Returns an information object about components which can be produced with this factory.The returned info contains information about how such a component is to be presented in the Task Planner web GUI. This includes display information and available configuration options. The returned information contains
fieldsthat describe the values a user can specify in the web GUI. The fields are also responsible for replacing placeholders for the corresponding property in aserialtask. That means properties without a field definition will not get any series placeholder replaced.If you implement a factory for a component used only through the API, you can return null here.
- Specified by:
getInformationin classAbstractFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction, ResultActionDefinition, ResultActionInfo, SummaryInfo>- Parameters:
taskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Returns:
- an information object for components this factory can produce
-
validate
public void validate(@Nonnull ResultActionDefinition definition, @Nullable com.inet.id.GUID taskID) throws ValidationException Validate the given definition.The given definition is guaranteed to belong to this factory
- Specified by:
validatein classAbstractFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction, ResultActionDefinition, ResultActionInfo, SummaryInfo>- Parameters:
definition- the definition to validatetaskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Throws:
ValidationException- if the component has some errors
-
createInstanceFrom
protected com.inet.taskplanner.server.api.action.email.EmailResultAction createInstanceFrom(@Nullable ResultActionDefinition definition, @Nullable com.inet.id.GUID taskID) Constructs a component (PRODUCT) from the given definition.- Overrides:
createInstanceFromin classAbstractFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction, ResultActionDefinition, ResultActionInfo, SummaryInfo>- Parameters:
definition- the definition holding information for the PRODUCTtaskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Returns:
- a new PRODUCT
-
getSummary
Constructs summary information for the component represented by the given definition.The summary information is used when the web GUI displays the component.
When implementing a factory for a component to be used only through the API, you can return null here.
- Specified by:
getSummaryin classAbstractFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction, ResultActionDefinition, ResultActionInfo, SummaryInfo>- Parameters:
definition- the definition with the settings made by a user- Returns:
- summary information containing text lines to be displayed in the web GUI for this component.
-
getSupportedFlavors
Returns the list offlavorssupported by this action for the given definition. This method determines which types ofresults(created by aJob) this action can process, potentially based on the action's configuration.Important: The system will only pass results to this action if the result's flavor (as returned by
Result.getFlavors()) matches one of the flavors returned by this method.Examples:
- Email Action: Returns
[ResultFlavor.FILE, ResultFlavor.TEXT, ResultFlavor.NONE]because it can attach files, include text in the message body, and send emails even without results - File Save Action: Returns
[ResultFlavor.FILE]because it can only save file-type results
Common Patterns:
- Always include
ResultFlavor.NONEif your action should execute even when no matching results are present - Make the returned list conditional on the action's configuration (e.g., only return
ResultFlavor.FILEif file attachments are enabled) - Return all flavors your action can potentially handle - the system will filter results automatically
- Specified by:
getSupportedFlavorsin classResultActionFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction>- Parameters:
definition- the current definition settings, which may affect which flavors are supported- Returns:
- the list of result flavors currently supported according to the given definition Never returns null, but may return an empty list.
- Email Action: Returns
-
isAutoResolvePlaceholders
public boolean isAutoResolvePlaceholders()Defines whether placeholders will be automatically replaced before the handle method is called. The default implementation returnstrue.
The automatic replacement asks all fields defined by the factory to resolve placeholders that match a field key and are supported by that field.
For manual replacement, thePlaceholderResolvercan be used.- Overrides:
isAutoResolvePlaceholdersin classResultActionFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction>- Returns:
trueif the placeholders shall be resolved automatically,falseif the implementation needs to manage them itself.
-
patchDefinitionProperties
protected ResultActionDefinition patchDefinitionProperties(@Nonnull ResultActionDefinition baseDefinition, @Nonnull Map<String, String> seriesProperties, @Nullable com.inet.id.GUID taskID) Patches the properties of the given base definition with properties from the series properties.Patch and Replacement:
Properties from seriesProperties will overwrite properties with the same name from the definition. Other new properties are added.
Placeholders in the properties will be replaced. For example, {path} will be replaced with the value of a property 'path'. If no property 'path' exists then the placeholder is replaced with empty string.- Overrides:
patchDefinitionPropertiesin classSeriesDependentFactory<com.inet.taskplanner.server.api.action.email.EmailResultAction, ResultActionDefinition, ResultActionInfo, SummaryInfo>- Parameters:
baseDefinition- original definition from the model; this one will not be changedseriesProperties- properties from the current series settaskID- the ID of the task the definition belongs or will belong to, for optional use. Can be null if the operation is done for a non-saved task.- Returns:
- a new definition with patched properties
-