org.apache.commons.ognl
Class OgnlOps

java.lang.Object
  extended by org.apache.commons.ognl.OgnlOps
All Implemented Interfaces:
NumericTypes

public abstract class OgnlOps
extends Object
implements NumericTypes

This is an abstract class with static methods that define the operations of OGNL.

Author:
Luke Blanshard (blanshlu@netscape.net), Drew Davidson (drew@ognl.org)

Field Summary
 
Fields inherited from interface org.apache.commons.ognl.NumericTypes
BIGDEC, BIGINT, BOOL, BYTE, CHAR, DOUBLE, FLOAT, INT, LONG, MIN_REAL_TYPE, NONNUMERIC, SHORT
 
Constructor Summary
OgnlOps()
           
 
Method Summary
static Object add(Object v1, Object v2)
           
static BigDecimal bigDecValue(Object value)
          Evaluates the given object as a BigDecimal.
static BigInteger bigIntValue(Object value)
          Evaluates the given object as a BigInteger.
static Object binaryAnd(Object v1, Object v2)
           
static Object binaryOr(Object v1, Object v2)
           
static Object binaryXor(Object v1, Object v2)
           
static Object bitNegate(Object value)
           
static boolean booleanValue(boolean value)
           
static boolean booleanValue(double value)
           
static boolean booleanValue(float value)
           
static boolean booleanValue(int value)
           
static boolean booleanValue(long value)
           
static boolean booleanValue(Object value)
          Evaluates the given object as a boolean: if it is a Boolean object, it's easy; if it's a Number or a Character, returns true for non-zero objects; and otherwise returns true for non-null objects.
static RuntimeException castToRuntime(Throwable t)
          Utility method that converts incoming exceptions to RuntimeException instances - or casts them if they already are.
static int compareWithConversion(Object v1, Object v2)
          Compares two objects for equality, even if it has to convert one of them to the other type.
static
<T> Object
convertValue(boolean value, Class<T> toType)
           
static
<T> Object
convertValue(boolean value, Class<T> toType, boolean preventNull)
           
static
<T> Object
convertValue(byte value, Class<T> toType)
           
static
<T> Object
convertValue(byte value, Class<T> toType, boolean preventNull)
           
static
<T> Object
convertValue(char value, Class<T> toType)
           
static
<T> Object
convertValue(char value, Class<T> toType, boolean preventNull)
           
static
<T> Object
convertValue(double value, Class<T> toType)
           
static
<T> Object
convertValue(double value, Class<T> toType, boolean preventNull)
           
static
<T> Object
convertValue(float value, Class<T> toType)
           
static
<T> Object
convertValue(float value, Class<T> toType, boolean preventNull)
           
static
<T> Object
convertValue(int value, Class<T> toType)
           
static
<T> Object
convertValue(int value, Class<T> toType, boolean preventNull)
           
static
<T> Object
convertValue(long value, Class<T> toType)
           
static
<T> Object
convertValue(long value, Class<T> toType, boolean preventNull)
           
static Object convertValue(Object value, Class<?> toType)
          Returns the value converted numerically to the given class type This method also detects when arrays are being converted and converts the components of one array to the type of the other.
static
<T> Object
convertValue(Object value, Class<T> toType, boolean preventNulls)
           
static Object divide(Object v1, Object v2)
           
static double doubleValue(Object value)
          Evaluates the given object as a double-precision floating-point number.
static boolean equal(Object v1, Object v2)
           
static String getEscapedChar(char ch)
           
static String getEscapeString(String value)
           
static int getIntValue(Object value)
          Converts the specified value to a primitive integer value.
static int getNumericType(int t1, int t2, boolean canBeNonNumeric)
          Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given types.
static int getNumericType(Object value)
          Returns a constant from the NumericTypes interface that represents the numeric type of the given object.
static int getNumericType(Object v1, Object v2)
          Returns the constant from the NumericTypes interface that best expresses the type of a numeric operation on the two given objects.
static int getNumericType(Object v1, Object v2, boolean canBeNonNumeric)
          Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given objects.
static boolean greater(Object v1, Object v2)
           
static boolean in(Object v1, Object v2)
           
static boolean isEqual(Object object1, Object object2)
          Returns true if object1 is equal to object2 in either the sense that they are the same object or, if both are non-null if they are equal in the equals() sense.
static boolean less(Object v1, Object v2)
           
static long longValue(Object value)
          Evaluates the given object as a long integer.
static Object multiply(Object v1, Object v2)
           
static Object negate(Object value)
           
static Number newInteger(int type, long value)
          Returns a new Number object of an appropriate type to hold the given integer value.
static Number newReal(int type, double value)
          Returns a new Number object of an appropriate type to hold the given real value.
static Object remainder(Object v1, Object v2)
           
static Object returnValue(Object ignore, Object returnValue)
           
static Object shiftLeft(Object v1, Object v2)
           
static Object shiftRight(Object v1, Object v2)
           
