dk.brics.xact.analysis.soot
Class ExprAnswerVisitor<Q,A>

java.lang.Object
  extended by dk.brics.xact.analysis.soot.ExprAnswerVisitor<Q,A>
Type Parameters:
Q - the visit method's auxillary parameter type
A - the visit method's return type
Direct Known Subclasses:
Translator

public abstract class ExprAnswerVisitor<Q,A>
extends Object

Jimple visitor pattern that takes an auxillary parameter and has a return value.

To use it, a class should extend this and override the desired case methods. The visitor can then be applied with the applyTo(Switchable, Object) method.


Constructor Summary
ExprAnswerVisitor()
           
 
Method Summary
 A applyTo(Switchable sw, Q question)
          Applies the visitor to the specified Jimple object.
 A caseAddExpr(AddExpr v, Q question)
           
 A caseAndExpr(AndExpr v, Q question)
           
 A caseArrayRef(ArrayRef v, Q question)
           
 A caseCastExpr(CastExpr v, Q question)
           
 A caseCaughtExceptionRef(CaughtExceptionRef v, Q question)
           
 A caseClassConstant(ClassConstant v, Q question)
           
 A caseCmpExpr(CmpExpr v, Q question)
           
 A caseCmpgExpr(CmpgExpr v, Q question)
           
 A caseCmplExpr(CmplExpr v, Q question)
           
 A caseDivExpr(DivExpr v, Q question)
           
 A caseDoubleConstant(DoubleConstant v, Q question)
           
 A caseEqExpr(EqExpr v, Q question)
           
 A caseFloatConstant(FloatConstant v, Q question)
           
 A caseGeExpr(GeExpr v, Q question)
           
 A caseGtExpr(GtExpr v, Q question)
           
 A caseInstanceFieldRef(InstanceFieldRef v, Q question)
           
 A caseInstanceOfExpr(InstanceOfExpr v, Q question)
           
 A caseIntConstant(IntConstant v, Q question)
           
 A caseInterfaceInvokeExpr(InterfaceInvokeExpr v, Q question)
           
 A caseLeExpr(LeExpr v, Q question)
           
 A caseLengthExpr(LengthExpr v, Q question)
           
 A caseLocal(Local v, Q question)
           
 A caseLongConstant(LongConstant v, Q question)
           
 A caseLtExpr(LtExpr v, Q question)
           
 A caseMulExpr(MulExpr v, Q question)
           
 A caseNeExpr(NeExpr v, Q question)
           
 A caseNegExpr(NegExpr v, Q question)
           
 A caseNewArrayExpr(NewArrayExpr v, Q question)
           
 A caseNewExpr(NewExpr v, Q question)
           
 A caseNewMultiArrayExpr(NewMultiArrayExpr v, Q question)
           
 A caseNullConstant(NullConstant v, Q question)
           
 A caseOrExpr(OrExpr v, Q question)
           
 A caseParameterRef(ParameterRef v, Q question)
           
 A caseRemExpr(RemExpr v, Q question)
           
 A caseShlExpr(ShlExpr v, Q question)
           
 A caseShrExpr(ShrExpr v, Q question)
           
 A caseSpecialInvokeExpr(SpecialInvokeExpr v, Q question)
           
 A caseStaticFieldRef(StaticFieldRef v, Q question)
           
 A caseStaticInvokeExpr(StaticInvokeExpr v, Q question)
           
 A caseStringConstant(StringConstant v, Q question)
           
 A caseSubExpr(SubExpr v, Q question)
           
 A caseThisRef(ThisRef v, Q question)
           
 A caseUshrExpr(UshrExpr v, Q question)
           
 A caseVirtualInvokeExpr(VirtualInvokeExpr v, Q question)
           
 A caseXorExpr(XorExpr v, Q question)
           
 A defaultExpr(Object v, Q question)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExprAnswerVisitor

public ExprAnswerVisitor()
Method Detail

applyTo

public final A applyTo(Switchable sw,
                       Q question)
Applies the visitor to the specified Jimple object.

Parameters:
sw - a Jimple object to visit.
question - argument to pass as question to the corresponding caseXXX implementation.
Returns:
value returned by the corresponding caseXXX implementation, or null if the subclass did not override it.

caseAddExpr

