org.apache.el.lang

## Class ELSupport

- java.lang.Object
- - org.apache.el.lang.ELSupport

Direct Known Subclasses:
  SimpleNode

    public class ELSupport
    extends Object

A helper class that implements the EL Specification

Author:
  Jacob Hookom [jacob@hookom.net]

### Constructor Summary

Constructors
Constructor and Description
`ELSupport()`

### Method Summary

Methods
`static Boolean` `coerceToBoolean(Object obj)` Convert an object to Boolean.
`static Character` `coerceToCharacter(Object obj)`
`static Enum<?>` `coerceToEnum(Object obj, Class type)`
`protected static Number` `coerceToNumber(Number number, Class<?> type)`
`static Number` `coerceToNumber(Object obj, Class<?> type)`
`protected static Number` `coerceToNumber(String val, Class<?> type)`
`static String` `coerceToString(Object obj)` Coerce an object to a string
`static Object` `coerceToType(Object obj, Class<?> type)`
`static int` `compare(Object obj0, Object obj1)` Compare two objects, after coercing to the same type if appropriate.
`static boolean` `equals(Object obj0, Object obj1)` Compare two objects for equality, after coercing to the same type if appropriate.
`static boolean` `isBigDecimalOp(Object obj0, Object obj1)`
`static boolean` `isBigIntegerOp(Object obj0, Object obj1)`
`static boolean` `isDoubleOp(Object obj0, Object obj1)`
`static boolean` `isLongOp(Object obj0, Object obj1)`
`static boolean` `isStringFloat(String str)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ELSupport

    public ELSupport()

### Method Detail

#### compare

    public static final int compare(Object obj0,
              Object obj1)
                             throws ELException

Compare two objects, after coercing to the same type if appropriate. If the objects are identical, or they are equal according to `equals(Object, Object)` then return 0. If either object is a BigDecimal, then coerce both to BigDecimal first. Similarly for Double(Float), BigInteger, and Long(Integer, Char, Short, Byte). Otherwise, check that the first object is an instance of Comparable, and compare against the second object. If that is null, return 1, otherwise return the result of comparing against the second object. Similarly, if the second object is Comparable, if the first is null, return -1, else return the result of comparing against the first object. A null object is considered as:

- ZERO when compared with Numbers
- the empty string for String compares
- Otherwise null is considered to be lower than anything else.

Parameters:
  `obj0` - first object
  `obj1` - second object
Returns:
  -1, 0, or 1 if this object is less than, equal to, or greater than val.
Throws:
  `ELException` - if neither object is Comparable
  `ClassCastException` - if the objects are not mutually comparable

#### equals

    public static final boolean equals(Object obj0,
                 Object obj1)
                                throws ELException

Compare two objects for equality, after coercing to the same type if appropriate. If the objects are identical (including both null) return true. If either object is null, return false. If either object is Boolean, coerce both to Boolean and check equality. Similarly for Enum, String, BigDecimal, Double(Float), Long(Integer, Short, Byte, Character) Otherwise default to using Object.equals().

Parameters:
  `obj0` - the first object
  `obj1` - the second object
Returns:
  true if the objects are equal
Throws:
  `ELException`

#### coerceToEnum

    public static final Enum<?> coerceToEnum(Object obj,
                       Class type)

#### coerceToBoolean

    public static final Boolean coerceToBoolean(Object obj)
                                         throws ELException

Convert an object to Boolean. Null and empty string are false.

Parameters:
  `obj` - the object to convert
Returns:
  the Boolean value of the object
Throws:
  `ELException` - if object is not Boolean or String

#### coerceToCharacter

    public static final Character coerceToCharacter(Object obj)
                                             throws ELException

Throws:
  `ELException`

#### coerceToNumber

    protected static final Number coerceToNumber(Number number,
                        Class<?> type)
                                          throws ELException

Throws:
  `ELException`

#### coerceToNumber

    public static final Number coerceToNumber(Object obj,
                        Class<?> type)
                                       throws ELException

Throws:
  `ELException`

#### coerceToNumber

    protected static final Number coerceToNumber(String val,
                        Class<?> type)
                                          throws ELException

Throws:
  `ELException`

#### coerceToString

    public static final String coerceToString(Object obj)

Coerce an object to a string

Parameters:
  `obj` -
Returns:
  the String value of the object

#### coerceToType

    public static final Object coerceToType(Object obj,
                      Class<?> type)
                                     throws ELException

Throws:
  `ELException`

#### isBigDecimalOp

    public static final boolean isBigDecimalOp(Object obj0,
                         Object obj1)

#### isBigIntegerOp

    public static final boolean isBigIntegerOp(Object obj0,
                         Object obj1)

#### isDoubleOp

    public static final boolean isDoubleOp(Object obj0,
                     Object obj1)

#### isLongOp

    public static final boolean isLongOp(Object obj0,
                   Object obj1)

#### isStringFloat

    public static final boolean isStringFloat(String str)