Class CommunityProfileOMRSTopicListener

java.lang.Object
org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicListenerBase
org.odpi.openmetadata.accessservices.communityprofile.omrstopic.CommunityProfileOMRSTopicListener
All Implemented Interfaces:
OMRSTopicListener, OMRSTopicRepositoryEventListener

public class CommunityProfileOMRSTopicListener extends OMRSTopicListenerBase
CommunityProfileOMRSTopicListener examines each OMRS Topic event to (1) determine if karma points should be awarded to an individual who has contributed to open metadata (2) determine if the event relates to metadata instances that should result in a Community Profile OMAS event on its Out Topic. If karma points need to be awarded, it calls the ContributionRecordHandler to update the person's contribution record. If an event needs to be sent, it calls the CommunityProfileOutTopicPublisher.
  • Constructor Details

    • CommunityProfileOMRSTopicListener

      public CommunityProfileOMRSTopicListener(int karmaPointIncrement, int karmaPointPlateauThreshold, CommunityProfileOutTopicPublisher publisher, String serverUserId, AuditLog auditLog, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName, CommunityProfileServicesInstance instance)
      The constructor is given the connection to the out topic for Community Profile OMAS along with classes for testing and manipulating instances.
      Parameters:
      karmaPointIncrement - increment for each personal contribution
      karmaPointPlateauThreshold - number of karma points in a plateau
      publisher - object that can set events to listening destinations
      serverUserId - userId for requests originated by this server
      auditLog - logging destination
      repositoryHelper - repository helper
      serviceName - name of this component
      serverName - name of this server instance
      instance - handlers for this server instance
  • Method Details

    • processNewEntityEvent

      public void processNewEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity)
      A new entity has been created.
      Overrides:
      processNewEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the new entity
    • processRefreshEntityEvent

      public void processRefreshEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity)
      A remote repository in the cohort has sent entity details in response to a refresh request.
      Overrides:
      processRefreshEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the requested entity
    • processUpdatedEntityEvent

      public void processUpdatedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail oldEntity, EntityDetail newEntity)
      An existing entity has been updated.
      Overrides:
      processUpdatedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      oldEntity - original values for the entity.
      newEntity - details of the new version of the entity.
    • processClassifiedEntityEvent

      public void processClassifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity, Classification classification)
      A new classification has been added to an entity.
      Overrides:
      processClassifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the entity with the new classification added. No guarantee this is all the classifications.
      classification - new classification
    • processClassifiedEntityEvent

      public void processClassifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityProxy entity, Classification classification)
      A new classification has been added to an entity.
      Overrides:
      processClassifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the entity with the new classification added. No guarantee this is all the classifications.
      classification - new classification
    • processDeclassifiedEntityEvent

      public void processDeclassifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity, Classification originalClassification)
      A classification has been removed from an entity.
      Overrides:
      processDeclassifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the entity after the classification has been removed. No guarantee this is all the classifications.
      originalClassification - classification that was removed
    • processDeclassifiedEntityEvent

      public void processDeclassifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityProxy entity, Classification originalClassification)
      A classification has been removed from an entity.
      Overrides:
      processDeclassifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the entity after the classification has been removed. No guarantee this is all the classifications.
      originalClassification - classification that was removed
    • processReclassifiedEntityEvent

      public void processReclassifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity, Classification originalClassification, Classification classification)
      An existing classification has been changed on an entity.
      Overrides:
      processReclassifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the entity after the classification has been changed. No guarantee this is all the classifications.
      originalClassification - classification that was removed
      classification - new classification
    • processReclassifiedEntityEvent

      public void processReclassifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityProxy entity, Classification originalClassification, Classification classification)
      An existing classification has been changed on an entity.
      Overrides:
      processReclassifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - details of the entity after the classification has been changed. No guarantee this is all the classifications.
      originalClassification - classification that was removed
      classification - new classification
    • processDeletedEntityEvent

      public void processDeletedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity)
      An existing entity has been deleted. This is a soft delete. This means it is still in the repository, but it is no longer returned on queries.

      All relationships to the entity are also soft-deleted and will no longer be usable. These deleted relationships will be notified through separate events.

      Details of the TypeDef are included with the entity's unique id (guid) to ensure the right entity is deleted in the remote repositories.

      Overrides:
      processDeletedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - deleted entity
    • processDeletePurgedEntityEvent

      public void processDeletePurgedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, EntityDetail entity)
      An existing entity has been deleted and purged in a single action. All relationships to the entity are also deleted and purged and will no longer be usable. These deleted relationships will be notified through separate events.
      Overrides:
      processDeletePurgedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      entity - deleted entity
    • processReIdentifiedEntityEvent

      public void processReIdentifiedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, String originalEntityGUID, EntityDetail entity)
      The guid of an existing entity has been changed to a new value. This is used if two different entities are discovered to have the same guid. This is extremely unlikely but not impossible so the open metadata protocol has provision for this.
      Overrides:
      processReIdentifiedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      originalEntityGUID - the existing identifier for the entity.
      entity - new values for this entity, including the new guid.
    • processReTypedEntityEvent

      public void processReTypedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, TypeDefSummary originalTypeDefSummary, EntityDetail entity)
      An existing entity has had its type changed. Typically, this action is taken to move an entity's type to either a super type (so the subtype can be deleted) or a new subtype (so additional properties can be added.) However, the type can be changed to any compatible type.
      Overrides:
      processReTypedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      originalTypeDefSummary - original details of this entity's TypeDef.
      entity - new values for this entity, including the new type information.
    • processReHomedEntityEvent

      public void processReHomedEntityEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, String originalHomeMetadataCollectionId, EntityDetail entity)
      An existing entity has changed home repository. This action is taken for example, if a repository becomes permanently unavailable, or if the user community updating this entity move to working from a different repository in the open metadata repository cohort.
      Overrides:
      processReHomedEntityEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      originalHomeMetadataCollectionId - unique identifier for the original home repository.
      entity - new values for this entity, including the new home information.
    • processNewRelationshipEvent

      public void processNewRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, Relationship relationship)
      A new relationship has been created.
      Overrides:
      processNewRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      relationship - details of the new relationship
    • processUpdatedRelationshipEvent

      public void processUpdatedRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, Relationship oldRelationship, Relationship newRelationship)
      An existing relationship has been updated.
      Overrides:
      processUpdatedRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      oldRelationship - original details of the relationship.
      newRelationship - details of the new version of the relationship.
    • processDeletedRelationshipEvent

      public void processDeletedRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, Relationship relationship)
      An existing relationship has been deleted. This is a soft delete. This means it is still in the repository, but it is no longer returned on queries.

      Details of the TypeDef are included with the relationship's unique id (guid) to ensure the right relationship is deleted in the remote repositories.

      Overrides:
      processDeletedRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      relationship - deleted relationship
    • processDeletePurgedRelationshipEvent

      public void processDeletePurgedRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, Relationship relationship)
      An active relationship has been deleted and purged from the repository. This request can not be undone.
      Overrides:
      processDeletePurgedRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      relationship - deleted relationship
    • processReIdentifiedRelationshipEvent

      public void processReIdentifiedRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, String originalRelationshipGUID, Relationship relationship)
      The guid of an existing relationship has changed. This is used if two different relationships are discovered to have the same guid. This is extremely unlikely but not impossible so the open metadata protocol has provision for this.
      Overrides:
      processReIdentifiedRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      originalRelationshipGUID - the existing identifier for the relationship.
      relationship - new values for this relationship, including the new guid.
    • processReTypedRelationshipEvent

      public void processReTypedRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, TypeDefSummary originalTypeDefSummary, Relationship relationship)
      An existing relationship has had its type changed. Typically, this action is taken to move a relationship's type to either a super type (so the subtype can be deleted) or a new subtype (so additional properties can be added.) However, the type can be changed to any compatible type.
      Overrides:
      processReTypedRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      originalTypeDefSummary - original details of this relationship's TypeDef.
      relationship - new values for this relationship, including the new type information.
    • processReHomedRelationshipEvent

      public void processReHomedRelationshipEvent(String sourceName, String originatorMetadataCollectionId, String originatorServerName, String originatorServerType, String originatorOrganizationName, String originalHomeMetadataCollection, Relationship relationship)
      An existing relationship has changed home repository. This action is taken for example, if a repository becomes permanently unavailable, or if the user community updating this relationship move to working from a different repository in the open metadata repository cohort.
      Overrides:
      processReHomedRelationshipEvent in class OMRSTopicListenerBase
      Parameters:
      sourceName - name of the source of the event. It may be the cohort name for incoming events or the local repository, or event mapper name.
      originatorMetadataCollectionId - unique identifier for the metadata collection hosted by the server that sent the event.
      originatorServerName - name of the server that the event came from.
      originatorServerType - type of server that the event came from.
      originatorOrganizationName - name of the organization that owns the server that sent the event.
      originalHomeMetadataCollection - unique identifier for the original home repository.
      relationship - new values for this relationship, including the new home information.