public class TransformerUtils
extends java.lang.Object
TransformerUtils
provides reference implementations and
utilities for the Transformer functor interface. The supplied transformers are:
java.lang.String
representation of the input object
Constructor and Description |
---|
TransformerUtils()
This class is not normally instantiated.
|
Modifier and Type | Method and Description |
---|---|
static Transformer |
asTransformer(Closure closure)
Creates a Transformer that calls a Closure each time the transformer is used.
|
static Transformer |
asTransformer(Factory factory)
Creates a Transformer that calls a Factory each time the transformer is used.
|
static Transformer |
asTransformer(Predicate predicate)
Creates a Transformer that calls a Predicate each time the transformer is used.
|
static Transformer |
chainedTransformer(java.util.Collection transformers)
Create a new Transformer that calls each transformer in turn, passing the
result into the next transformer.
|
static Transformer |
chainedTransformer(Transformer[] transformers)
Create a new Transformer that calls each transformer in turn, passing the
result into the next transformer.
|
static Transformer |
chainedTransformer(Transformer transformer1,
Transformer transformer2)
Create a new Transformer that calls two transformers, passing the result of
the first into the second.
|
static Transformer |
cloneTransformer()
Gets a transformer that returns a clone of the input
object.
|
static Transformer |
constantTransformer(java.lang.Object constantToReturn)
Creates a Transformer that will return the same object each time the
transformer is used.
|
static Transformer |
exceptionTransformer()
Gets a transformer that always throws an exception.
|
static Transformer |
instantiateTransformer()
Gets a Transformer that expects an input Class object that it will instantiate.
|
static Transformer |
instantiateTransformer(java.lang.Class[] paramTypes,
java.lang.Object[] args)
Creates a Transformer that expects an input Class object that it will
instantiate.
|
static Transformer |
invokerTransformer(java.lang.String methodName)
Gets a Transformer that invokes a method on the input object.
|
static Transformer |
invokerTransformer(java.lang.String methodName,
java.lang.Class[] paramTypes,
java.lang.Object[] args)
Gets a Transformer that invokes a method on the input object.
|
static Transformer |
mapTransformer(java.util.Map map)
Creates a Transformer that uses the passed in Map to transform the input
object (as a simple lookup).
|
static Transformer |
nopTransformer()
Gets a transformer that returns the input object.
|
static Transformer |
nullTransformer()
Gets a transformer that always returns null.
|
static Transformer |
stringValueTransformer()
Gets a transformer that returns a
java.lang.String
representation of the input object. |
static Transformer |
switchMapTransformer(java.util.Map objectsAndTransformers)
Create a new Transformer that uses the input object as a key to find the
transformer to call.
|
static Transformer |
switchTransformer(java.util.Map predicatesAndTransformers)
Create a new Transformer that calls one of the transformers depending
on the predicates.
|
static Transformer |
switchTransformer(Predicate[] predicates,
Transformer[] transformers)
Create a new Transformer that calls one of the transformers depending
on the predicates.
|
static Transformer |
switchTransformer(Predicate[] predicates,
Transformer[] transformers,
Transformer defaultTransformer)
Create a new Transformer that calls one of the transformers depending
on the predicates.
|
static Transformer |
switchTransformer(Predicate predicate,
Transformer trueTransformer,
Transformer falseTransformer)
Create a new Transformer that calls one of two transformers depending
on the specified predicate.
|
public TransformerUtils()
public static Transformer exceptionTransformer()
ExceptionTransformer
public static Transformer nullTransformer()
ConstantTransformer
public static Transformer nopTransformer()
NOPTransformer
public static Transformer cloneTransformer()
CloneTransformer
public static Transformer constantTransformer(java.lang.Object constantToReturn)
constantToReturn
- the constant object to return each time in the transformerConstantTransformer
public static Transformer asTransformer(Closure closure)
closure
- the closure to run each time in the transformer, not nulljava.lang.IllegalArgumentException
- if the closure is nullClosureTransformer
public static Transformer asTransformer(Predicate predicate)
predicate
- the predicate to run each time in the transformer, not nulljava.lang.IllegalArgumentException
- if the predicate is nullPredicateTransformer
public static Transformer asTransformer(Factory factory)
factory
- the factory to run each time in the transformer, not nulljava.lang.IllegalArgumentException
- if the factory is nullFactoryTransformer
public static Transformer chainedTransformer(Transformer transformer1, Transformer transformer2)
transformer1
- the first transformertransformer2
- the second transformerjava.lang.IllegalArgumentException
- if either transformer is nullChainedTransformer
public static Transformer chainedTransformer(Transformer[] transformers)
transformers
- an array of transformers to chainjava.lang.IllegalArgumentException
- if the transformers array is nulljava.lang.IllegalArgumentException
- if any transformer in the array is nullChainedTransformer
public static Transformer chainedTransformer(java.util.Collection transformers)
transformers
- a collection of transformers to chainjava.lang.IllegalArgumentException
- if the transformers collection is nulljava.lang.IllegalArgumentException
- if any transformer in the collection is nullChainedTransformer
public static Transformer switchTransformer(Predicate predicate, Transformer trueTransformer, Transformer falseTransformer)
predicate
- the predicate to switch ontrueTransformer
- the transformer called if the predicate is truefalseTransformer
- the transformer called if the predicate is falsejava.lang.IllegalArgumentException
- if the predicate is nulljava.lang.IllegalArgumentException
- if either transformer is nullSwitchTransformer
public static Transformer switchTransformer(Predicate[] predicates, Transformer[] transformers)
predicates
- an array of predicates to checktransformers
- an array of transformers to calljava.lang.IllegalArgumentException
- if the either array is nulljava.lang.IllegalArgumentException
- if the either array has 0 elementsjava.lang.IllegalArgumentException
- if any element in the arrays is nulljava.lang.IllegalArgumentException
- if the arrays are different sizesSwitchTransformer
public static Transformer switchTransformer(Predicate[] predicates, Transformer[] transformers, Transformer defaultTransformer)
predicates
- an array of predicates to checktransformers
- an array of transformers to calldefaultTransformer
- the default to call if no predicate matches, null means return nulljava.lang.IllegalArgumentException
- if the either array is nulljava.lang.IllegalArgumentException
- if the either array has 0 elementsjava.lang.IllegalArgumentException
- if any element in the arrays is nulljava.lang.IllegalArgumentException
- if the arrays are different sizesSwitchTransformer
public static Transformer switchTransformer(java.util.Map predicatesAndTransformers)
The Map consists of Predicate keys and Transformer values. A transformer is called if its matching predicate returns true. Each predicate is evaluated until one returns true. If no predicates evaluate to true, the default transformer is called. The default transformer is set in the map with a null key. If no default transformer is set, null will be returned in a default case. The ordering is that of the iterator() method on the entryset collection of the map.
predicatesAndTransformers
- a map of predicates to transformersjava.lang.IllegalArgumentException
- if the map is nulljava.lang.IllegalArgumentException
- if the map is emptyjava.lang.IllegalArgumentException
- if any transformer in the map is nulljava.lang.ClassCastException
- if the map elements are of the wrong typeSwitchTransformer
public static Transformer switchMapTransformer(java.util.Map objectsAndTransformers)
The Map consists of object keys and Transformer values. A transformer is called if the input object equals the key. If there is no match, the default transformer is called. The default transformer is set in the map using a null key. If no default is set, null will be returned in a default case.
objectsAndTransformers
- a map of objects to transformersjava.lang.IllegalArgumentException
- if the map is nulljava.lang.IllegalArgumentException
- if the map is emptyjava.lang.IllegalArgumentException
- if any transformer in the map is nullSwitchTransformer
public static Transformer instantiateTransformer()
InstantiateTransformer
public static Transformer instantiateTransformer(java.lang.Class[] paramTypes, java.lang.Object[] args)
paramTypes
- parameter types for the constructor, can be nullargs
- the arguments to pass to the constructor, can be nulljava.lang.IllegalArgumentException
- if the paramTypes and args don't matchInstantiateTransformer
public static Transformer mapTransformer(java.util.Map map)
map
- the map to use to transform the objectsjava.lang.IllegalArgumentException
- if the map is nullMapTransformer
public static Transformer invokerTransformer(java.lang.String methodName)
For example, TransformerUtils.invokerTransformer("getName");
will call the getName/code> method on the input object to
determine the transformer result.
methodName
- the method name to call on the input object, may not be nulljava.lang.IllegalArgumentException
- if the methodName is null.InvokerTransformer
public static Transformer invokerTransformer(java.lang.String methodName, java.lang.Class[] paramTypes, java.lang.Object[] args)
methodName
- the name of the methodparamTypes
- the parameter typesargs
- the argumentsjava.lang.IllegalArgumentException
- if the method name is nulljava.lang.IllegalArgumentException
- if the paramTypes and args don't matchInvokerTransformer
public static Transformer stringValueTransformer()
java.lang.String
representation of the input object. This is achieved via the
toString
method, null
returns 'null'.StringValueTransformer
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"