org.infolayer.ocl
Class VarDef

java.lang.Object
  extended byorg.infolayer.ocl.OclExpression
      extended byorg.infolayer.ocl.VarDef
All Implemented Interfaces:
Evaluable

public class VarDef
extends OclExpression

Please note: VarDef can mean a single variable definition as well as a set of variable definitions, depending on the context.


Field Summary
 
Fields inherited from class org.infolayer.ocl.OclExpression
SQL_LOGGER, SQL_MATCH, SQL_MAY_GENERALIZE, SQL_MAY_SPECIALIZE
 
Constructor Summary
VarDef(UmlClassifier type)
          declares "self", shortcut for VarDef (null, type)
VarDef(VarDef base, java.lang.String name, UmlClassifier type)
          Declares a new variable; the index is calculated automatically.
VarDef(VarDef base, UmlClassifier type)
          a constructor for re-declaring the special variable "self"
 
Method Summary
 void assign(java.lang.Object[] bindings, java.lang.Object value)
           
 OclExpression clone(OclExpression[] dep)
          required for resolve
 void debug(java.io.PrintStream out)
           
 java.lang.Object[] ensureCapacity(java.lang.Object[] bindings)
          Returns an object array that has at least maxIndex + 1 entries (space for all variables)
 java.lang.Object eval(Bindings bindings)
           
 VarDef get(int idx)
           
 VarDef get(java.lang.String name)
           
 OclExpression getDependency(int i)
          required for conversion to sql expression, includes "base"
 int getDependencyCount()
          required for conversion to sql expression
 int getIndex()
           
 java.lang.String getName()
           
 UmlClassifier getType()
           
 OclExpression resolve(Bindings context, VarDef iterator)
          replaces variables with constants from context, except for the iterator.
 java.lang.String toString()
           
 
Methods inherited from class org.infolayer.ocl.OclExpression
isConstant, isQuery, isResolvable, simplify, toSql
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VarDef

public VarDef(UmlClassifier type)
declares "self", shortcut for VarDef (null, type)


VarDef

public VarDef(VarDef base,
              java.lang.String name,
              UmlClassifier type)
Declares a new variable; the index is calculated automatically. May hide another variable with the same name. Do not use this method for changing self, since self has a fixed index of 0


VarDef

public VarDef(VarDef base,
              UmlClassifier type)
a constructor for re-declaring the special variable "self"

Method Detail

get

public VarDef get(int idx)

get

public VarDef get(java.lang.String name)

getIndex

public int getIndex()

getType

public UmlClassifier getType()
Specified by:
getType in interface Evaluable
Specified by:
getType in class OclExpression

eval

public java.lang.Object eval(Bindings bindings)
Specified by:
eval in interface Evaluable
Specified by:
eval in class OclExpression

ensureCapacity

public java.lang.Object[] ensureCapacity(java.lang.Object[] bindings)
Returns an object array that has at least maxIndex + 1 entries (space for all variables)


resolve

public OclExpression resolve(Bindings context,
                             VarDef iterator)
Description copied from class: OclExpression
replaces variables with constants from context, except for the iterator. May throw a RuntimeException if not supported. This is used by EvalIterative. Please note that the iterator index is changed to 0.

Overrides:
resolve in class OclExpression

assign

public void assign(java.lang.Object[] bindings,
                   java.lang.Object value)

debug

public void debug(java.io.PrintStream out)

toString

public java.lang.String toString()
Overrides:
toString in class OclExpression

getDependency

public OclExpression getDependency(int i)
Description copied from class: OclExpression
required for conversion to sql expression, includes "base"

Specified by:
getDependency in class OclExpression

clone

public OclExpression clone(OclExpression[] dep)
Description copied from class: OclExpression
required for resolve

Specified by:
clone in class OclExpression

getName

public java.lang.String getName()
Overrides:
getName in class OclExpression

getDependencyCount

public int getDependencyCount()
Description copied from class: OclExpression
required for conversion to sql expression

Specified by:
getDependencyCount in class OclExpression