de.grogra.xl.expr
Class MethodExpression

java.lang.Object
  extended by de.grogra.graph.impl.Edge
      extended by de.grogra.graph.impl.Node
          extended by de.grogra.xl.expr.Expression
              extended by de.grogra.xl.expr.VoidExpression
                  extended by de.grogra.xl.expr.MethodExpression
All Implemented Interfaces:
Manageable, PersistenceCapable, Shareable, TypeId, UserFields, XObject, Map, ExpressionFactory, ValueObserver, Routine, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
ComplexMethod

public abstract class MethodExpression
extends VoidExpression
implements Routine

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class de.grogra.graph.impl.Node
Node.AccessorBridge, Node.FieldAttributeAccessor, Node.NType
 
Nested classes/interfaces inherited from interface de.grogra.util.Map
Map.Chain
 
Field Summary
 
Fields inherited from class de.grogra.xl.expr.Expression
$TYPE, aval, aval$FIELD, dval, dval$FIELD, etype, EXPR_0, I18N, lval, lval$FIELD, USED_BITS, VALID, valid$FIELD
 
Fields inherited from class de.grogra.graph.impl.Node
ADDITIONAL_FIELDS, bits, DELETED, EXTENT_BIT, EXTENT_MASK, extentIndex$FIELD, extentTail$FIELD, HAS_OBSERVERS, IS_INTERPRETIVE, isInterpretive$FIELD, LAST_EXTENT_INDEX, layer$FIELD, MARK, mark$FIELD, MIME_TYPE, MIN_UNUSED_SPECIAL_OF_SOURCE, MIN_UNUSED_SPECIAL_OF_TARGET, name$FIELD
 
Fields inherited from interface de.grogra.reflect.TypeId
A_VALUE, ABSTRACT_PRIMITIVE, BOOLEAN, BOOLEAN_MASK, BYTE, BYTE_MASK, CHAR, CHAR_MASK, D_VALUE, DOUBLE, DOUBLE_MASK, F_VALUE, FLOAT, FLOAT_MASK, FLOATING_POINT_MASK, I_VALUE, INT, INT_ASSIGNABLE, INT_MASK, INTEGRAL_MASK, L_VALUE, LONG, LONG_MASK, MAX_PRIMITIVE, MIN_PRIMITIVE, NUMERIC_MASK, NUMERIC_NONCHAR_MASK, OBJECT, OBJECT_MASK, PRIMITIVE_MASK, SHORT, SHORT_MASK, TYPE_COUNT, VOID, VOID_MASK
 
Fields inherited from interface de.grogra.util.Map
DEFAULT_VALUE, EMPTY_MAP
 
Constructor Summary
MethodExpression()
           
 
Method Summary
 boolean discards(int index)
           
protected abstract  void evaluateImpl(VMXState t)
           
protected  void evaluateVoidImpl(VMXState t)
           
 AbruptCompletion.Return execute(VMXState s)
          This callback method is invoked by the executing VMXState.
 int getFrameSize()
          Computes the number of VMXState stack elements for the frame of this routine.
 int getJavaFrameSize()
          Computes the number of VMXState stack elements for the Java frame of this routine.
 int getParameterSize()
          Computes the number of VMXState stack elements for the parameters of this routine.
 boolean hasJavaParameters()
          Determines whether this routine expects its parameters on the Java frame or the normal frame.
 void setJFrameSize(int jsize)
           
 void setParameterSize(int params)
           
 void writeFinally(de.grogra.xl.compiler.BytecodeWriter writer, int label, ControlTransfer cause)
           
 
Methods inherited from class de.grogra.xl.expr.VoidExpression
allowsIteration
 
Methods inherited from class de.grogra.xl.expr.Expression
add, cast, checkExpressionCount, checkSetType, clone, compile, compile, createConst, createExpression, createMaxConst, createMinConst, evaluateAsObject, evaluateAsVoid, evaluateBoolean, evaluateBoolean, evaluateBooleanImpl, evaluateByte, evaluateByte, evaluateByteImpl, evaluateChar, evaluateChar, evaluateCharImpl, evaluateDouble, evaluateDouble, evaluateDoubleImpl, evaluateFloat, evaluateFloat, evaluateFloatImpl, evaluateInt, evaluateInt, evaluateIntImpl, evaluateLong, evaluateLong, evaluateLongImpl, evaluateObject, evaluateObject, evaluateObjectImpl, evaluateRet, evaluateShort, evaluateShort, evaluateShortImpl, evaluatesWithoutSideeffect, fireValueChanged, getExpression, getExpression, getExpression, getExpressionCount, getFirstExpression, getLastExpression, getLeastCommonAncestor, getNextExpression, getNTypeImpl, getObjectExpression, getObjectExpression, getPromotedType, getSupportedTypes, getType, getTypeLoader, hasType, hasType, implicitConversion, isConditional, isPrimitiveOrStringConstant, isRequired, link, linkGraph, needsEmptyOperandStackForFinally, newInstance, opcode, opcode, paramString, promote, push, receiveChildren, setNextSibling, setType, substitute, toConst, toConstImpl, toString, unboxingConversion, unlinkTree, valueChanged, write, writeChildren, writeConditional, writeConditional, writeImpl, writeOperator
 
