Interface SynchronizationEvent

All Superinterfaces:
AcknowledgementSink, Comparable<SynchronizationEvent>, DebugDumpable
All Known Subinterfaces:
AsyncUpdateEvent, LiveSyncEvent

public interface SynchronizationEvent extends AcknowledgementSink, DebugDumpable, Comparable<SynchronizationEvent>
Represents a synchronization change event (obtained typically by live synchronization or asynchronous update) that needs to be processed. It is comparable on the sequential number.
  • Method Details

    • getChangeDescription

      The description of the change. BEWARE! Can be null for erroneous changes that failed in such a crude way that no repo shadow was created.
    • getSequentialNumber

      int getSequentialNumber()
      Sequential number of this event. It is unique at least in the context of the current synchronization operation (ProvisioningService#synchronize(com.evolveum.midpoint.schema.ResourceShadowCoordinates, LiveSyncOptions, LiveSyncTokenStorage, LiveSyncEventHandler, Task, OperationResult) or ProvisioningService#processAsynchronousUpdates(com.evolveum.midpoint.schema.ResourceShadowCoordinates, AsyncUpdateEventHandler, Task, OperationResult)).
    • getCorrelationValue

      Object getCorrelationValue()
      Value against which the events are to be ordered: events A and B having `A.sequentialNumber` less than `B.sequentialNumber` must be processed in that order (A then B) if their correlation value is the same. (Which means that they refer to the same resource object.)
    • isComplete

      boolean isComplete()
      Is the event ready to be processed? Events can be incomplete e.g. in the case of errors during pre-processing. TODO reconsider the name
    • isNotApplicable

      boolean isNotApplicable()
      Is the event irrelevant, and therefore should be skipped? This means no error has occurred, but simply there is nothing to do. Like a deletion of already-deleted account.
    • isError

      boolean isError()
      Has the event encountered an error during pre-processing? Such events should be reported but not processed in the regular way.
    • getErrorMessage

      @Experimental String getErrorMessage()
      Error message related to the pre-processing of this event. Should be non-null only if isError() is `true`. Temporary feature. Most probably it will be replaced by something more serious.
    • getShadowOid

      String getShadowOid()
      OID of the shadow corresponding to the resource object in question. Should be non-null if the change was pre-processed correctly.
    • getShadowedObject

      PrismObject<ShadowType> getShadowedObject()
      The resulting combination of resource object and its repo shadow. TODO declare as non-null TODO clarify this description; see `ShadowedChange.shadowedObject`
    • getShadowedObjectRequired

      @NotNull default @NotNull PrismObject<ShadowType> getShadowedObjectRequired()