Jode 1.90-CVS
Build Aug 6, 2004

net.sf.jode.expr
Class InvokeOperator

java.lang.Object
  extended bynet.sf.jode.expr.Expression
      extended bynet.sf.jode.expr.Operator
          extended bynet.sf.jode.expr.InvokeOperator
All Implemented Interfaces:
MatchableOperator

public final class InvokeOperator
extends Operator
implements MatchableOperator


Field Summary
static int ACCESSSPECIAL
           
static int CONSTRUCTOR
           
static int SPECIAL
           
static int STATIC
           
static int VIRTUAL
           
 
Fields inherited from class net.sf.jode.expr.Operator
ADD_OP, AND_OP, ASSIGN_OP, COMPARE_OP, DEC_OP, EQUALS_OP, GREATER_OP, GREATEREQ_OP, INC_OP, LESS_OP, LESSEQ_OP, LOG_AND_OP, LOG_NOT_OP, LOG_OR_OP, NEG_OP, NOTEQUALS_OP, OPASSIGN_OP, operatorIndex, SHIFT_OP, SUB_OP
 
Fields inherited from class net.sf.jode.expr.Expression
EMPTYSTRING, type
 
Constructor Summary
InvokeOperator(MethodAnalyzer methodAnalyzer, int methodFlag, Reference reference)
           
 
Method Summary
 void checkAnonymousClasses()
           
 ConstOperator deobfuscateString(ConstOperator op)
           
 void dumpExpression(TabbedPrintWriter writer)
           
 void fillDeclarables(java.util.Collection used)
          We add the named method scoped classes to the declarables, and only fillDeclarables on the parameters we will print.
 int getBreakPenalty()
          Get the penalty for splitting up this operator.
 ClassAnalyzer getClassAnalyzer()
          Tries to locate the class analyzer for the callee class.
 ClassInfo getClassInfo()
           
 ClassPath getClassPath()
           
 Type getClassType()
           
 MethodAnalyzer getMethodAnalyzer()
          Tries to locate the method analyzer for the callee.
 MethodInfo getMethodInfo()
           
 java.lang.String getMethodName()
           
 MethodType getMethodType()
           
 int getPriority()
          Get priority of the operator.
 boolean isConstant()
           
 boolean isConstructor()
           
 boolean isGetClass()
          Checks if the method is the magic class$ method.
 boolean isOuter()
          Checks, whether this is a call of a method from this class or an outer instance.
 boolean isStatic()
           
 boolean isSuperOrThis()
          Checks, whether this is a call of a method from the super class.
 boolean isThis()
          Checks, whether this is a call of a method from this class.
 void makeDeclaration(java.util.Set done)
          We add the named method scoped classes to the declarables, and only fillDeclarables on the parameters we will print.
 void makeNonVoid()
          Makes a non void expression, in case this is a constructor.
 boolean matches(Operator loadop)
          Checks if the value of the operator can be changed by this expression.
 boolean needsCast(int param, Type[] paramTypes)
           
 boolean opEquals(Operator o)
           
 Expression simplify()
           
 Expression simplifyAccess()
           
 Expression simplifyString()
           
 Expression simplifyStringBuffer()
           
 void updateSubTypes()
          Tells an expression that an outer expression has changed our type and that the inner types should be recalculated.
 void updateType()
          Tells an expression that an inner expression may have changed and that the type should be recalculated.
 
Methods inherited from class net.sf.jode.expr.Operator
addOperand, canCombine, combine, containsConflictingLoad, containsMatchingLoad, equals, fillInGenSet, getFreeOperandCount, getOperator, getOperatorIndex, getOperatorString, getSubExpressions, hasSideEffects, initOperands, isFreeOperator, isFreeOperator, setOperatorIndex, setSubExpressions, subsEquals
 
Methods inherited from class net.sf.jode.expr.Expression
dumpExpression, dumpExpression, getParent, getType, isVoid, makeInitializer, negate, removeOnetimeLocals, setType, toString, updateParentType
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

VIRTUAL

public static final int VIRTUAL
See Also:
Constant Field Values

SPECIAL

public static final int SPECIAL
See Also:
Constant Field Values

STATIC

