java.lang.Object
io.fluxcapacitor.javaclient.modeling.Id<T>
Type Parameters:
T - the entity type.

public abstract class Id<T> extends Object
Object that represents the identifier of a specific entity. This object makes it easy to prefix the functional id of an entity to with a value before storing or lookup in a repository to prevent clashes with other entities that may share the same functional id.

Additionally, this object makes it possible to store and lookup entities using a case-insensitive identifier.

It also allows specifying the entity type which prevents the need for dynamic casting after loading the entity.

Note that, by default, this identifier is serialized as a string of the functionalId. Deserialization is done by invoking a constructor on your subtype that accepts a single String argument. If such constructor does not exist, please specify your own deserializer, using e.g. @JsonDeserialize on your type.

  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Id(@NonNull Object functionalId, @NonNull Class<T> type, @NonNull String prefix, boolean caseSensitive)
    Construct an id for an entity.
    protected
    Id(Object functionalId, Class<T> type)
    Construct a case-sensitive id for an entity without prefix.
    protected
    Id(Object functionalId, Class<T> type, boolean caseSensitive)
    Construct an id for an entity without prefix.
    protected
    Id(Object functionalId, Class<T> type, String prefix)
    Construct a case-sensitive id for an entity.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    int
     
    final String
    Returns the id under which the entity will be stored in a repository.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Id

      protected Id(Object functionalId, Class<T> type)
      Construct a case-sensitive id for an entity without prefix. This constructor allows ids to be prefixed with a value to prevent clashes with other entities that may share the same functional id.
      Parameters:
      functionalId - The functional id of the entity. The object's toString() method is used to get a string representation of the functional id.
      type - The entity's type. This may be a superclass of the actual entity.
    • Id

      protected Id(Object functionalId, Class<T> type, String prefix)
      Construct a case-sensitive id for an entity. This constructor allows ids to be prefixed with a value to prevent clashes with other entities that may share the same functional id.
      Parameters:
      functionalId - The functional id of the entity. The object's toString() method is used to get a string representation of the functional id.
      type - The entity's type. This may be a superclass of the actual entity.
      prefix - The prefix that is prepended to the functionalId to create the full id under which this entity will be stored. Eg, if the prefix of an Id is "user-", and the id is "pete123", the entity will be stored under "user-pete123".
    • Id

      protected Id(Object functionalId, Class<T> type, boolean caseSensitive)
      Construct an id for an entity without prefix. This constructor allows ids to be case-insensitive.
      Parameters:
      functionalId - The functional id of the entity. The object's toString() method is used to get a string representation of the functional id.
      type - The entity's type. This may be a superclass of the actual entity.
      caseSensitive - whether this id is case-sensitive.
    • Id

      protected Id(@NonNull @NonNull Object functionalId, @NonNull @NonNull Class<T> type, @NonNull @NonNull String prefix, boolean caseSensitive)
      Construct an id for an entity. This constructor allows ids to be prefixed with a value to prevent clashes with other entities that may share the same functional id. It also enables ids to be case-insensitive.
      Parameters:
      functionalId - The functional id of the entity. The object's toString() method is used to get a string representation of the functional id.
      type - The entity's type. This may be a superclass of the actual entity.
      prefix - The prefix that is prepended to the functionalId to create the full id under which this entity will be stored. Eg, if the prefix of an Id is "user-", and the id is "pete123", the entity will be stored under "user-pete123".
      caseSensitive - whether this id is case-sensitive.
  • Method Details

    • toString

      public final String toString()
      Returns the id under which the entity will be stored in a repository. This may differ from the functional
      Overrides:
      toString in class Object
    • equals

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

      public int hashCode()
      Overrides:
      hashCode in class Object