de.grogra.xl.expr
Class Conditional

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.EvalExpression
                  extended by de.grogra.xl.expr.ConstExpression
                      extended by de.grogra.xl.expr.Conditional
All Implemented Interfaces:
Manageable, PersistenceCapable, Shareable, TypeId, UserFields, XObject, Map, ExpressionFactory, ValueObserver, java.io.Serializable, java.lang.Cloneable

public final class Conditional
extends ConstExpression

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
Conditional()
           
Conditional(Type type)
           
 
Method Summary
 boolean allowsIteration(int index)
           
 Expression compile(de.grogra.xl.compiler.scope.Scope scope, Expression c, Expression e1, Expression e2)
           
protected  boolean evaluateBooleanImpl(VMXState t)
           
protected  byte evaluateByteImpl(VMXState t)
           
protected  char evaluateCharImpl(VMXState t)
           
protected  double evaluateDoubleImpl(VMXState t)
           
protected  float evaluateFloatImpl(VMXState t)
           
protected  int evaluateIntImpl(VMXState t)
           
protected  long evaluateLongImpl(VMXState t)
           
protected  java.lang.Object evaluateObjectImpl(VMXState t)
           
protected  short evaluateShortImpl(VMXState t)
           
 boolean isConditional()
           
 void link(boolean checkTypes)
           
 int writeConditional(de.grogra.xl.compiler.BytecodeWriter writer, org.objectweb.asm.Label falseLabel, org.objectweb.asm.Label trueLabel)
           
protected  void writeImpl(de.grogra.xl.compiler.BytecodeWriter writer, boolean discard)
           
 
Methods inherited from class de.grogra.xl.expr.ConstExpression
toConst
 
Methods inherited from class de.grogra.xl.expr.Expression
add, cast, checkExpressionCount, checkSetType, clone, compile, compile, createConst, createExpression, createMaxConst, createMinConst, discards, evaluateAsObject, evaluateAsVoid, evaluateBoolean, evaluateBoolean, evaluateByte, evaluateByte, evaluateChar, evaluateChar, evaluateDouble, evaluateDouble, evaluateFloat, evaluateFloat, evaluateInt, evaluateInt, evaluateLong, evaluateLong, evaluateObject, evaluateObject, evaluateRet, evaluateShort, evaluateShort, evaluatesWithoutSideeffect, evaluateVoidImpl, fireValueChanged, getExpression, getExpression, getExpression, getExpressionCount, getFirstExpression, getLastExpression, getLeastCommonAncestor, getNextExpression, getNTypeImpl, getObjectExpression, getObjectExpression, getPromotedType, getSupportedTypes, getType, getTypeLoader, hasType, hasType, implicitConversion, isPrimitiveOrStringConstant, isRequired, linkGraph, needsEmptyOperandStackForFinally, newInstance, opcode, opcode, paramString, promote, push, receiveChildren, setNextSibling, setType, substitute, toConstImpl, toString, unboxingConversion, unlinkTree, valueChanged, write, writeChildren, writeConditional, writeFinally, 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

Conditional

public Conditional()

Conditional

public Conditional(Type type)
Method Detail

allowsIteration

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

compile

public Expression compile(de.grogra.xl.compiler.scope.Scope scope,
                          Expression c,
                          Expression e1,
                          Expression e2)

evaluateBooleanImpl

protected boolean evaluateBooleanImpl(VMXState t)
Overrides:
evaluateBooleanImpl in class Expression

evaluateByteImpl

protected byte evaluateByteImpl(VMXState t)
Overrides:
evaluateByteImpl in class Expression

evaluateCharImpl

protected char evaluateCharImpl(VMXState t)
Overrides:
evaluateCharImpl in class Expression

evaluateDoubleImpl

protected double evaluateDoubleImpl(VMXState t)
Overrides:
evaluateDoubleImpl in class Expression

evaluateFloatImpl

protected float evaluateFloatImpl(VMXState t)
Overrides:
evaluateFloatImpl in class Expression

evaluateIntImpl

protected int evaluateIntImpl(VMXState t)
Overrides:
evaluateIntImpl in class Expression

evaluateLongImpl

protected long evaluateLongImpl(VMXState t)
Overrides:
evaluateLongImpl in class Expression

evaluateObjectImpl

protected java.lang.Object evaluateObjectImpl(VMXState t)
Overrides:
evaluateObjectImpl in class Expression

evaluateShortImpl

protected short evaluateShortImpl(VMXState t)
Overrides:
evaluateShortImpl in class Expression

isConditional

public boolean isConditional()
Overrides:
isConditional in class Expression

link

public void link(boolean checkTypes)
Overrides:
link in class Expression

writeConditional

public int writeConditional(de.grogra.xl.compiler.BytecodeWriter writer,
                            org.objectweb.asm.Label falseLabel,
                            org.objectweb.asm.Label trueLabel)
Overrides:
writeConditional in class Expression

writeImpl

protected void writeImpl(de.grogra.xl.compiler.BytecodeWriter writer,
                         boolean discard)
Overrides:
writeImpl in class Expression