public static final int STATIC
See Also:
Constant Field Values

CONSTRUCTOR

public static final int CONSTRUCTOR
See Also:
Constant Field Values

ACCESSSPECIAL

public static final int ACCESSSPECIAL
See Also:
Constant Field Values
Constructor Detail

InvokeOperator

public InvokeOperator(MethodAnalyzer methodAnalyzer,
                      int methodFlag,
                      Reference reference)
Method Detail

getClassPath

public final ClassPath getClassPath()

isStatic

public final boolean isStatic()

getMethodType

public MethodType getMethodType()

getMethodName

public java.lang.String getMethodName()

getMethodInfo

public MethodInfo getMethodInfo()

getClassType

public Type getClassType()

getPriority

public int getPriority()
Description copied from class: Expression
Get priority of the operator. Currently this priorities are known:

Specified by:
getPriority in class Expression

checkAnonymousClasses

public void checkAnonymousClasses()

updateSubTypes

public void updateSubTypes()
Description copied from class: Expression
Tells an expression that an outer expression has changed our type and that the inner types should be recalculated.

Specified by:
updateSubTypes in class Expression

updateType

public void updateType()
Description copied from class: Expression
Tells an expression that an inner expression may have changed and that the type should be recalculated. This may call setType of the caller again.

Specified by:
updateType in class Expression

makeNonVoid

public void makeNonVoid()
Makes a non void expression, in case this is a constructor.


isConstructor

public boolean isConstructor()

getClassInfo

public ClassInfo getClassInfo()

isThis

public boolean isThis()
Checks, whether this is a call of a method from this class.


getClassAnalyzer

public ClassAnalyzer getClassAnalyzer()
Tries to locate the class analyzer for the callee class. This is mainly useful for inner and anonymous classes.

Returns:
The class analyzer, if the callee class is declared inside the same base class as the caller class, null otherwise.

isOuter

public boolean isOuter()
Checks, whether this is a call of a method from this class or an outer instance.


getMethodAnalyzer

public MethodAnalyzer getMethodAnalyzer()
Tries to locate the method analyzer for the callee. This is mainly useful for inner and anonymous classes.

Returns:
The method analyzer, if the callee is declared inside the same base class as the caller class, null otherwise.

isSuperOrThis

public boolean isSuperOrThis()
Checks, whether this is a call of a method from the super class.


isConstant

public boolean isConstant()
Overrides:
isConstant in class Operator

matches

public boolean matches(Operator loadop)
Checks if the value of the operator can be changed by this expression.

Specified by:
matches in interface MatchableOperator

isGetClass

public boolean isGetClass()
Checks if the method is the magic class$ method.

Returns:
true if this is the magic class$ method, false otherwise.

deobfuscateString

public ConstOperator deobfuscateString(ConstOperator op)

simplifyStringBuffer

public Expression simplifyStringBuffer()
Overrides:
simplifyStringBuffer in class Expression

simplifyString

public Expression simplifyString()
Overrides:
simplifyString in class Expression

simplifyAccess

public Expression simplifyAccess()

needsCast

public boolean needsCast(int param,
                         Type[] paramTypes)

simplify

public Expression simplify()
Overrides:
simplify in class Operator

fillDeclarables

public void fillDeclarables(java.util.Collection used)
We add the named method scoped classes to the declarables, and only fillDeclarables on the parameters we will print.

Overrides:
fillDeclarables in class Operator

makeDeclaration

public void makeDeclaration(java.util.Set done)
We add the named method scoped classes to the declarables, and only fillDeclarables on the parameters we will print.

Overrides:
makeDeclaration in class Operator

getBreakPenalty

public int getBreakPenalty()
Description copied from class: Expression
Get the penalty for splitting up this operator.

Overrides:
getBreakPenalty in class Expression

dumpExpression

public void dumpExpression(TabbedPrintWriter writer)
                    throws java.io.IOException
Specified by:
dumpExpression in class Operator
Throws:
java.io.IOException

opEquals

public boolean opEquals(Operator o)
Overrides:
opEquals in class Operator

Jode 1.90-CVS
Build Aug 6, 2004

Copyright © 1998-2004 by Jochen Hoenicke.