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 Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected final ConversationServiceImplprotected Stringprotected final EngageEngineConfigurationprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected Stringprotected 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 voidprotected voidenrichWithConversationDefinition(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 withuserIdis 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 withuserIdis 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:
getExternalIdin interfaceConversationBuilder- See Also:
-
externalId
Description copied from interface:ConversationBuilderSet the external id of the conversation.- Specified by:
externalIdin interfaceConversationBuilder- Parameters:
externalId- the external id for the conversation
-
getParentId
- Specified by:
getParentIdin interfaceConversationBuilder- See Also:
-
parentId
Description copied from interface:ConversationBuilderSet the id of the parent conversation, if this is a child conversation (e.g. a topic, ticket or something similar).- Specified by:
parentIdin interfaceConversationBuilder- Parameters:
parentId- the id of the parent conversation- Returns:
- conversation builder for method chaining
-
getType
- Specified by:
getTypein interfaceConversationBuilder- See Also:
-
subType
Description copied from interface:ConversationBuilderSet the sub type of this conversation.- Specified by:
subTypein interfaceConversationBuilder- Parameters:
subType- the sub type of the conversation- Returns:
- conversation builder for method chaining
-
getSubType
- Specified by:
getSubTypein interfaceConversationBuilder- See Also:
-
type
Description copied from interface:ConversationBuilderSet 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:
typein interfaceConversationBuilder- Parameters:
type- the sub type to set for this conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getPermissionType
- Specified by:
getPermissionTypein interfaceConversationBuilder- See Also:
-
permissionType
Description copied from interface:ConversationBuilderSet 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:
permissionTypein interfaceConversationBuilder- Parameters:
permissionType- the permission type to be set for the conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getJoiningType
- Specified by:
getJoiningTypein interfaceConversationBuilder- See Also:
-
joiningType
Description copied from interface:ConversationBuilderSet 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:
joiningTypein interfaceConversationBuilder- Parameters:
joiningType- the joining type to be set for this conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getName
- Specified by:
getNamein interfaceConversationBuilder- See Also:
-
name
Description copied from interface:ConversationBuilderSet 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:
namein interfaceConversationBuilder- Parameters:
name- the name for the created conversation- Returns:
- conversation builder for method chaining
-
getFallbackName
Description copied from interface:ConversationBuilderOptional name to display when there's no title. By default, this will be the participant names separated by comas.- Specified by:
getFallbackNamein interfaceConversationBuilder- Returns:
- Optional conversation title
-
fallbackName
Description copied from interface:ConversationBuilderSet the optional fallback name to be used, if there is no explicit name being set (e.g. the name of the participants).- Specified by:
fallbackNamein interfaceConversationBuilder- Parameters:
fallbackName- the optional fallback name for the conversation- Returns:
- conversation builder for method chaining
- See Also:
-
getConversationDefinitionId
- Specified by:
getConversationDefinitionIdin interfaceConversationBuilder- See Also:
-
getConversationDefinitionKey
Description copied from interface:ConversationBuilderReturns the key that will be used to do the conversation definition lookup when creating the conversation.- Specified by:
getConversationDefinitionKeyin interfaceConversationBuilder
-
conversationDefinitionId
Description copied from interface:ConversationBuilderSet the id of the conversation definition.- Specified by:
conversationDefinitionIdin interfaceConversationBuilder- Parameters:
conversationDefinitionId- the id of the conversation definition- Returns:
- conversation builder for method chaining
-
conversationDefinitionKey
Description copied from interface:ConversationBuilderSet the key of the conversation definition.- Specified by:
conversationDefinitionKeyin 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:
getDescriptionin interfaceConversationBuilder- See Also:
-
description
Description copied from interface:ConversationBuilderSet the optional description describing the reason or goal of the conversation in more details than the name.- Specified by:
descriptionin interfaceConversationBuilder- Parameters:
description- the description for the conversation- Returns:
- conversation builder for method chaining
-
referenceId
Description copied from interface:ConversationBuilderSet the reference id of the conversation pointing to for example a case or process instance id.- Specified by:
referenceIdin 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:
getReferenceIdin interfaceConversationBuilder
-
referenceType
Description copied from interface:ConversationBuilderSet the reference type of the conversation pointing to for example a case or process instance type.- Specified by:
referenceTypein 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:
getReferenceTypein interfaceConversationBuilder
-
referenceDefinitionId
Description copied from interface:ConversationBuilderSet the reference definition id of the conversation pointing to for example a case or process definition id.- Specified by:
referenceDefinitionIdin 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:
getReferenceDefinitionIdin interfaceConversationBuilder
-
getAvatarId
- Specified by:
getAvatarIdin interfaceConversationBuilder- See Also:
-
avatarId
Description copied from interface:ConversationBuilderOptionally set the avatar information for this conversation.- Specified by:
avatarIdin interfaceConversationBuilder- Parameters:
avatarId- the optional information for the avatar of this conversation- Returns:
- conversation builder for method chaining
-
getOwnerId
- Specified by:
getOwnerIdin interfaceConversationBuilder
-
ownerId
- Specified by:
ownerIdin interfaceConversationBuilder
-
getAssigneeId
- Specified by:
getAssigneeIdin interfaceConversationBuilder
-
assigneeId
- Specified by:
assigneeIdin interfaceConversationBuilder
-
getAssignedGroupId
- Specified by:
getAssignedGroupIdin interfaceConversationBuilder
-
assignedGroupId
- Specified by:
assignedGroupIdin interfaceConversationBuilder
-
getParticipants
- Specified by:
getParticipantsin interfaceConversationBuilder
-
participants
- Specified by:
participantsin interfaceConversationBuilder
-
addParticipant
- Specified by:
addParticipantin interfaceConversationBuilder
-
getCandidateGroups
- Specified by:
getCandidateGroupsin interfaceConversationBuilder
-
candidateGroups
- Specified by:
candidateGroupsin interfaceConversationBuilder
-
addCandidateGroup
- Specified by:
addCandidateGroupin interfaceConversationBuilder
-
getTags
Description copied from interface:TaggableReturns 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:
tagsin interfaceConversationBuilder
-
addTag
- Specified by:
addTagin interfaceConversationBuilder
-
tenantId
Description copied from interface:ConversationBuilderOptionally sets the tenantId for this conversation. If missing, it will take the tenantId of the current user.- Specified by:
tenantIdin interfaceConversationBuilder- Returns:
- conversation builder for method chaining
-
getTenantId
- Specified by:
getTenantIdin interfaceConversationBuilder- Returns:
- The tenantId, if set before on this builder.
-
determineTenantId
-
start
Description copied from interface:ConversationBuilderReturns the newly created conversation object. This actually performs the persistence of the conversation.- Specified by:
startin interfaceConversationBuilder- Returns:
- the newly built conversation object
-
startWithPermissionCheck
Deprecated.Description copied from interface:ConversationBuilderSame asConversationBuilder.start()with an additional permission check that the user withuserIdis allowed to create the conversation.- Specified by:
startWithPermissionCheckin 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:ConversationBuilderSame asConversationBuilder.start()with an additional permission check that the user withuserIdis allowed to create the conversation.- Specified by:
startWithPermissionCheckin 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:ConversationBuilderTries to find a similar conversation, if found it would return that one. Otherwise it will create a new conversation and persist it.- Specified by:
startWithReusein interfaceConversationBuilder- Returns:
- the already existing similar conversation, or the newly built conversation
-
startWithReuseAndPermissionCheck
Deprecated.Description copied from interface:ConversationBuilderSame asConversationBuilder.startWithReuse()with an additional permission check that the user withuserIdis allowed to create the conversation.- Specified by:
startWithReuseAndPermissionCheckin 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:ConversationBuilderSame asConversationBuilder.startWithReuse()with an additional permission check that the user withuserIdis allowed to create the conversation.- Specified by:
startWithReuseAndPermissionCheckin 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
-