org.apache.commons.jexl.parser
Class ASTSizeFunction

java.lang.Object
  |
  +--org.apache.commons.jexl.parser.SimpleNode
        |
        +--org.apache.commons.jexl.parser.ASTSizeFunction
All Implemented Interfaces:
Node

public class ASTSizeFunction
extends SimpleNode

generalized size() function for all classes we can think of.

Version:
$Id: ASTSizeFunction.java 398324 2006-04-30 12:20:24Z dion $

Field Summary
 
Fields inherited from class org.apache.commons.jexl.parser.SimpleNode
children, id, parent, parser
 
Constructor Summary
ASTSizeFunction(int id)
          Create the node given an id.
ASTSizeFunction(Parser p, int id)
          Create a node with the given parser and id.
 
Method Summary
 Object jjtAccept(ParserVisitor visitor, Object data)
          Accept the visitor.
static int sizeOf(Object val)
          Calculate the size of various types: Collection, Array, Map, String, and anything that has a int size() method.
 Object value(JexlContext jc)
          Gets the value of this node.
 
Methods inherited from class org.apache.commons.jexl.parser.SimpleNode
childrenAccept, dump, execute, interpret, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, setValue, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ASTSizeFunction

public ASTSizeFunction(int id)
Create the node given an id.

Parameters:
id - node id.

ASTSizeFunction

public ASTSizeFunction(Parser p,
                       int id)
Create a node with the given parser and id.

Parameters:
p - a parser.
id - node id.
Method Detail

jjtAccept

public Object jjtAccept(ParserVisitor visitor,
                        Object data)
Accept the visitor.

Specified by:
jjtAccept in interface Node
Overrides:
jjtAccept in class SimpleNode
Parameters:
visitor - a ParserVisitor.
data - data to be passed along to the visitor.
Returns:
the value from visiting.
See Also:
ParserVisitor.visit(org.apache.commons.jexl.parser.SimpleNode, java.lang.Object)

value

public Object value(JexlContext jc)
             throws Exception
Gets the value of this node.

Overrides:
value in class SimpleNode
Parameters:
jc - the context to retrieve values from.
Returns:
the value of the node.
Throws:
Exception - when evaluating the operands fails.

sizeOf

public static int sizeOf(Object val)
                  throws Exception
Calculate the size of various types: Collection, Array, Map, String, and anything that has a int size() method.

Parameters:
val - the object to get the size of.
Returns:
the size of val
Throws:
Exception - if the size cannot be determined.


Copyright © 2003-2006 The Apache Software Foundation. All Rights Reserved.