org.apache.commons.collections

Class TransformerUtils

public class TransformerUtils extends Object

TransformerUtils provides reference implementations and utilities for the Transformer functor interface. The supplied transformers are: All the supplied transformers are Serializable.

Since: Commons Collections 3.0

Version: $Revision: 155406 $ $Date: 2005-02-26 12:55:26 +0000 (Sat, 26 Feb 2005) $

Author: Stephen Colebourne James Carman

Constructor Summary
TransformerUtils()
This class is not normally instantiated.
Method Summary
static TransformerasTransformer(Closure closure)
Creates a Transformer that calls a Closure each time the transformer is used.
static TransformerasTransformer(Predicate predicate)
Creates a Transformer that calls a Predicate each time the transformer is used.
static TransformerasTransformer(Factory factory)
Creates a Transformer that calls a Factory each time the transformer is used.
static TransformerchainedTransformer(Transformer transformer1, Transformer transformer2)
Create a new Transformer that calls two transformers, passing the result of the first into the second.
static TransformerchainedTransformer(Transformer[] transformers)
Create a new Transformer that calls each transformer in turn, passing the result into the next transformer.
static TransformerchainedTransformer(Collection transformers)
Create a new Transformer that calls each transformer in turn, passing the result into the next transformer.
static TransformercloneTransformer()
Gets a transformer that returns a clone of the input object.
static TransformerconstantTransformer(Object constantToReturn)
Creates a Transformer that will return the same object each time the transformer is used.
static TransformerexceptionTransformer()
Gets a transformer that always throws an exception.
static TransformerinstantiateTransformer()
Gets a Transformer that expects an input Class object that it will instantiate.
static TransformerinstantiateTransformer(Class[] paramTypes, Object[] args)
Creates a Transformer that expects an input Class object that it will instantiate.
static TransformerinvokerTransformer(String methodName)
Gets a Transformer that invokes a method on the input object.
static TransformerinvokerTransformer(String methodName, Class[] paramTypes, Object[] args)
Gets a Transformer that invokes a method on the input object.
static TransformermapTransformer(Map map)
Creates a Transformer that uses the passed in Map to transform the input object (as a simple lookup).
static TransformernopTransformer()
Gets a transformer that returns the input object.
static TransformernullTransformer()
Gets a transformer that always returns null.
static TransformerstringValueTransformer()
Gets a transformer that returns a java.lang.String representation of the input object.
static TransformerswitchMapTransformer(Map objectsAndTransformers)
Create a new Transformer that uses the input object as a key to find the transformer to call.
static TransformerswitchTransformer(Predicate predicate, Transformer trueTransformer, Transformer falseTransformer)
Create a new Transformer that calls one of two transformers depending on the specified predicate.
static TransformerswitchTransformer(Predicate[] predicates, Transformer[] transformers)
Create a new Transformer that calls one of the transformers depending on the predicates.
static TransformerswitchTransformer(Predicate[] predicates, Transformer[] transformers, Transformer defaultTransformer)
Create a new Transformer that calls one of the transformers depending on the predicates.
static TransformerswitchTransformer(Map predicatesAndTransformers)
Create a new Transformer that calls one of the transformers depending on the predicates.

Constructor Detail

TransformerUtils

public TransformerUtils()
This class is not normally instantiated.

Method Detail

asTransformer

public static Transformer asTransformer(Closure closure)
Creates a Transformer that calls a Closure each time the transformer is used. The transformer returns the input object.

Parameters: closure the closure to run each time in the transformer, not null

Returns: the transformer

Throws: IllegalArgumentException if the closure is null

See Also:

asTransformer

public static Transformer asTransformer(Predicate predicate)
Creates a Transformer that calls a Predicate each time the transformer is used. The transformer will return either Boolean.TRUE or Boolean.FALSE.

Parameters: predicate the predicate to run each time in the transformer, not null

Returns: the transformer

Throws: IllegalArgumentException if the predicate is null

See Also:

asTransformer

public static Transformer asTransformer(Factory factory)
Creates a Transformer that calls a Factory each time the transformer is used. The transformer will return the value returned by the factory.

Parameters: factory the factory to run each time in the transformer, not null

Returns: the transformer

Throws: IllegalArgumentException if the factory is null

See Also:

chainedTransformer

public static Transformer chainedTransformer(Transformer transformer1, Transformer transformer2)
Create a new Transformer that calls two transformers, passing the result of the first into the second.

Parameters: transformer1 the first transformer transformer2 the second transformer

Returns: the transformer

Throws: IllegalArgumentException if either transformer is null

See Also:

chainedTransformer

public static Transformer chainedTransformer(Transformer[] transformers)
Create a new Transformer that calls each transformer in turn, passing the result into the next transformer.

Parameters: transformers an array of transformers to chain

Returns: the transformer

Throws: IllegalArgumentException if the transformers array is null IllegalArgumentException if any transformer in the array is null

See Also:

chainedTransformer

public static Transformer chainedTransformer(Collection transformers)
Create a new Transformer that calls each transformer in turn, passing the result into the next transformer. The ordering is that of the iterator() method on the collection.

Parameters: transformers a collection of transformers to chain

Returns: the transformer

Throws: IllegalArgumentException if the transformers collection is null IllegalArgumentException if any transformer in the collection is null

See Also:

cloneTransformer

public static Transformer cloneTransformer()
Gets a transformer that returns a clone of the input object. The input object will be cloned using one of these techniques (in order):

