Class ConstantExpression

Object
ConstantExpression
All Implemented Interfaces:
Cloneable, Expression, Literal
Direct Known Subclasses:
OverlapBehaviorImpl

public class ConstantExpression extends Object implements Literal, Cloneable
The Expression class is not immutable!

However we do have a need for immutable literal expressions when defining our API for SLD, and any other standards based on Expression.

Author:
Jody Garnett, Refractions Research
  • Field Details

  • Constructor Details

    • ConstantExpression

      protected ConstantExpression(Object value)
    • ConstantExpression

      protected ConstantExpression(short type, Object value)
  • Method Details

    • evaluate

      public Object evaluate(Object object)
      Description copied from interface: Expression
      Evaluates the given expression based on the content of the given object.
      Specified by:
      evaluate in interface Expression
      Returns:
      computed value
    • evaluate

      public <T> T evaluate(Object object, Class<T> context)
      Description copied from interface: Expression
      Evaluates the given expressoin based on the content of the given object and the context type.

      The context parameter is used to control the type of the result of the expression. A particular expression may not be able to evaluate to an instance of context. Therefore to be safe calling code should do a null check on the return value of this method, and call Expression.evaluate(Object) if neccessary. Example:

        Object input = ...;
        String result = expression.evaluate( input, String.class );
        if ( result == null ) {
           result = expression.evalute( input ).toString();
        }
        ...
       

      Implementations that can not return a result as an instance of context should return null.

      Specified by:
      evaluate in interface Expression
      Type Parameters:
      T - The type of the returned object.
      Parameters:
      object - The object to evaluate the expression against.
      context - The type of the resulting value of the expression.
      Returns:
      Evaluates the given expression based on the content of the given object an an instance of context.
    • getValue

      public Object getValue()
      Description copied from interface: Literal
      Returns the constant value held by this object.
      Specified by:
      getValue in interface Literal
    • setValue

      public void setValue(Object constant)
    • accept

      public Object accept(ExpressionVisitor visitor, Object extraData)
      Description copied from interface: Expression
      Accepts a visitor. Subclasses must implement with a method whose content is the following:
      return visitor.visit(this, extraData);
      Specified by:
      accept in interface Expression
    • clone

      protected Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • color

      public static ConstantExpression color(Color color)
      Encode provided color as a String
    • constant

      public static ConstantExpression constant(double number)
    • constant

      public static ConstantExpression constant(int number)
    • constant

      public static ConstantExpression constant(Object value)