Class ConversationBuilderImpl
- java.lang.Object
-
- com.flowable.engage.engine.impl.conversation.ConversationBuilderImpl
-
- All Implemented Interfaces:
Taggable
,ConversationBuilder
public class ConversationBuilderImpl extends Object implements ConversationBuilder
- Author:
- Filip Hrisafov, Joram Barrez
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ConversationBuilderImpl.StartConversationWithChecksCmd<T>
-
Field Summary
Fields Modifier and Type Field Description protected String
assignedGroupId
protected String
assigneeId
protected String
avatarId
protected Set<String>
candidateGroups
protected String
conversationDefinitionId
protected String
conversationDefinitionKey
protected ConversationServiceImpl
conversationService
protected String
description
protected EngageEngineConfiguration
engageEngineConfiguration
protected String
externalId
protected String
fallbackName
protected String
joiningType
protected String
name
protected String
ownerId
protected String
parentId
protected Set<String>
participants
protected String
permissionType
protected String
referenceDefinitionId
protected String
referenceId
protected String
referenceType
protected String
subType
protected List<String>
tags
protected String
tenantId
protected String
type
-
Constructor Summary
Constructors Constructor Description ConversationBuilderImpl(ConversationServiceImpl conversationService, EngageEngineConfiguration engageEngineConfiguration)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ConversationBuilder
addCandidateGroup(String candidateGroup)
ConversationBuilder
addParticipant(String participant)
ConversationBuilder
addTag(String tag)
ConversationBuilder
assignedGroupId(String assignedGroupId)
ConversationBuilder
assigneeId(String assigneeId)
ConversationBuilder
avatarId(String avatarId)
Optionally set the avatar information for this conversation.ConversationBuilder
candidateGroups(Set<String> candidateGroups)
ConversationBuilder
conversationDefinitionId(String conversationDefinitionId)
Set the id of the conversation definition.ConversationBuilder
conversationDefinitionKey(String conversationDefinitionKey)
Set the key of the conversation definition.ConversationBuilder
description(String description)
Set the optional description describing the reason or goal of the conversation in more details than the name.String
determineTenantId(CommandContext commandContext)
protected void
enrichWithConversationDefinition()
protected void
enrichWithConversationDefinition(CommandContext commandContext)
ConversationBuilder
externalId(String externalId)
Set the external id of the conversation.ConversationBuilder
fallbackName(String fallbackName)
Set the optional fallback name to be used, if there is no explicit name being set (e.g.String
getAssignedGroupId()
String
getAssigneeId()
String
getAvatarId()
Set<String>
getCandidateGroups()
String
getConversationDefinitionId()
String
getConversationDefinitionKey()
Returns the key that will be used to do the conversation definition lookup when creating the conversation.String
getDescription()
String
getExternalId()
String
getFallbackName()
Optional name to display when there's no title.String
getJoiningType()
String
getName()
String
getOwnerId()
String
getParentId()
Set<String>
getParticipants()
String
getPermissionType()
String
getReferenceDefinitionId()
String
getReferenceId()
String
getReferenceType()
String
getSubType()
List<String>
getTags()
Returns the optional list of tags for this object.String
getTenantId()
String
getType()
ConversationBuilder
joiningType(String joiningType)
Set the joining type used for this conversation.ConversationBuilder
name(String name)
Set the optional name for this conversation.ConversationBuilder
ownerId(String ownerId)
ConversationBuilder
parentId(String parentId)
Set the id of the parent conversation, if this is a child conversation (e.g.ConversationBuilder
participants(Set<String> participants)
ConversationBuilder
permissionType(String permissionType)
Set the permission type to be used for this conversation.ConversationBuilder
referenceDefinitionId(String referenceDefinitionId)
Set the reference definition id of the conversation pointing to for example a case or process definition id.ConversationBuilder
referenceId(String referenceId)
Set the reference id of the conversation pointing to for example a case or process instance id.ConversationBuilder
referenceType(String referenceType)
Set the reference type of the conversation pointing to for example a case or process instance type.Conversation
start()
Returns the newly created conversation object.Conversation
startWithPermissionCheck(String userId)
Deprecated.Conversation
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.ConversationHolder
startWithReuse()
Tries to find a similar conversation, if found it would return that one.ConversationHolder
startWithReuseAndPermissionCheck(String userId)
Deprecated.ConversationHolder
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.ConversationBuilder
subType(String subType)
Set the sub type of this conversation.ConversationBuilder
tags(Collection<String> tags)
ConversationBuilder
tenantId(String tenantId)
Optionally sets the tenantId for this conversation.ConversationBuilder
type(String type)
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 Detail
-
conversationService
protected final ConversationServiceImpl conversationService
-
engageEngineConfiguration
protected final EngageEngineConfiguration engageEngineConfiguration
-
externalId
protected String externalId
-
parentId
protected String parentId
-
type
protected String type
-
subType
protected String subType
-
permissionType
protected String permissionType
-
joiningType
protected String joiningType
-
name
protected String name
-
fallbackName
protected String fallbackName
-
conversationDefinitionId
protected String conversationDefinitionId
-
conversationDefinitionKey
protected String conversationDefinitionKey
-
description
protected String description
-
referenceId
protected String referenceId
-
referenceType
protected String referenceType
-
referenceDefinitionId
protected String referenceDefinitionId
-
avatarId
protected String avatarId
-
ownerId
protected String ownerId
-
assigneeId
protected String assigneeId
-
assignedGroupId
protected String assignedGroupId
-
tenantId
protected String tenantId
-
-
Constructor Detail
-
ConversationBuilderImpl
public ConversationBuilderImpl(ConversationServiceImpl conversationService, EngageEngineConfiguration engageEngineConfiguration)
-
-
Method Detail
-
getExternalId
public String getExternalId()
- Specified by:
getExternalId
in interfaceConversationBuilder
- See Also:
Conversation.getExternalId()
-
externalId
public ConversationBuilder externalId(String 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
public String getParentId()
- Specified by:
getParentId
in interfaceConversationBuilder
- See Also:
Conversation.getParentId()
-
parentId
public ConversationBuilder parentId(String 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
public String getType()
- Specified by:
getType
in interfaceConversationBuilder
- See Also:
Conversation.getType()
-
subType
public ConversationBuilder subType(String 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
public String getSubType()
- Specified by:
getSubType
in interfaceConversationBuilder
- See Also:
Conversation.getSubType()
-
type
public ConversationBuilder type(String 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:
Conversation.getType()
,ConversationTypes
-
getPermissionType
public String getPermissionType()
- Specified by:
getPermissionType
in interfaceConversationBuilder
- See Also:
Conversation.getPermissionType()
-
permissionType
public ConversationBuilder permissionType(String 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:
Conversation.getPermissionType()
,PermissionTypes
-
getJoiningType
public String getJoiningType()
- Specified by:
getJoiningType
in interfaceConversationBuilder
- See Also:
Conversation.getJoiningType()
-
joiningType
public ConversationBuilder joiningType(String 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:
Conversation.getJoiningType()
,JoiningTypes
-
getName
public String getName()
- Specified by:
getName
in interfaceConversationBuilder
- See Also:
Conversation.getName()
-
name
public ConversationBuilder name(String 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
public String 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
public ConversationBuilder fallbackName(String 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:
Conversation.getFallbackName()
-
getConversationDefinitionId
public String getConversationDefinitionId()
- Specified by:
getConversationDefinitionId
in interfaceConversationBuilder
- See Also:
Conversation.getConversationDefinitionId()
-
getConversationDefinitionKey
public String 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
public ConversationBuilder conversationDefinitionId(String 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
public ConversationBuilder conversationDefinitionKey(String 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
public String getDescription()
- Specified by:
getDescription
in interfaceConversationBuilder
- See Also:
Conversation.getDescription()
-
description
public ConversationBuilder description(String 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
public ConversationBuilder referenceId(String 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
public String getReferenceId()
- Specified by:
getReferenceId
in interfaceConversationBuilder
-
referenceType
public ConversationBuilder referenceType(String 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
public String getReferenceType()
- Specified by:
getReferenceType
in interfaceConversationBuilder
-
referenceDefinitionId
public ConversationBuilder referenceDefinitionId(String 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
public String getReferenceDefinitionId()
- Specified by:
getReferenceDefinitionId
in interfaceConversationBuilder
-
getAvatarId
public String getAvatarId()
- Specified by:
getAvatarId
in interfaceConversationBuilder
- See Also:
Conversation.getAvatarId()
-
avatarId
public ConversationBuilder avatarId(String 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
public String getOwnerId()
- Specified by:
getOwnerId
in interfaceConversationBuilder
-
ownerId
public ConversationBuilder ownerId(String ownerId)
- Specified by:
ownerId
in interfaceConversationBuilder
-
getAssigneeId
public String getAssigneeId()
- Specified by:
getAssigneeId
in interfaceConversationBuilder
-
assigneeId
public ConversationBuilder assigneeId(String assigneeId)
- Specified by:
assigneeId
in interfaceConversationBuilder
-
getAssignedGroupId
public String getAssignedGroupId()
- Specified by:
getAssignedGroupId
in interfaceConversationBuilder
-
assignedGroupId
public ConversationBuilder assignedGroupId(String assignedGroupId)
- Specified by:
assignedGroupId
in interfaceConversationBuilder
-
getParticipants
public Set<String> getParticipants()
- Specified by:
getParticipants
in interfaceConversationBuilder
-
participants
public ConversationBuilder participants(Set<String> participants)
- Specified by:
participants
in interfaceConversationBuilder
-
addParticipant
public ConversationBuilder addParticipant(String participant)
- Specified by:
addParticipant
in interfaceConversationBuilder
-
getCandidateGroups
public Set<String> getCandidateGroups()
- Specified by:
getCandidateGroups
in interfaceConversationBuilder
-
candidateGroups
public ConversationBuilder candidateGroups(Set<String> candidateGroups)
- Specified by:
candidateGroups
in interfaceConversationBuilder
-
addCandidateGroup
public ConversationBuilder addCandidateGroup(String candidateGroup)
- Specified by:
addCandidateGroup
in interfaceConversationBuilder
-
getTags
public List<String> 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
public ConversationBuilder tags(Collection<String> tags)
- Specified by:
tags
in interfaceConversationBuilder
-
addTag
public ConversationBuilder addTag(String tag)
- Specified by:
addTag
in interfaceConversationBuilder
-
tenantId
public ConversationBuilder tenantId(String 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
public String getTenantId()
- Specified by:
getTenantId
in interfaceConversationBuilder
- Returns:
- The tenantId, if set before on this builder.
-
determineTenantId
public String determineTenantId(CommandContext commandContext)
-
start
public Conversation 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 public Conversation startWithPermissionCheck(String userId)
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:
ConversationBuilder.start()
-
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:
ConversationBuilder.start()
-
startWithReuse
public ConversationHolder 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 public ConversationHolder startWithReuseAndPermissionCheck(String userId)
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
protected void enrichWithConversationDefinition(CommandContext commandContext)
-
-