Class TypeHolder<T>

java.lang.Object
org.assertj.core.internal.TypeHolder<T>
Type Parameters:
T - entity type
Direct Known Subclasses:
TypeComparators, TypeMessages

abstract class TypeHolder<T> extends Object
An abstract type holder which provides to pair a specific entities for types.
  • Field Details

    • DEFAULT_CLASS_COMPARATOR

      private static final Comparator<Class<?>> DEFAULT_CLASS_COMPARATOR
    • typeHolder

      protected final Map<Class<?>,T> typeHolder
  • Constructor Details

    • TypeHolder

      public TypeHolder()
    • TypeHolder

      public TypeHolder(Comparator<Class<?>> comparator)
  • Method Details

    • get

      public T get(Class<?> clazz)
      This method returns the most relevant entity for the given class. The most relevant entity is the entity which is registered for the class that is closest in the inheritance chain of the given clazz. The order of checks is the following: 1. If there is a registered entity for clazz then this one is used 2. We check if there is a registered entity for a superclass of clazz 3. We check if there is a registered entity for an interface of clazz
      Parameters:
      clazz - the class for which to find a entity
      Returns:
      the most relevant entity, or null if on entity could be found
    • put

      public void put(Class<?> clazz, T entity)
      Puts the entity for the given clazz.
      Parameters:
      clazz - the class for the comparator
      entity - the entity itself
    • hasEntity

      public boolean hasEntity(Class<?> type)
      Checks, whether an entity is associated with the giving type.
      Parameters:
      type - the type for which to check an entity
      Returns:
      is the giving type associated with any entity
    • isEmpty

      public boolean isEmpty()
      Returns:
      true is there are registered entities, false otherwise
    • clear

      public void clear()
      Removes all registered entities.
    • entityByTypes

      public Stream<Map.Entry<Class<?>,T>> entityByTypes()
      Returns a sequence of all type-entity pairs which the current holder supplies.
      Returns:
      sequence of field-entity pairs
    • getRelevantClass

      private Class<?> getRelevantClass(Class<?> cls)
      Returns the most relevant class for the given type from the giving collection of types.

      The order of checks is the following:

      1. If there is a registered message for clazz then this one is used
      2. We check if there is a registered message for a superclass of clazz
      3. We check if there is a registered message for an interface of clazz
      If there is no relevant type in the giving collection - null will be returned.
      Parameters:
      cls - type to find a relevant class.
      Returns:
      the most relevant class.
    • 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
    • formatRegisteredEntity

      private static <T> String formatRegisteredEntity(Map.Entry<Class<?>,T> entry)