public class FactoryUtils extends Object
FactoryUtils provides reference implementations and utilities for the Factory functor interface. The supplied factories are:
Since v4.1 only factories which are considered to be unsafe are Serializable. Factories considered to be unsafe for serialization are:
| Modifier and Type | Method and Description |
|---|---|
static <T> Factory |
constantFactory(T constantToReturn)
Creates a Factory that will return the same object each time the factory is used.
|
static <T> Factory |
exceptionFactory()
Gets a Factory that always throws an exception.
|
static <T> Factory |
instantiateFactory(Class
Creates a Factory that can create objects of a specific type using a no-args constructor.
|
static <T> Factory |
instantiateFactory(Class
Creates a Factory that can create objects of a specific type using the arguments specified to this method.
|
static <T> Factory |
nullFactory()
Gets a Factory that will return null each time the factory is used.
|
static <T> Factory |
prototypeFactory(T prototype)
Creates a Factory that will return a clone of the same prototype object each time the factory is used.
|
public static <T> Factory<T> exceptionFactory()
T - the type that the factory creates
ExceptionFactory
public static <T> Factory<T> nullFactory()
T - the "type" of null object the factory should return.
ConstantFactory
public static <T> Factory<T> constantFactory(T constantToReturn)
T - the type that the factory creates
constantToReturn - the constant object to return each time in the factory
constant factory.
ConstantFactory
public static <T> Factory<T> prototypeFactory(T prototype)
T - the type that the factory creates
prototype - the object to clone each time in the factory
prototype factory, or a
ConstantFactory.NULL_INSTANCE if the
prototype is
null
IllegalArgumentException - if the prototype cannot be cloned
PrototypeFactory
public static <T> Factory<T> instantiateFactory(Class <T> classToInstantiate)
T - the type that the factory creates
classToInstantiate - the Class to instantiate each time in the factory
reflection factory
NullPointerException - if the classToInstantiate is null
InstantiateFactory
public static <T> Factory<T> instantiateFactory(Class <T> classToInstantiate, Class <?>[] paramTypes, Object [] args)
T - the type that the factory creates
classToInstantiate - the Class to instantiate each time in the factory
paramTypes - parameter types for the constructor, can be null
args - the arguments to pass to the constructor, can be null
reflection factory
NullPointerException - if the classToInstantiate is null
IllegalArgumentException - if the paramTypes and args don't match
IllegalArgumentException - if the constructor doesn't exist
InstantiateFactory