public A caseAddExpr(AddExpr v,
                     Q question)

caseAndExpr

public A caseAndExpr(AndExpr v,
                     Q question)

caseArrayRef

public A caseArrayRef(ArrayRef v,
                      Q question)

caseCastExpr

public A caseCastExpr(CastExpr v,
                      Q question)

caseCaughtExceptionRef

public A caseCaughtExceptionRef(CaughtExceptionRef v,
                                Q question)

caseClassConstant

public A caseClassConstant(ClassConstant v,
                           Q question)

caseCmpExpr

public A caseCmpExpr(CmpExpr v,
                     Q question)

caseCmpgExpr

public A caseCmpgExpr(CmpgExpr v,
                      Q question)

caseCmplExpr

public A caseCmplExpr(CmplExpr v,
                      Q question)

caseDivExpr

public A caseDivExpr(DivExpr v,
                     Q question)

caseDoubleConstant

public A caseDoubleConstant(DoubleConstant v,
                            Q question)

caseEqExpr

public A caseEqExpr(EqExpr v,
                    Q question)

caseFloatConstant

public A caseFloatConstant(FloatConstant v,
                           Q question)

caseGeExpr

public A caseGeExpr(GeExpr v,
                    Q question)

caseGtExpr

public A caseGtExpr(GtExpr v,
                    Q question)

caseInstanceFieldRef

public A caseInstanceFieldRef(InstanceFieldRef v,
                              Q question)

caseInstanceOfExpr

public A caseInstanceOfExpr(InstanceOfExpr v,
                            Q question)

caseIntConstant

public A caseIntConstant(IntConstant v,
                         Q question)

caseInterfaceInvokeExpr

public A caseInterfaceInvokeExpr(InterfaceInvokeExpr v,
                                 Q question)

caseLeExpr

public A caseLeExpr(LeExpr v,
                    Q question)

caseLengthExpr

public A caseLengthExpr(LengthExpr v,
                        Q question)

caseLocal

public A caseLocal(Local v,
                   Q question)

caseLongConstant

public A caseLongConstant(LongConstant v,
                          Q question)

caseLtExpr

public A caseLtExpr(LtExpr v,
                    Q question)

caseMulExpr

public A caseMulExpr(MulExpr v,
                     Q question)

caseNeExpr

public A caseNeExpr(NeExpr v,
                    Q question)

caseNegExpr

public A caseNegExpr(NegExpr v,
                     Q question)

caseNewArrayExpr

public A caseNewArrayExpr(NewArrayExpr v,
                          Q question)

caseNewExpr

public A caseNewExpr(NewExpr v,
                     Q question)

caseNewMultiArrayExpr

public A caseNewMultiArrayExpr(NewMultiArrayExpr v,
                               Q question)

caseNullConstant

public A caseNullConstant(NullConstant v,
                          Q question)

caseOrExpr

public A caseOrExpr(OrExpr v,
                    Q question)

caseParameterRef

public A caseParameterRef(ParameterRef v,
                          Q question)

caseRemExpr

public A caseRemExpr(RemExpr v,
                     Q question)

caseShlExpr

public A caseShlExpr(ShlExpr v,
                     Q question)

caseShrExpr

public A caseShrExpr(ShrExpr v,
                     Q question)

caseSpecialInvokeExpr

public A caseSpecialInvokeExpr(SpecialInvokeExpr v,
                               Q question)

caseStaticFieldRef

public A caseStaticFieldRef(StaticFieldRef v,
                            Q question)

caseStaticInvokeExpr

public A caseStaticInvokeExpr(StaticInvokeExpr v,
                              Q question)

caseStringConstant

public A caseStringConstant(StringConstant v,
                            Q question)

caseSubExpr

public A caseSubExpr(SubExpr v,
                     Q question)

caseThisRef

public A caseThisRef(ThisRef v,
                     Q question)

caseUshrExpr

public A caseUshrExpr(UshrExpr v,
                      Q question)

caseVirtualInvokeExpr

public A caseVirtualInvokeExpr(VirtualInvokeExpr v,
                               Q question)

caseXorExpr

public A caseXorExpr(XorExpr v,
                     Q question)

defaultExpr

public A defaultExpr(Object v,
                     Q question)


Copyright © 2005-2011 Aarhus University.