Class ConversationEntityImpl

All Implemented Interfaces:
Permissions, Taggable, Conversation, ConversationEntity, HasRevision, Entity

public class ConversationEntityImpl extends AbstractEngageEngineEntity implements ConversationEntity
Author:
Filip Hrisafov
  • Field Details

    • externalId

      protected String externalId
    • tenantId

      protected String tenantId
    • parentId

      protected String parentId
    • referenceId

      protected String referenceId
    • referenceType

      protected String referenceType
    • referenceDefinitionId

      protected String referenceDefinitionId
    • conversationDefinitionId

      protected String conversationDefinitionId
    • state

      protected String state
    • type

      protected String type
    • subType

      protected String subType
    • permissionType

      protected String permissionType
    • joiningType

      protected String joiningType
    • priority

      protected Integer priority
    • name

      protected String name
    • fallbackName

      protected String fallbackName
    • description

      protected String description
    • avatarId

      protected String avatarId
    • creationTime

      protected Date creationTime
    • creatorId

      protected String creatorId
    • updateTime

      protected Date updateTime
    • updaterId

      protected String updaterId
    • resubmissionTime

      protected Date resubmissionTime
    • lastMessageTime

      protected Date lastMessageTime
    • userAccountIds

      protected Collection<String> userAccountIds
    • metaData

      protected Map<String,Object> metaData
    • identityLinksInitialized

      protected boolean identityLinksInitialized
    • variablesInitialized

      protected boolean variablesInitialized
    • queryVariables

      protected List<VariableInstanceEntity> queryVariables
    • tags

      protected List<String> tags
  • Constructor Details

    • ConversationEntityImpl

      public ConversationEntityImpl()
  • Method Details

    • getExternalId

      public String getExternalId()
      Description copied from interface: Conversation
      If the conversation was created from an external system, this optional external id might be used to map to that external conversation id, if necessary.
      Specified by:
      getExternalId in interface Conversation
      Returns:
      the optional external id of this conversation
    • setExternalId

      public void setExternalId(String externalId)
      Specified by:
      setExternalId in interface ConversationEntity
    • getTenantId

      public String getTenantId()
      Description copied from interface: Conversation
      Returns the id of the tenant this conversation belongs to.
      Specified by:
      getTenantId in interface Conversation
      Returns:
      the tenant id
    • setTenantId

      public void setTenantId(String tenantId)
      Specified by:
      setTenantId in interface ConversationEntity
    • getParentId

      public String getParentId()
      Description copied from interface: Conversation
      Returns the optional parent id of this conversation, if any, which represents another work item, the parent for this conversation (might be another conversation object or any other work item this conversation is attached to).
      Specified by:
      getParentId in interface Conversation
      Returns:
      the optional parent work item id
    • setParentId

      public void setParentId(String parentId)
      Specified by:
      setParentId in interface ConversationEntity
    • getReferenceId

      public String getReferenceId()
      Description copied from interface: Conversation
      An id of the scoped linked entity (for example Task, Case, etc)
      Specified by:
      getReferenceId in interface Conversation
      Returns:
      the id of the scoped entity
    • setReferenceId

      public void setReferenceId(String referenceId)
      Specified by:
      setReferenceId in interface ConversationEntity
    • getReferenceType

      public String getReferenceType()
      Description copied from interface: Conversation
      The type of the scoped linked entity
      Specified by:
      getReferenceType in interface Conversation
      Returns:
      the type of the scoped linked entity
    • setReferenceType

      public void setReferenceType(String referenceType)
      Specified by:
      setReferenceType in interface ConversationEntity
    • getReferenceDefinitionId

      public String getReferenceDefinitionId()
      Description copied from interface: Conversation
      The definition id of the scoped entity (for example Task Definition id, Case Definition Id, etc)
      Specified by:
      getReferenceDefinitionId in interface Conversation
      Returns:
      the definition id of the scoped entity
    • setReferenceDefinitionId

      public void setReferenceDefinitionId(String referenceDefinitionId)
      Specified by:
      setReferenceDefinitionId in interface ConversationEntity
    • getConversationDefinitionId

      public String getConversationDefinitionId()
      Description copied from interface: Conversation
      The definition id of the conversation definition type
      Specified by:
      getConversationDefinitionId in interface Conversation
      Returns:
      the definition id of the conversation definition
    • setConversationDefinitionId

      public void setConversationDefinitionId(String conversationDefinitionId)
      Specified by:
      setConversationDefinitionId in interface ConversationEntity
    • getState

      public String getState()
      Description copied from interface: Conversation
      Returns the state of this conversation.
      Specified by:
      getState in interface Conversation
      Returns:
      the state of this conversation
    • setState

      public void setState(String state)
      Specified by:
      setState in interface ConversationEntity
    • getType

      public String getType()
      Description copied from interface: Conversation
      Returns the type of this conversation. See ConversationTypes.
      Specified by:
      getType in interface Conversation
      Returns:
      the type of this conversation
    • setType

      public void setType(String type)
      Specified by:
      setType in interface ConversationEntity
    • getSubType

      public String getSubType()
      Description copied from interface: Conversation
      Returns the sub type of this conversation. The sub type might be used for filtering or even driving some of the behavior of the conversation, its participants and messages.
      Specified by:
      getSubType in interface Conversation
      Returns:
      the sub type of this conversation
    • setSubType

      public void setSubType(String subType)
      Specified by:
      setSubType in interface ConversationEntity
    • getPermissionType

      public String getPermissionType()
      Description copied from interface: Conversation
      Returns the permission type for this conversation which is used to drive the permissions for messages and events sent to this conversation.
      Specified by:
      getPermissionType in interface Conversation
      Returns:
      the permission type for this conversation
    • setPermissionType

      public void setPermissionType(String permissionType)
      Specified by:
      setPermissionType in interface ConversationEntity
    • getJoiningType

      public String getJoiningType()
      Description copied from interface: Conversation
      Returns the joining type of this conversation which defines on how new participants might join the running conversation.
      Specified by:
      getJoiningType in interface Conversation
      Returns:
      the joining type of this conversation
    • setJoiningType

      public void setJoiningType(String joiningType)
      Specified by:
      setJoiningType in interface ConversationEntity
    • getPriority

      public Integer getPriority()
      Description copied from interface: Conversation
      Returns the optional priority of this conversation which can be used for sorting or other means.
      Specified by:
      getPriority in interface Conversation
      Returns:
      the priority of this conversation
    • setPriority

      public void setPriority(Integer priority)
      Specified by:
      setPriority in interface ConversationEntity
    • isPinned

      public Boolean isPinned()
      Description copied from interface: Conversation
      Returns true, if this conversation is pinned by the current user. If there is no current user id available or the list of pinned user ids is not available, this method might return null.
      Specified by:
      isPinned in interface Conversation
      Returns:
      true if this conversation is pinned by the current user, false if it is not pinned by the current user, null if pinning for the current user cannot be determined
    • isStarred

      public Boolean isStarred()
      Description copied from interface: Conversation
      Returns true, if this conversation is starred by the current user. If there is no current user id available or the list of starred user ids is not available, this method might return null.
      Specified by:
      isStarred in interface Conversation
      Returns:
      true if this conversation is starred by the current user, false if it is not starred by the current user, null if starring for the current user cannot be determined
    • getName

      public String getName()
      Description copied from interface: Conversation
      Returns the optional name of this conversation, most likely representing the main topic of the conversation.
      Specified by:
      getName in interface Conversation
      Returns:
      the name of this conversation, might be null
    • setName

      public void setName(String name)
      Specified by:
      setName in interface ConversationEntity
    • getFallbackName

      public String getFallbackName()
      Description copied from interface: Conversation
      The fallback that needs to be used in case Conversation.getName() is not set.
      Specified by:
      getFallbackName in interface Conversation
      Returns:
      the fallback name that needs to be used
    • setFallbackName

      public void setFallbackName(String fallbackName)
      Specified by:
      setFallbackName in interface ConversationEntity
    • getDescription

      public String getDescription()
      Description copied from interface: Conversation
      Returns the optional description for this conversation, containing the means of its discussed topics, any global notes or whatever is necessary as a global overview of the conversation.
      Specified by:
      getDescription in interface Conversation
      Returns:
      the optional description for this conversation
    • setDescription

      public void setDescription(String description)
      Specified by:
      setDescription in interface ConversationEntity
    • getAvatarId

      public String getAvatarId()
      Description copied from interface: Conversation
      Returns the optional avatar info, if this conversation has an avatar attached.
      Specified by:
      getAvatarId in interface Conversation
      Returns:
      the optional avatar info
    • setAvatarId

      public void setAvatarId(String avatarId)
      Specified by:
      setAvatarId in interface ConversationEntity
    • getCreationTime

      public Date getCreationTime()
      Description copied from interface: Conversation
      Returns the creation timestamp of this conversation.
      Specified by:
      getCreationTime in interface Conversation
      Returns:
      the creation timestamp
    • setCreationTime

      public void setCreationTime(Date creationTime)
      Specified by:
      setCreationTime in interface ConversationEntity
    • getCreatorId

      public String getCreatorId()
      Description copied from interface: Conversation
      Returns the id of the user creating this conversation.
      Specified by:
      getCreatorId in interface Conversation
      Returns:
      the id of the creation user
    • setCreatorId

      public void setCreatorId(String creatorId)
      Specified by:
      setCreatorId in interface ConversationEntity
    • getUpdateTime

      public Date getUpdateTime()
      Description copied from interface: Conversation
      Returns the timestamp of the last update of this conversation, which is the case if anything has changed in the conversation itself or if there was a message posted to this conversation.
      Specified by:
      getUpdateTime in interface Conversation
      Returns:
      the timestamp of the last update / modification conversation or one of its messages
    • setUpdateTime

      public void setUpdateTime(Date updateTime)
      Specified by:
      setUpdateTime in interface ConversationEntity
    • getUpdaterId

      public String getUpdaterId()
      Description copied from interface: Conversation
      Returns the id of the user updating this conversation.
      Specified by:
      getUpdaterId in interface Conversation
      Returns:
      the id of the updater user
    • setUpdaterId

      public void setUpdaterId(String updaterId)
      Specified by:
      setUpdaterId in interface ConversationEntity
    • getResubmissionTime

      public Date getResubmissionTime()
      Description copied from interface: Conversation
      Returns the optional resubmission time for this conversation. Resubmit a conversation means to actually hide it until a given resubmission time where it will appear again as a regular conversation.
      Specified by:
      getResubmissionTime in interface Conversation
      Returns:
      the optional resubmission time of this conversation, might be null
    • setResubmissionTime

      public void setResubmissionTime(Date resubmissionTime)
      Specified by:
      setResubmissionTime in interface ConversationEntity
    • getLastMessageTime

      public Date getLastMessageTime()
      Description copied from interface: Conversation
      The time when the last message of the conversation has ben sent.
      Specified by:
      getLastMessageTime in interface Conversation
      Returns:
      the last message time of the conversation
    • setLastMessageTime

      public void setLastMessageTime(Date lastMessageTime)
      Specified by:
      setLastMessageTime in interface ConversationEntity
    • getUserAccountId

      public String getUserAccountId()
      Description copied from interface: Conversation
      The id of the user account that is linked with this conversation. This would usually mean that this conversation is an external conversation for the given user account. This method is here for backwards compatibility. If the conversation is linked with more than one user account it will throw an exception.
      Specified by:
      getUserAccountId in interface Conversation
      Returns:
      the id of the user account that this conversation is linked to
    • getUserAccountIds

      public Collection<String> getUserAccountIds()
      Description copied from interface: Conversation
      The ids of the user accounts that are linked with this conversation. This would usually mean that this conversation is an external conversation for the given user accounts.
      Specified by:
      getUserAccountIds in interface Conversation
      Returns:
      the ids of the user accounts that this conversation is linked to
    • setUserAccountIds

      public void setUserAccountIds(Collection<String> userAccountIds)
      Specified by:
      setUserAccountIds in interface ConversationEntity
    • getMetaData

      public Map<String,Object> getMetaData()
      Description copied from interface: Conversation
      A conversation can have additional meta information, most likely describing the conversation behavior in more detail. The meta data is stored as a JSON string within a single variable.
      Specified by:
      getMetaData in interface Conversation
      Returns:
      the optional map of meta information or null if this conversation does not have any meta data
    • setMetaData

      public void setMetaData(Map<String,Object> metaData)
      Specified by:
      setMetaData in interface ConversationEntity
    • getIdentityLinks

      public List<IdentityLinkEntity> getIdentityLinks()
      Description copied from interface: Conversation
      Returns the identity links.
      Specified by:
      getIdentityLinks in interface Conversation
      Specified by:
      getIdentityLinks in interface ConversationEntity
    • setIdentityLinks

      public void setIdentityLinks(List<IdentityLinkEntity> identityLinks)
      Specified by:
      setIdentityLinks in interface ConversationEntity
    • getQueryIdentityLinks

      public List<IdentityLinkEntity> getQueryIdentityLinks()
      Getter used by MyBatis when querying conversation with identity links.
    • setQueryIdentityLinks

      public void setQueryIdentityLinks(List<IdentityLinkEntity> identityLinks)
      Setter used by MyBatis when querying conversation with identity links.
    • isIdentityLinksInitialized

      public boolean isIdentityLinksInitialized()
      Specified by:
      isIdentityLinksInitialized in interface ConversationEntity
    • getOwnerId

      public String getOwnerId()
      Description copied from interface: Conversation
      Returns the id of the owner of this conversation, most likely representing the user actually creating it or being created as part of an operation that user executed. Most likely the owner of a conversation is also given the access right to add and remove participants (depending on the permission type of the conversation).
      Specified by:
      getOwnerId in interface Conversation
      Specified by:
      getOwnerId in interface Permissions
      Returns:
      the id of the user being the owner of this conversation
    • getAssigneeId

      public String getAssigneeId()
      Description copied from interface: Conversation
      Returns the id of the assignee of this conversation. In most cases, the assignee is not explicitly used and hence optional, but for some specific permission type cases, the assignee of a conversation might be given certain permissions to handle particular aspects of a conversation.
      Specified by:
      getAssigneeId in interface Conversation
      Specified by:
      getAssigneeId in interface Permissions
      Returns:
      the optional id of the user being the assignee of the conversation
    • getAssignedGroupId

      public String getAssignedGroupId()
      Description copied from interface: Permissions
      Returns the id of the assigned group of this object. What the assigned group actually represents is up to the objects use cases and implementation.
      Specified by:
      getAssignedGroupId in interface Permissions
      Returns:
      the id of the optional assigned group
    • getCandidateUserIds

      public Set<String> getCandidateUserIds()
      Description copied from interface: Conversation
      Returns a set view of the optional list of candidate user ids of this conversation. In most cases, this list actually represents the participants of a conversation and messages / events within that conversation are sent to.
      Specified by:
      getCandidateUserIds in interface Conversation
      Specified by:
      getCandidateUserIds in interface Permissions
      Returns:
      the optional list of candidate user ids attached to this conversation
    • getCandidateGroupIds

      public Set<String> getCandidateGroupIds()
      Description copied from interface: Conversation
      Returns a set view of the optional list of candidate group ids of this conversation. Like with the list of candidate users, all users being at least a member of one of the candidate groups will also become participants of this conversation.
      Specified by:
      getCandidateGroupIds in interface Conversation
      Specified by:
      getCandidateGroupIds in interface Permissions
      Returns:
      the optional list of candidate group ids attached to this conversation
    • isVariablesInitialized

      public boolean isVariablesInitialized()
      Specified by:
      isVariablesInitialized in interface ConversationEntity
    • getConversationVariables

      public Map<String,Object> getConversationVariables()
      Description copied from interface: Conversation
      Returns the conversation variables when used within a conversation query with the include variables method invoked. Otherwise an empty map is returned.
      Specified by:
      getConversationVariables in interface Conversation
      Returns:
      the variables linked to the conversation
    • getQueryVariables

      public List<VariableInstanceEntity> getQueryVariables()
      Getter used by MyBatis when querying conversation with variables.
      Specified by:
      getQueryVariables in interface ConversationEntity
    • setQueryVariables

      public void setQueryVariables(List<VariableInstanceEntity> queryVariables)
      Setter used by MyBatis when querying conversation with variables.
      Specified by:
      setQueryVariables in interface ConversationEntity
    • 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.
      Specified by:
      getTags in interface Taggable
      Returns:
      the optional list of tags, might be null or empty
    • setTags

      public void setTags(List<String> tags)
      Specified by:
      setTags in interface ConversationEntity
    • getPersistentState

      public Object getPersistentState()
      Specified by:
      getPersistentState in interface Entity