constantTransformer

public static Transformer constantTransformer(Object constantToReturn)
Creates a Transformer that will return the same object each time the transformer is used.

Parameters: constantToReturn the constant object to return each time in the transformer

Returns: the transformer.

See Also:

exceptionTransformer

public static Transformer exceptionTransformer()
Gets a transformer that always throws an exception. This could be useful during testing as a placeholder.

Returns: the transformer

See Also:

instantiateTransformer

public static Transformer instantiateTransformer()
Gets a Transformer that expects an input Class object that it will instantiate.

Returns: the transformer

See Also:

instantiateTransformer

public static Transformer instantiateTransformer(Class[] paramTypes, Object[] args)
Creates a Transformer that expects an input Class object that it will instantiate. The constructor used is determined by the arguments specified to this method.

Parameters: paramTypes parameter types for the constructor, can be null args the arguments to pass to the constructor, can be null

Returns: the transformer

Throws: IllegalArgumentException if the paramTypes and args don't match

See Also:

invokerTransformer

public static Transformer invokerTransformer(String methodName)
Gets a Transformer that invokes a method on the input object. The method must have no parameters. If the input object is null, null is returned.

For example, TransformerUtils.invokerTransformer("getName"); will call the getName/code> method on the input object to determine the transformer result.

Parameters: methodName the method name to call on the input object, may not be null

Returns: the transformer

Throws: IllegalArgumentException if the methodName is null.

See Also:

invokerTransformer

public static Transformer invokerTransformer(String methodName, Class[] paramTypes, Object[] args)
Gets a Transformer that invokes a method on the input object. The method parameters are specified. If the input object is null, null is returned.

Parameters: methodName the name of the method paramTypes the parameter types args the arguments

Returns: the transformer

Throws: IllegalArgumentException if the method name is null IllegalArgumentException if the paramTypes and args don't match

See Also:

mapTransformer

public static Transformer mapTransformer(Map map)
Creates a Transformer that uses the passed in Map to transform the input object (as a simple lookup).

Parameters: map the map to use to transform the objects

Returns: the transformer

Throws: IllegalArgumentException if the map is null

See Also:

nopTransformer

public static Transformer nopTransformer()
Gets a transformer that returns the input object. The input object should be immutable to maintain the contract of Transformer (although this is not checked).

Returns: the transformer

See Also:

nullTransformer

public static Transformer nullTransformer()
Gets a transformer that always returns null.

Returns: the transformer

See Also:

stringValueTransformer

public static Transformer stringValueTransformer()
Gets a transformer that returns a java.lang.String representation of the input object. This is achieved via the toString method, null returns 'null'.

Returns: the transformer

See Also:

switchMapTransformer

public static Transformer switchMapTransformer(Map objectsAndTransformers)
Create a new Transformer that uses the input object as a key to find the transformer to call.

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.

Parameters: objectsAndTransformers a map of objects to transformers

Returns: the transformer

Throws: IllegalArgumentException if the map is null IllegalArgumentException if the map is empty IllegalArgumentException if any transformer in the map is null

See Also:

switchTransformer

public static Transformer switchTransformer(Predicate predicate, Transformer trueTransformer, Transformer falseTransformer)
Create a new Transformer that calls one of two transformers depending on the specified predicate.

Parameters: predicate the predicate to switch on trueTransformer the transformer called if the predicate is true falseTransformer the transformer called if the predicate is false

Returns: the transformer

Throws: IllegalArgumentException if the predicate is null IllegalArgumentException if either transformer is null

See Also:

switchTransformer

public static Transformer switchTransformer(Predicate[] predicates, Transformer[] transformers)
Create a new Transformer that calls one of the transformers depending on the predicates. The transformer at array location 0 is called if the predicate at array location 0 returned true. Each predicate is evaluated until one returns true. If no predicates evaluate to true, null is returned.

Parameters: predicates an array of predicates to check transformers an array of transformers to call

Returns: the transformer

Throws: IllegalArgumentException if the either array is null IllegalArgumentException if the either array has 0 elements IllegalArgumentException if any element in the arrays is null IllegalArgumentException if the arrays are different sizes

See Also:

switchTransformer

public static Transformer switchTransformer(Predicate[] predicates, Transformer[] transformers, Transformer defaultTransformer)
Create a new Transformer that calls one of the transformers depending on the predicates. The transformer at array location 0 is called if the predicate at array location 0 returned true. Each predicate is evaluated until one returns true. If no predicates evaluate to true, the default transformer is called. If the default transformer is null, null is returned.

Parameters: predicates an array of predicates to check transformers an array of transformers to call defaultTransformer the default to call if no predicate matches, null means return null

Returns: the transformer

Throws: IllegalArgumentException if the either array is null IllegalArgumentException if the either array has 0 elements IllegalArgumentException if any element in the arrays is null IllegalArgumentException if the arrays are different sizes

See Also:

switchTransformer

public static Transformer switchTransformer(Map predicatesAndTransformers)
Create a new Transformer that calls one of the transformers depending on the predicates.

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.

Parameters: predicatesAndTransformers a map of predicates to transformers

Returns: the transformer

Throws: IllegalArgumentException if the map is null IllegalArgumentException if the map is empty IllegalArgumentException if any transformer in the map is null ClassCastException if the map elements are of the wrong type

See Also:

Copyright © 2001-2008 Apache Software Foundation. All Rights Reserved.