Class ConditionalInstantiator
java.lang.Object
nl.jqno.equalsverifier.internal.reflection.ConditionalInstantiator
Allows instantiation of classes that may or may not be present on the classpath.
-
Constructor Summary
ConstructorDescriptionConditionalInstantiator
(String fullyQualifiedClassName) Constructor.ConditionalInstantiator
(String fullyQualifiedClassName, boolean throwExceptions) Constructor. -
Method Summary
Modifier and TypeMethodDescription<T> T
callFactory
(String factoryMethod, Class<?>[] paramTypes, Object[] paramValues) Attempts to call a static factory method on the type.<T> T
callFactory
(String factoryTypeName, String factoryMethod, Class<?>[] paramTypes, Object[] paramValues) Attempts to call a static factory method on a type.<T> T
instantiate
(Class<?>[] paramTypes, Object[] paramValues) Attempts to instantiate the type.<T> Class<T>
resolve()
Attempts to resolve the type.<T> T
returnConstant
(String constantName) Attempts to resolve a static constant on the type.
-
Constructor Details
-
ConditionalInstantiator
Constructor.- Parameters:
fullyQualifiedClassName
- The fully-qualified name of the class that we intend to instantiate.
-
ConditionalInstantiator
Constructor.- Parameters:
fullyQualifiedClassName
- The fully-qualified name of the class that we intend to instantiate.throwExceptions
- Whether to throw exceptions when the class can't be instantiated.
-
-
Method Details
-
resolve
Attempts to resolve the type.- Type Parameters:
T
- The resolved type.- Returns:
- The corresponding class object if the type exists; null otherwise.
-
instantiate
Attempts to instantiate the type.- Type Parameters:
T
- The type to instantiate.- Parameters:
paramTypes
- The types of the constructor parameters of the constructor that we want to call.paramValues
- The values that we want to pass into the constructor.- Returns:
- An instance of the type given in the constructor with the given parameter values, or null if the type does not exist.
- Throws:
ReflectionException
- If instantiation fails.
-
callFactory
Attempts to call a static factory method on the type.- Type Parameters:
T
- The return type of the factory method.- Parameters:
factoryMethod
- The name of the factory method.paramTypes
- The types of the parameters of the specific overload of the factory method we want to call.paramValues
- The values that we want to pass into the factory method.- Returns:
- An instance of the type given by the factory method with the given parameter values, or null of the type does not exist.
- Throws:
ReflectionException
- If the call to the factory method fails.
-
callFactory
public <T> T callFactory(String factoryTypeName, String factoryMethod, Class<?>[] paramTypes, Object[] paramValues) Attempts to call a static factory method on a type.- Type Parameters:
T
- The return type of the factory method.- Parameters:
factoryTypeName
- The type that contains the factory method.factoryMethod
- The name of the factory method.paramTypes
- The types of the parameters of the specific overload of the factory method we want to call.paramValues
- The values that we want to pass into the factory method.- Returns:
- An instance of the type given by the factory method with the given parameter values, or null of the type does not exist.
- Throws:
ReflectionException
- If the call to the factory method fails.
-
returnConstant
Attempts to resolve a static constant on the type.- Type Parameters:
T
- The type of the constant.- Parameters:
constantName
- The name of the constant.- Returns:
- The value of the constant, or null if the type does not exist.
- Throws:
ReflectionException
- If resolving the constant fails.
-