Jode 1.90-CVS
Build Aug 6, 2004

net.sf.jode.expr
Class CheckNullOperator

java.lang.Object
  extended bynet.sf.jode.expr.Expression
      extended bynet.sf.jode.expr.Operator
          extended bynet.sf.jode.expr.CheckNullOperator

public class CheckNullOperator
extends Operator

This is a pseudo operator, which represents the check against null that jikes and javac generates for inner classes:

   outer.new Inner()
 
is translated by javac to
   new Outer$Inner(outer ((void) DUP.getClass()));
 
and by jikes to
   new Outer$Inner(outer (DUP == null ? throw null));
 


Field Summary
 
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
CheckNullOperator(Type type, LocalInfo li)
           
 
Method Summary
 void dumpExpression(TabbedPrintWriter writer)
           
 void fillDeclarables(java.util.Collection used)
           
 void fillInGenSet(java.util.Collection in, java.util.Collection gen)
           
 int getPriority()
          Get priority of the operator.
 boolean opEquals(Operator o)
           
 void removeLocal()
           
 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, getFreeOperandCount, getOperator, getOperatorIndex, getOperatorString, getSubExpressions, hasSideEffects, initOperands, isConstant, isFreeOperator, isFreeOperator, makeDeclaration, setOperatorIndex, setSubExpressions, simplify, subsEquals
 
Methods inherited from class net.sf.jode.expr.Expression
dumpExpression, dumpExpression, getBreakPenalty, getParent, getType, isVoid, makeInitializer, negate, removeOnetimeLocals, setType, simplifyString, simplifyStringBuffer, toString, updateParentType
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CheckNullOperator

public CheckNullOperator(Type type,
                         LocalInfo li)
Method Detail

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

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

removeLocal

public void removeLocal()

fillInGenSet

public void fillInGenSet(java.util.Collection in,
                         java.util.Collection gen)
Overrides:
fillInGenSet in class Operator

fillDeclarables

public void fillDeclarables(java.util.Collection used)
Overrides:
fillDeclarables in class Operator

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.