org.siebengeisslein.pclass.expression
Interface Expression

All Superinterfaces:
CodeFragment
All Known Subinterfaces:
BooleanExpression, FilterExpression
All Known Implementing Classes:
AbstractExpression, AbstractInvocationExpression, AbstractLiteral, BinaryOperator, BooleanLiteral, ByteLiteral, CastExpression, CharLiteral, ClassExpression, ConstructorInvocation, DereferenceExpression, DoubleLiteral, FloatLiteral, IntLiteral, LongLiteral, MethodInvocation, NullExpression, OperandFilterExpression, ParenthesisExpression, QueryExpression, ShortLiteral, StringLiteral, SuperConstructorInvocation, TableExpression, UnknownExpression, VariableExpression

public interface Expression
extends CodeFragment


Method Summary
 ExpressionContainer getContainer()
           
 PType getResultType()
           
 VariableManager getVariableManager()
           
 boolean isAssignable()
           
 void onRemove()
           
 void replaceWith(Expression expression)
           
 void setContainer(ExpressionContainer container)
           
 java.lang.String toString(java.lang.String indent)
           
 void visit(org.objectweb.asm.MethodVisitor mv, Frame frame, PClass clazz, boolean forAssignment)
           
 void visitAssignTo(org.objectweb.asm.MethodVisitor mv, Frame frame, PClass clazz)
           
 

Method Detail

getContainer

ExpressionContainer getContainer()

setContainer

void setContainer(ExpressionContainer container)

replaceWith

void replaceWith(Expression expression)

getVariableManager

VariableManager getVariableManager()

visit

void visit(org.objectweb.asm.MethodVisitor mv,
           Frame frame,
           PClass clazz,
           boolean forAssignment)
Parameters:
forAssignment - This indicates that the expression is evaluated to be assigned a value. In this case the last element should not be evaluated (e.g. obj.name should only push obj onto the stack, but to the value of "name".

visitAssignTo

void visitAssignTo(org.objectweb.asm.MethodVisitor mv,
                   Frame frame,
                   PClass clazz)

getResultType

PType getResultType()

toString

java.lang.String toString(java.lang.String indent)

isAssignable

boolean isAssignable()

onRemove

void onRemove()