org.pentaho.reporting.libraries.formula.typing
Interface TypeRegistry

All Known Implementing Classes:
DefaultTypeRegistry

public interface TypeRegistry

The type registry manages the known value types.

Author:
Thomas Morgner

Method Summary
 TypeValuePair convertTo(Type targetType, TypeValuePair valuePair)
          Checks whether the target type would accept the specified value object and value type.
 ArrayCallback convertToArray(Type type, Object value)
           
 Date convertToDate(Type type1, Object value)
          Converts the object of the given type into a date.
 Boolean convertToLogical(Type type1, Object value)
          Converts the object of the given type into a boolean.
 Number convertToNumber(Type type1, Object value)
          Converts the object of the given type into a number.
 NumberSequence convertToNumberSequence(Type type, Object value, boolean strictTypeChecks)
          Converts the given (type,value) pair into a numeric sequence.
 Sequence convertToSequence(Type type, Object value)
           
 String convertToText(Type type1, Object value)
          (This conversion is used by the operator implementations.)
 ExtendedComparator getComparator(Type type1, Type type2)
          Returns an comparator for the given types.
 Type guessTypeOfObject(Object o)
           
 

Method Detail

getComparator

ExtendedComparator getComparator(Type type1,
                                 Type type2)
Returns an comparator for the given types.

Parameters:
type1 -
type2 -
Returns:

convertToNumber

Number convertToNumber(Type type1,
                       Object value)
                       throws EvaluationException
Converts the object of the given type into a number. If the object is not convertible, a NumberFormatException is thrown. (This conversion is used by the operator implementations.)

Parameters:
type1 -
value -
Returns:
the value as number or ZERO if the value is unconvertible.
Throws:
TypeConversionException - if the type cannot be represented as number.
EvaluationException

convertToText

String convertToText(Type type1,
                     Object value)
                     throws EvaluationException
(This conversion is used by the operator implementations.)

Parameters:
type1 -
value -
Returns:
the value as string or an empty string, if the value given is null.
Throws:
TypeConversionException
EvaluationException

convertToLogical

Boolean convertToLogical(Type type1,
                         Object value)
                         throws EvaluationException
Converts the object of the given type into a boolean.

Parameters:
type1 -
value -
Returns:
The value as Boolean or null.
Throws:
EvaluationException

convertToDate

Date convertToDate(Type type1,
                   Object value)
                   throws EvaluationException
Converts the object of the given type into a date.

Parameters:
type1 -
value -
Returns:
The value as Date or null.
Throws:
EvaluationException

convertToNumberSequence

NumberSequence convertToNumberSequence(Type type,
                                       Object value,
                                       boolean strictTypeChecks)
                                       throws EvaluationException
Converts the given (type,value) pair into a numeric sequence. If the flag "strictTypeChecks" is set to true, the value sequence will only evaluate numeric values. A non-strict sequence will treat text as zero and logical values as 0 or 1.

Parameters:
type -
value -
strictTypeChecks -
Returns:
Throws:
TypeConversionException
EvaluationException

convertToSequence

Sequence convertToSequence(Type type,
                           Object value)
                           throws EvaluationException
Throws:
EvaluationException

convertToArray

ArrayCallback convertToArray(Type type,
                             Object value)
                             throws EvaluationException
Throws:
EvaluationException

convertTo

TypeValuePair convertTo(Type targetType,
                        TypeValuePair valuePair)
                        throws EvaluationException
Checks whether the target type would accept the specified value object and value type. (This conversion is used by the functions.)

Parameters:
targetType -
valuePair -
Throws:
EvaluationException

guessTypeOfObject

Type guessTypeOfObject(Object o)