static String stringValue(Object value)
          Evaluates the given object as a String.
static String stringValue(Object value, boolean trim)
          Evaluates the given object as a String and trims it if the trim flag is true.
static Object subtract(Object v1, Object v2)
           
static Object toArray(boolean value, Class<?> toType)
           
static Object toArray(boolean value, Class<?> toType, boolean preventNull)
           
static Object toArray(byte value, Class<?> toType)
           
static Object toArray(byte value, Class<?> toType, boolean preventNull)
           
static Object toArray(char value, Class<?> toType)
           
static Object toArray(char value, Class<?> toType, boolean preventNull)
           
static Object toArray(double value, Class<?> toType)
           
static Object toArray(double value, Class<?> toType, boolean preventNull)
           
static Object toArray(float value, Class<?> toType)
           
static Object toArray(float value, Class<?> toType, boolean preventNull)
           
static Object toArray(int value, Class<?> toType)
           
static Object toArray(int value, Class<?> toType, boolean preventNull)
           
static Object toArray(long value, Class<?> toType)
           
static Object toArray(long value, Class<?> toType, boolean preventNull)
           
static Object toArray(Object value, Class<?> toType)
           
static Object toArray(Object value, Class<?> toType, boolean preventNulls)
           
static Object unsignedShiftRight(Object v1, Object v2)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OgnlOps

public OgnlOps()
Method Detail

compareWithConversion

public static int compareWithConversion(Object v1,
                                        Object v2)
