java.lang.Object
org.axonframework.messaging.eventhandling.processing.streaming.token.store.ConfigToken
All Implemented Interfaces:
TrackingToken

public class ConfigToken extends Object implements TrackingToken
A special implementation of a Token that is used to store configuration specific to the underlying storage of each TokenStore instance.

This class merely implements TrackingToken to adhere to certain API requirements. It is not meant to be used as a means to track progress of event stream processing.

Since:
4.4
Author:
Allard Buijze
  • Constructor Details

    • ConfigToken

      @ConstructorProperties("config") public ConfigToken(Map<String,String> config)
      Initialize a ConfigToken instance using the given config properties.
      Parameters:
      config - the properties to store as part of this ConfigToken
  • Method Details

    • getConfig

      public Map<String,String> getConfig()
      Returns the properties contained in this token as a Map.
      Returns:
      the configuration elements in this token
    • get

      public String get(String key)
      Retrieves the value of the configuration element for the given key.
      Parameters:
      key - the key for which to retrieve the configuration element
      Returns:
      the configuration element registered under the given key, or null if no such key was present.
    • lowerBound

      public TrackingToken lowerBound(TrackingToken other)
      Description copied from interface: TrackingToken
      Returns a token that represents the lower bound between this and the other token. Effectively, the returned token will cause events not received by both this and the other token to be redelivered.
      Specified by:
      lowerBound in interface TrackingToken
      Parameters:
      other - The token to compare to this one
      Returns:
      The token representing the lower bound of the two
    • upperBound

      public TrackingToken upperBound(TrackingToken other)
      Description copied from interface: TrackingToken
      Returns the token that represents the furthest possible position in a stream that either this token or the given other represents. Effectively, this means this token will only deliver events that neither this, nor the other have been received.
      Specified by:
      upperBound in interface TrackingToken
      Parameters:
      other - The token to compare this token to
      Returns:
      a token that represents the furthest position of this or the other stream
    • covers

      public boolean covers(TrackingToken other)
      Description copied from interface: TrackingToken
      Indicates whether this token covers the other token completely. That means that this token represents a position in a stream that has received all the events that a stream represented by the other token has received.

      Note that this operation is only safe when comparing tokens obtained from events from the same StreamableEventSource.

      Specified by:
      covers in interface TrackingToken
      Parameters:
      other - The token to compare to this one
      Returns:
      true if this token covers the other, otherwise false
    • samePositionAs

      public boolean samePositionAs(TrackingToken other)
      Description copied from interface: TrackingToken
      Indicates whether this token is at the exact same spot in the event stream as the other token.

      This method is particularly useful when comparing tokens from different points in time, such as during replay detection, where token implementations may naturally differ.

      By default, this method checks bidirectional coverage: this.covers(other) && other.covers(this), which ensures both tokens are at the same position.

      Specified by:
      samePositionAs in interface TrackingToken
      Parameters:
      other - The token to validate against this token.
      Returns:
      true if this token is at the same location as the other token, otherwise false. Returns false if other is null.
      See Also:
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object