Methods inherited from class de.grogra.graph.impl.Node
addEdgeBitsTo, addReference, appendBranchNode, appendBranchNode, appendReferencesTo, clone, cloneGraph, dump, dumpTree, dup, dupUnmanagedFields, edgeChanged, fieldModified, findAdjacent, get, getAccessor, getAccessor, getAttributes, getAxisParent, getBoolean, getBranch, getBranchLength, getBranchNode, getBranchTail, getByte, getChar, getCommonAncestor, getCurrentGraphState, getDirectChildCount, getDouble, getEdgeAttributeAccessor, getEdgeAttributes, getEdgeBitsTo, getEdgeTo, getExtentIndex, getFirst, getFirstEdge, getFloat, getGraph, getId, getIndex, getInstantiator, getInt, getLayer, getLong, getManageableType, getName, getNeighbor, getNext, getNType, getObject, getOrCreateEdgeTo, getOrNull, getPersistenceManager, getPredecessor, getProvider, getShort, getSource, getStamp, getSuccessor, getSymbol, getSymbolColor, getTarget, getTransaction, getUserField, getUserFieldCount, getXClass, getXData, hasName, initProvider, initXClass, insertBranchNode, insertBranchNode, instantiateGraph, isAncestorOf, isDirection, isManagingInstance, isMarked, isRoot, isSource, isTarget, manageableReadResolve, manageableWriteReplace, removeAll, removeEdgeBitsTo, removeFromChain, removeFromChain, removeReference, setBranch, setBranch, setExtentIndex, setGraphForDeserialization, setLayer, setMark, setName, setSuccessor, setSuccessor, specialEdgeAdded, specialEdgeRefModified, specialEdgeRemoved, writeReplace
 
Methods inherited from class de.grogra.graph.impl.Edge
addEdgeBits, getBitMark, getEdgeBits, getObjectMark, getSpecialEdgeDescriptor, parseEdgeKeys, remove, removeEdgeBits, setBitMark, setEdgeBits, setObjectMark, testEdgeBits
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.grogra.persistence.PersistenceCapable
getBitMark, getObjectMark, setBitMark, setObjectMark
 

Constructor Detail

MethodExpression

public MethodExpression()
Method Detail

discards

public boolean discards(int index)
Overrides:
discards in class Expression

evaluateImpl

protected abstract void evaluateImpl(VMXState t)

evaluateVoidImpl

protected final void evaluateVoidImpl(VMXState t)
Overrides:
evaluateVoidImpl in class Expression

execute

public final AbruptCompletion.Return execute(VMXState s)
Description copied from interface: Routine
This callback method is invoked by the executing VMXState. A return value has to be wrapped in an instance of AbruptCompletion.Return.

Specified by:
execute in interface Routine
Parameters:
s - the executing VMXState
Returns:
the wrapped return value

getFrameSize

public int getFrameSize()
Description copied from interface: Routine
Computes the number of VMXState stack elements for the frame of this routine. This includes the parameters, if any.

Specified by:
getFrameSize in interface Routine
Returns:
the size of the frame in terms of stack elements

getJavaFrameSize

public int getJavaFrameSize()
Description copied from interface: Routine
Computes the number of VMXState stack elements for the Java frame of this routine. This includes the parameters, if any.

Specified by:
getJavaFrameSize in interface Routine
Returns:
the size of the Java frame in terms of stack elements

getParameterSize

public int getParameterSize()
Description copied from interface: Routine
Computes the number of VMXState stack elements for the parameters of this routine.

Specified by:
getParameterSize in interface Routine
Returns:
the number of stack elements for parameters

hasJavaParameters

public boolean hasJavaParameters()
Description copied from interface: Routine
Determines whether this routine expects its parameters on the Java frame or the normal frame.

Specified by:
hasJavaParameters in interface Routine
Returns:
true iff parameters are expected on the Java frame

setJFrameSize

public final void setJFrameSize(int jsize)

setParameterSize

public final void setParameterSize(int params)

writeFinally

public void writeFinally(de.grogra.xl.compiler.BytecodeWriter writer,
                         int label,
                         ControlTransfer cause)
Overrides:
writeFinally in class Expression