Compares two objects for equality, even if it has to convert one of them to the other type. If both objects are numeric they are converted to the widest type and compared. If one is non-numeric and one is numeric the non-numeric is converted to double and compared to the double numeric value. If both are non-numeric and Comparable and the types are compatible (i.e. v1 is of the same or superclass of v2's type) they are compared with Comparable.compareTo(). If both values are non-numeric and not Comparable or of incompatible classes this will throw and IllegalArgumentException.

Parameters:
v1 - First value to compare
v2 - second value to compare
Returns:
integer describing the comparison between the two objects. A negative number indicates that v1 < v2. Positive indicates that v1 > v2. Zero indicates v1 == v2.
Throws:
IllegalArgumentException - if the objects are both non-numeric yet of incompatible types or do not implement Comparable.

isEqual

public static boolean isEqual(Object object1,
                              Object object2)
Returns true if object1 is equal to object2 in either the sense that they are the same object or, if both are non-null if they are equal in the equals() sense.

Parameters:
object1 - First object to compare
object2 - Second object to compare
Returns:
true if v1 == v2

booleanValue

public static boolean booleanValue(boolean value)

booleanValue

public static boolean booleanValue(int value)

booleanValue

public static boolean booleanValue(float value)

booleanValue

public static boolean booleanValue(long value)

booleanValue

public static boolean booleanValue(double value)

booleanValue

public static boolean booleanValue(Object value)
Evaluates the given object as a boolean: if it is a Boolean object, it's easy; if it's a Number or a Character, returns true for non-zero objects; and otherwise returns true for non-null objects.

Parameters:
value - an object to interpret as a boolean
Returns:
the boolean value implied by the given object

longValue

public static long longValue(Object value)
Evaluates the given object as a long integer.

Parameters:
value - an object to interpret as a long integer
Returns:
the long integer value implied by the given object
Throws:
NumberFormatException - if the given object can't be understood as a long integer

doubleValue

public static double doubleValue(Object value)
Evaluates the given object as a double-precision floating-point number.

Parameters:
value - an object to interpret as a double
Returns:
the double value implied by the given object
Throws:
NumberFormatException - if the given object can't be understood as a double

bigIntValue

public static BigInteger bigIntValue(Object value)
Evaluates the given object as a BigInteger.

Parameters:
value - an object to interpret as a BigInteger
Returns:
the BigInteger value implied by the given object
Throws:
NumberFormatException - if the given object can't be understood as a BigInteger

bigDecValue

public static BigDecimal bigDecValue(Object value)
Evaluates the given object as a BigDecimal.

Parameters:
value - an object to interpret as a BigDecimal
Returns:
the BigDecimal value implied by the given object
Throws:
NumberFormatException - if the given object can't be understood as a BigDecimal

stringValue

public static String stringValue(Object value,
                                 boolean trim)
Evaluates the given object as a String and trims it if the trim flag is true.

Parameters:
value - an object to interpret as a String
trim - if true trims the result
Returns:
the String value implied by the given object as returned by the toString() method, or "null" if the object is null.

stringValue

public static String stringValue(Object value)
Evaluates the given object as a String.

Parameters:
value - an object to interpret as a String
Returns:
the String value implied by the given object as returned by the toString() method, or "null" if the object is null.

getNumericType

public static int getNumericType(Object value)
Returns a constant from the NumericTypes interface that represents the numeric type of the given object.

Parameters:
value - an object that needs to be interpreted as a number
Returns:
the appropriate constant from the NumericTypes interface

toArray

public static Object toArray(char value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(byte value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(int value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(long value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(float value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(double value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(boolean value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(char value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(byte value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(int value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(long value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(float value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(double value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(boolean value,
                                      Class<T> toType)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(char value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(byte value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(int value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(long value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(float value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(double value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(boolean value,
                                      Class<T> toType,
                                      boolean preventNull)
                           throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(char value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(byte value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(int value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(long value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(float value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(double value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(boolean value,
                             Class<?> toType,
                             boolean preventNull)
                      throws OgnlException
Throws:
OgnlException

convertValue

public static Object convertValue(Object value,
                                  Class<?> toType)
Returns the value converted numerically to the given class type This method also detects when arrays are being converted and converts the components of one array to the type of the other.

Parameters:
value - an object to be converted to the given type
toType - class type to be converted to
Returns:
converted value of the type given, or value if the value cannot be converted to the given type.

toArray

public static Object toArray(Object value,
                             Class<?> toType)
                      throws OgnlException
Throws:
OgnlException

toArray

public static Object toArray(Object value,
                             Class<?> toType,
                             boolean preventNulls)
                      throws OgnlException
Throws:
OgnlException

convertValue

public static <T> Object convertValue(Object value,
                                      Class<T> toType,
                                      boolean preventNulls)

getIntValue

public static int getIntValue(Object value)
Converts the specified value to a primitive integer value.

Parameters:
value - The object to get the value of.
Returns:
A valid integer.

getNumericType

public static int getNumericType(Object v1,
                                 Object v2)
Returns the constant from the NumericTypes interface that best expresses the type of a numeric operation on the two given objects.

Parameters:
v1 - one argument to a numeric operator
v2 - the other argument
Returns:
the appropriate constant from the NumericTypes interface

getNumericType

public static int getNumericType(int t1,
                                 int t2,
                                 boolean canBeNonNumeric)
Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given types.

Parameters:
t1 - type of one argument to an operator
t2 - type of the other argument
canBeNonNumeric - whether the operator can be interpreted as non-numeric
Returns:
the appropriate constant from the NumericTypes interface

getNumericType

public static int getNumericType(Object v1,
                                 Object v2,
                                 boolean canBeNonNumeric)
Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given objects.

Parameters:
v1 - one argument to an operator
v2 - the other argument
canBeNonNumeric - whether the operator can be interpreted as non-numeric
Returns:
the appropriate constant from the NumericTypes interface

newInteger

public static Number newInteger(int type,
                                long value)
Returns a new Number object of an appropriate type to hold the given integer value. The type of the returned object is consistent with the given type argument, which is a constant from the NumericTypes interface.

Parameters:
type - the nominal numeric type of the result, a constant from the NumericTypes interface
value - the integer value to convert to a Number object
Returns:
a Number object with the given value, of type implied by the type argument

newReal

public static Number newReal(int type,
                             double value)
Returns a new Number object of an appropriate type to hold the given real value. The type of the returned object is always either Float or Double, and is only Float if the given type tag (a constant from the NumericTypes interface) is FLOAT.

Parameters:
type - the nominal numeric type of the result, a constant from the NumericTypes interface
value - the real value to convert to a Number object
Returns:
a Number object with the given value, of type implied by the type argument

binaryOr

public static Object binaryOr(Object v1,
                              Object v2)

binaryXor

public static Object binaryXor(Object v1,
                               Object v2)

binaryAnd

public static Object binaryAnd(Object v1,
                               Object v2)

equal

public static boolean equal(Object v1,
                            Object v2)

less

public static boolean less(Object v1,
                           Object v2)

greater

public static boolean greater(Object v1,
                              Object v2)

in

public static boolean in(Object v1,
                         Object v2)
                  throws OgnlException
Throws:
OgnlException

shiftLeft

public static Object shiftLeft(Object v1,
                               Object v2)

shiftRight

public static Object shiftRight(Object v1,
                                Object v2)

unsignedShiftRight

public static Object unsignedShiftRight(Object v1,
                                        Object v2)

add

public static Object add(Object v1,
                         Object v2)

subtract

public static Object subtract(Object v1,
                              Object v2)

multiply

public static Object multiply(Object v1,
                              Object v2)

divide

public static Object divide(Object v1,
                            Object v2)

remainder

public static Object remainder(Object v1,
                               Object v2)

negate

public static Object negate(Object value)

bitNegate

public static Object bitNegate(Object value)

getEscapeString

public static String getEscapeString(String value)

getEscapedChar

public static String getEscapedChar(char ch)

returnValue

public static Object returnValue(Object ignore,
                                 Object returnValue)

castToRuntime

public static RuntimeException castToRuntime(Throwable t)
Utility method that converts incoming exceptions to RuntimeException instances - or casts them if they already are.

Parameters:
t - The exception to cast.
Returns:
The exception cast to a RuntimeException.


Copyright © 1997-2013 The Apache Software Foundation. All Rights Reserved.