orc.runtime
Class Args

java.lang.Object
  extended by orc.runtime.Args
All Implemented Interfaces:
java.io.Serializable

public class Args
extends java.lang.Object
implements java.io.Serializable

Container for arguments to a site.

Author:
dkitchin
See Also:
Serialized Form

Nested Class Summary
static interface Args.NumericBinaryOperator<T>
          A binary operator on numbers
static interface Args.NumericUnaryOperator<T>
          A unary operator on numbers
 
Constructor Summary
Args(java.util.List<Value> values)
           
 
Method Summary
static
<T> T
applyNumericOperator(java.lang.Number a, Args.NumericUnaryOperator<T> op)
          Dispatch a unary operator based on the type of a number.
static
<T> T
applyNumericOperator(java.lang.Number a, java.lang.Number b, Args.NumericBinaryOperator<T> op)
          Dispatch a binary operator based on the widest type of two numbers.
 java.lang.Object[] asArray()
           
 boolean boolArg(int n)
          Helper function for booleans
 Value condense()
          Classic 'let' functionality.
 java.lang.String fieldName()
           
 java.lang.Object getArg(int n)
          Helper function to retrieve the nth element as an object (starting from 0), with error checking
 int intArg(int n)
          Helper function for integers
 long longArg(int n)
          Helper function for longs
 java.lang.Number numberArg(int n)
           
 int size()
           
 java.lang.String stringArg(int n)
          Helper function for strings
 Value valArg(int n)
          Helper function to retrieve the nth value (starting from 0), with error checking
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Args

public Args(java.util.List<Value> values)
Method Detail

size

public int size()

condense

public Value condense()
Classic 'let' functionality. Reduce a list of argument values into a single value as follows: Zero arguments: return a signal One argument: return that value Two or more arguments: return a tuple of values


valArg

public Value valArg(int n)
             throws TokenException
Helper function to retrieve the nth value (starting from 0), with error checking

Throws:
TokenException

fieldName

public java.lang.String fieldName()
                           throws TokenException
Throws:
TokenException

getArg

public java.lang.Object getArg(int n)
                        throws TokenException
Helper function to retrieve the nth element as an object (starting from 0), with error checking

Throws:
TokenException

asArray

public java.lang.Object[] asArray()
                           throws TokenException
Throws:
TokenException

intArg

public int intArg(int n)
           throws TokenException
Helper function for integers

Throws:
TokenException

longArg

public long longArg(int n)
             throws TokenException
Helper function for longs

Throws:
TokenException

numberArg

public java.lang.Number numberArg(int n)
                           throws TokenException
Throws:
TokenException

boolArg

public boolean boolArg(int n)
                throws TokenException
Helper function for booleans

Throws:
TokenException

stringArg

public java.lang.String stringArg(int n)
                           throws TokenException
Helper function for strings

Throws:
TokenException

applyNumericOperator

public static <T> T applyNumericOperator(java.lang.Number a,
                                         java.lang.Number b,
                                         Args.NumericBinaryOperator<T> op)
Dispatch a binary operator based on the widest type of two numbers.


applyNumericOperator

public static <T> T applyNumericOperator(java.lang.Number a,
                                         Args.NumericUnaryOperator<T> op)
Dispatch a unary operator based on the type of a number.