Class ConversationBuilderImpl
java.lang.Object
com.flowable.engage.engine.impl.conversation.ConversationBuilderImpl
- All Implemented Interfaces:
Taggable
,ConversationBuilder
- Author:
- Filip Hrisafov, Joram Barrez
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
protected String
protected String
protected String
protected String
protected final ConversationServiceImpl
protected String
protected final EngageEngineConfiguration
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
-
Constructor Summary
ConstructorsConstructorDescriptionConversationBuilderImpl
(ConversationServiceImpl conversationService, EngageEngineConfiguration engageEngineConfiguration) -
Method Summary
Modifier and TypeMethodDescriptionaddCandidateGroup
(String candidateGroup) addParticipant
(String participant) assignedGroupId
(String assignedGroupId) assigneeId
(String assigneeId) Optionally set the avatar information for this conversation.candidateGroups
(Set<String> candidateGroups) conversationDefinitionId
(String conversationDefinitionId) Set the id of the conversation definition.conversationDefinitionKey
(String conversationDefinitionKey) Set the key of the conversation definition.description
(String description) Set the optional description describing the reason or goal of the conversation in more details than the name.determineTenantId
(CommandContext commandContext) protected void
protected void
enrichWithConversationDefinition
(CommandContext commandContext) externalId
(String externalId) Set the external id of the conversation.fallbackName
(String fallbackName) Set the optional fallback name to be used, if there is no explicit name being set (e.g.Returns the key that will be used to do the conversation definition lookup when creating the conversation.Optional name to display when there's no title.getName()
getTags()
Returns the optional list of tags for this object.getType()
joiningType
(String joiningType) Set the joining type used for this conversation.Set the optional name for this conversation.Set the id of the parent conversation, if this is a child conversation (e.g.participants
(Set<String> participants) permissionType
(String permissionType) Set the permission type to be used for this conversation.referenceDefinitionId
(String referenceDefinitionId) Set the reference definition id of the conversation pointing to for example a case or process definition id.referenceId
(String referenceId) Set the reference id of the conversation pointing to for example a case or process instance id.referenceType
(String referenceType) Set the reference type of the conversation pointing to for example a case or process instance type.start()
Returns the newly created conversation object.startWithPermissionCheck
(String userId) Deprecated.startWithPermissionCheck
(String userId, Collection<String> userGroupKeys, String userTenantId) Same asConversationBuilder.start()
with an additional permission check that the user withuserId
is allowed to create the conversation.Tries to find a similar conversation, if found it would return that one.Deprecated.startWithReuseAndPermissionCheck
(String userId, Collection<String> userGroupKeys, String userTenantId) Same asConversationBuilder.startWithReuse()
with an additional permission check that the user withuserId
is allowed to create the conversation.Set the sub type of this conversation.tags
(Collection<String> tags) Optionally sets the tenantId for this conversation.Set the type for this conversation which has an impact on how participants might be joined, on permissions or other behaviors of the conversation.
-
Field Details
-
conversationService
-
engageEngineConfiguration
-
externalId
-
parentId
-
type
-
subType
-
permissionType
-
joiningType
-
name
-
fallbackName
-
conversationDefinitionId
-
conversationDefinitionKey
-
description
-
referenceId
-
referenceType
-
referenceDefinitionId
-
avatarId
-
ownerId
-
assigneeId
-
assignedGroupId
-
participants
-
candidateGroups
-
tags
-
tenantId
-
-
Constructor Details
-
ConversationBuilderImpl
public ConversationBuilderImpl(ConversationServiceImpl conversationService, EngageEngineConfiguration engageEngineConfiguration)
-
-
Method Details
-
getExternalId
- Specified by:
getExternalId
in interfaceConversationBuilder
- See Also:
-
externalId
Description copied from interface:ConversationBuilder
Set the external id of the conversation.- Specified by:
externalId
in interfaceConversationBuilder
- Parameters:
externalId
- the external id for the conversation
-
getParentId
- Specified by:
getParentId
in interfaceConversationBuilder
- See Also:
-
parentId
Description copied from interface:ConversationBuilder
Set the id of the parent conversation, if this is a child conversation (e.g. a topic, ticket or something similar).- Specified by:
parentId
in interfaceConversationBuilder
- Parameters:
parentId
- the id of the parent conversation- Returns:
- conversation builder for method chaining
-
getType
- Specified by:
getType
in interfaceConversationBuilder
- See Also:
-
subType
Description copied from interface:ConversationBuilder
Set the sub type of this conversation.- Specified by:
subType
in interfaceConversationBuilder
- Parameters:
subType
- the sub type of the conversation- Returns:
- conversation builder for method chaining
-
getSubType
- Specified by:
getSubType
in interfaceConversationBuilder
- See Also:
-
type
Description copied from interface:ConversationBuilder
Set the type for this conversation which has an impact on how participants might be joined, on permissions or other behaviors of the conversation. Setting the type of the builder will lead to evaluate theConversationBuilder.joiningType(String)
andConversationBuilder.permissionType(String)
of it as well. The type is a mandatory field and must be set explicitly using this method. As the joining and permission types are evaluated according the type within this method, make sure to explicitly set them (if necessary) AFTER setting the sub type, otherwise they will be overwritten with defaults.- Specified by:
type
in interfaceConversationBuilder
- Parameters:
type
- the sub type to set for this conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getPermissionType
- Specified by:
getPermissionType
in interfaceConversationBuilder
- See Also:
-
permissionType
Description copied from interface:ConversationBuilder
Set the permission type to be used for this conversation. If not set, it will be evaluated according type and sub type automatically. As the permission type is initialized automatically when setting theConversationBuilder.type(String)
, make sure to set it explicitly using this method AFTER the type is set!- Specified by:
permissionType
in interfaceConversationBuilder
- Parameters:
permissionType
- the permission type to be set for the conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getJoiningType
- Specified by:
getJoiningType
in interfaceConversationBuilder
- See Also:
-
joiningType
Description copied from interface:ConversationBuilder
Set the joining type used for this conversation. If not set, it will be evaluated according type and sub type automatically. As the joining type is initialized automatically when setting theConversationBuilder.type(String)
, make sure to set it explicitly using this method AFTER the type is set!- Specified by:
joiningType
in interfaceConversationBuilder
- Parameters:
joiningType
- the joining type to be set for this conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getName
- Specified by:
getName
in interfaceConversationBuilder
- See Also:
-
name
Description copied from interface:ConversationBuilder
Set the optional name for this conversation. Some sub types need the name (e.g. a desk or channel, etc), in this case the name is mandatory.- Specified by:
name
in interfaceConversationBuilder
- Parameters:
name
- the name for the created conversation- Returns:
- conversation builder for method chaining
-
getFallbackName
Description copied from interface:ConversationBuilder
Optional name to display when there's no title. By default, this will be the participant names separated by comas.- Specified by:
getFallbackName
in interfaceConversationBuilder
- Returns:
- Optional conversation title
-
fallbackName
Description copied from interface:ConversationBuilder
Set the optional fallback name to be used, if there is no explicit name being set (e.g. the name of the participants).- Specified by:
fallbackName
in interfaceConversationBuilder
- Parameters:
fallbackName
- the optional fallback name for the conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getConversationDefinitionId
- Specified by:
getConversationDefinitionId
in interfaceConversationBuilder
- See Also:
-
getConversationDefinitionKey
Description copied from interface:ConversationBuilder
Returns the key that will be used to do the conversation definition lookup when creating the conversation.- Specified by:
getConversationDefinitionKey
in interfaceConversationBuilder
-
conversationDefinitionId
Description copied from interface:ConversationBuilder
Set the id of the conversation definition.- Specified by:
conversationDefinitionId
in interfaceConversationBuilder
- Parameters:
conversationDefinitionId
- the id of the conversation definition- Returns:
- conversation builder for method chaining
-
conversationDefinitionKey
Description copied from interface:ConversationBuilder
Set the key of the conversation definition.- Specified by:
conversationDefinitionKey
in interfaceConversationBuilder
- Parameters:
conversationDefinitionKey
- The key that will be used to find the latest version of the conversation definition.- Returns:
- conversation builder for method chaining
-
getDescription
- Specified by:
getDescription
in interfaceConversationBuilder
- See Also:
-
description
Description copied from interface:ConversationBuilder
Set the optional description describing the reason or goal of the conversation in more details than the name.- Specified by:
description
in interfaceConversationBuilder
- Parameters:
description
- the description for the conversation- Returns:
- conversation builder for method chaining
-
referenceId
Description copied from interface:ConversationBuilder
Set the reference id of the conversation pointing to for example a case or process instance id.- Specified by:
referenceId
in interfaceConversationBuilder
- Parameters:
referenceId
- The reference id pointing to for example a case or process instance id.- Returns:
- conversation builder for method chaining
-
getReferenceId
- Specified by:
getReferenceId
in interfaceConversationBuilder
-
referenceType
Description copied from interface:ConversationBuilder
Set the reference type of the conversation pointing to for example a case or process instance type.- Specified by:
referenceType
in interfaceConversationBuilder
- Parameters:
referenceType
- The reference id pointing to for example a case or process instance type.- Returns:
- conversation builder for method chaining
-
getReferenceType
- Specified by:
getReferenceType
in interfaceConversationBuilder
-
referenceDefinitionId
Description copied from interface:ConversationBuilder
Set the reference definition id of the conversation pointing to for example a case or process definition id.- Specified by:
referenceDefinitionId
in interfaceConversationBuilder
- Parameters:
referenceDefinitionId
- The reference definition id pointing to for example a case or process definition id.- Returns:
- conversation builder for method chaining
-
getReferenceDefinitionId
- Specified by:
getReferenceDefinitionId
in interfaceConversationBuilder
-
getAvatarId
- Specified by:
getAvatarId
in interfaceConversationBuilder
- See Also:
-
avatarId
Description copied from interface:ConversationBuilder
Optionally set the avatar information for this conversation.- Specified by:
avatarId
in interfaceConversationBuilder
- Parameters:
avatarId
- the optional information for the avatar of this conversation- Returns:
- conversation builder for method chaining
-
getOwnerId
- Specified by:
getOwnerId
in interfaceConversationBuilder
-
ownerId
- Specified by:
ownerId
in interfaceConversationBuilder
-
getAssigneeId
- Specified by:
getAssigneeId
in interfaceConversationBuilder
-
assigneeId
- Specified by:
assigneeId
in interfaceConversationBuilder
-
getAssignedGroupId
- Specified by:
getAssignedGroupId
in interfaceConversationBuilder
-
assignedGroupId
- Specified by:
assignedGroupId
in interfaceConversationBuilder
-
getParticipants
- Specified by:
getParticipants
in interfaceConversationBuilder
-
participants
- Specified by:
participants
in interfaceConversationBuilder
-
addParticipant
- Specified by:
addParticipant
in interfaceConversationBuilder
-
getCandidateGroups
- Specified by:
getCandidateGroups
in interfaceConversationBuilder
-
candidateGroups
- Specified by:
candidateGroups
in interfaceConversationBuilder
-
addCandidateGroup
- Specified by:
addCandidateGroup
in interfaceConversationBuilder
-
getTags
Description copied from interface:Taggable
Returns the optional list of tags for this object. Tags might be used for different reasons, most likely for filtering and to have an impact on how the object might be rendered. -
tags
- Specified by:
tags
in interfaceConversationBuilder
-
addTag
- Specified by:
addTag
in interfaceConversationBuilder
-
tenantId
Description copied from interface:ConversationBuilder
Optionally sets the tenantId for this conversation. If missing, it will take the tenantId of the current user.- Specified by:
tenantId
in interfaceConversationBuilder
- Returns:
- conversation builder for method chaining
-
getTenantId
- Specified by:
getTenantId
in interfaceConversationBuilder
- Returns:
- The tenantId, if set before on this builder.
-
determineTenantId
-
start
Description copied from interface:ConversationBuilder
Returns the newly created conversation object. This actually performs the persistence of the conversation.- Specified by:
start
in interfaceConversationBuilder
- Returns:
- the newly built conversation object
-
startWithPermissionCheck
Deprecated.Description copied from interface:ConversationBuilder
Same asConversationBuilder.start()
with an additional permission check that the user withuserId
is allowed to create the conversation.- Specified by:
startWithPermissionCheck
in interfaceConversationBuilder
- Parameters:
userId
- the id of the user that is creating the conversation- Returns:
- the newly created conversation
- See Also:
-
startWithPermissionCheck
public Conversation startWithPermissionCheck(String userId, Collection<String> userGroupKeys, String userTenantId) Description copied from interface:ConversationBuilder
Same asConversationBuilder.start()
with an additional permission check that the user withuserId
is allowed to create the conversation.- Specified by:
startWithPermissionCheck
in interfaceConversationBuilder
- Parameters:
userId
- the id of the user that is creating the conversationuserGroupKeys
- the group keys of the user that is creating the conversationuserTenantId
- the tenant id of the user that is creating the conversation- Returns:
- the newly created conversation
- See Also:
-
startWithReuse
Description copied from interface:ConversationBuilder
Tries to find a similar conversation, if found it would return that one. Otherwise it will create a new conversation and persist it.- Specified by:
startWithReuse
in interfaceConversationBuilder
- Returns:
- the already existing similar conversation, or the newly built conversation
-
startWithReuseAndPermissionCheck
Deprecated.Description copied from interface:ConversationBuilder
Same asConversationBuilder.startWithReuse()
with an additional permission check that the user withuserId
is allowed to create the conversation.- Specified by:
startWithReuseAndPermissionCheck
in interfaceConversationBuilder
- Parameters:
userId
- the id of the user that is creating the conversation- Returns:
- the already existing similar conversation, or the newly build conversation
-
startWithReuseAndPermissionCheck
public ConversationHolder startWithReuseAndPermissionCheck(String userId, Collection<String> userGroupKeys, String userTenantId) Description copied from interface:ConversationBuilder
Same asConversationBuilder.startWithReuse()
with an additional permission check that the user withuserId
is allowed to create the conversation.- Specified by:
startWithReuseAndPermissionCheck
in interfaceConversationBuilder
- Parameters:
userId
- the id of the user that is creating the conversationuserGroupKeys
- the group keys of the user that is creating the conversationuserTenantId
- the tenant id of the user that is creating the conversation- Returns:
- the already existing similar conversation, or the newly build conversation
-
enrichWithConversationDefinition
protected void enrichWithConversationDefinition() -
enrichWithConversationDefinition
-