Package org.assertj.core.internal
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 java.lang.ObjectAn abstract type holder which provides to pair a specific entities for types.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Comparator<java.lang.Class<?>>DEFAULT_CLASS_COMPARATORprotected java.util.Map<java.lang.Class<?>,T>typeHolder
-
Constructor Summary
Constructors Constructor Description TypeHolder()TypeHolder(java.util.Comparator<java.lang.Class<?>> comparator)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Removes all registered entities.java.util.stream.Stream<java.util.Map.Entry<java.lang.Class<?>,T>>entityByTypes()Returns a sequence of all type-entity pairs which the current holder supplies.booleanequals(java.lang.Object o)private static <T> java.lang.StringformatRegisteredEntity(java.util.Map.Entry<java.lang.Class<?>,T> entry)Tget(java.lang.Class<?> clazz)This method returns the most relevant entity for the given class.private java.lang.Class<?>getRelevantClass(java.lang.Class<?> cls)Returns the most relevant class for the given type from the giving collection of types.booleanhasEntity(java.lang.Class<?> type)Checks, whether an entity is associated with the giving type.inthashCode()booleanisEmpty()voidput(java.lang.Class<?> clazz, T entity)Puts theentityfor the givenclazz.java.lang.StringtoString()
-
-
-
Field Detail
-
DEFAULT_CLASS_COMPARATOR
private static final java.util.Comparator<java.lang.Class<?>> DEFAULT_CLASS_COMPARATOR
-
typeHolder
protected final java.util.Map<java.lang.Class<?>,T> typeHolder
-
-
Method Detail
-
get
public T get(java.lang.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 givenclazz. The order of checks is the following: 1. If there is a registered entity forclazzthen this one is used 2. We check if there is a registered entity for a superclass ofclazz3. We check if there is a registered entity for an interface ofclazz- Parameters:
clazz- the class for which to find a entity- Returns:
- the most relevant entity, or
nullif on entity could be found
-
put
public void put(java.lang.Class<?> clazz, T entity)Puts theentityfor the givenclazz.- Parameters:
clazz- the class for the comparatorentity- the entity itself
-
hasEntity
public boolean hasEntity(java.lang.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:
trueis there are registered entities,falseotherwise
-
clear
public void clear()
Removes all registered entities.
-
entityByTypes
public java.util.stream.Stream<java.util.Map.Entry<java.lang.Class<?>,T>> entityByTypes()
Returns a sequence of all type-entity pairs which the current holder supplies.- Returns:
- sequence of field-entity pairs
-
getRelevantClass
private java.lang.Class<?> getRelevantClass(java.lang.Class<?> cls)
Returns the most relevant class for the given type from the giving collection of types.The order of checks is the following:
- If there is a registered message for
clazzthen this one is used - We check if there is a registered message for a superclass of
clazz - We check if there is a registered message for an interface of
clazz
nullwill be returned.- Parameters:
cls- type to find a relevant class.- Returns:
- the most relevant class.
- If there is a registered message for
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
formatRegisteredEntity
private static <T> java.lang.String formatRegisteredEntity(java.util.Map.Entry<java.lang.Class<?>,T> entry)
-
-