Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.puppycrawl.tools.checkstyle.checks.usage.transmogrify
Class Resolver  view Resolver download Resolver.java

java.lang.Object
  extended bycom.puppycrawl.tools.checkstyle.checks.usage.transmogrify.DefinitionTraverser
      extended bycom.puppycrawl.tools.checkstyle.checks.usage.transmogrify.Resolver

public class Resolver
extends DefinitionTraverser

The resolver is responsible for traversing all the various definitions in a symbol table and resolving references in them.


Field Summary
private  boolean mInitialized
          true if the log factory has been initialized
private  org.apache.commons.logging.LogFactory mLogFactory
          Factory for creating org.apache.commons.logging.Log instances
 
Fields inherited from class com.puppycrawl.tools.checkstyle.checks.usage.transmogrify.DefinitionTraverser
_symbolTable
 
Constructor Summary
Resolver(SymbolTable symbolTable)
          constructor with SymbolTable to be resolved
 
Method Summary
private  IClass binaryResultType(IClass a, IClass b)
          Returns the ClassDef for the type to which arithmetic expressions evaluate.
protected  void handleAnonymousInnerClass(AnonymousInnerClass innerClass)
           
private  void handleAssert(BlockDef block)
           
protected  void handleBlock(BlockDef block)
          processes a BlockDef and resolves references in it
private  void handleCatch(BlockDef block)
          processes a catch block and resolves references in it
protected  void handleClass(ClassDef classDef)
          processes a ClassDef and resolves references in it
private  void handleDoWhile(BlockDef block)
           
private  void handleFor(BlockDef block)
          processes a for loop and resolves references in it
private  void handleIf(BlockDef block)
          processes an if statement and resolves references in it
protected  void handleLabel(LabelDef label)
          processes a label and resolves references in it
protected  void handleMethod(MethodDef method)
          processes a MethodDef and resolves references in it
protected  void handleSList(SymTabAST node, Scope scope)
           
private  void handleSwitch(BlockDef block)
          processes a switch statement and resolves references in it
protected  void handleVariable(VariableDef variable)
          processes a variable definition and resolves references in it
private  void handleWhileAndSynchronized(BlockDef block)
          processes a while loop and resolves references in it
private  IClass moreGeneral(IClass a, IClass b)
           
private  boolean newIsConstructor(SymTabAST newNode)
           
 void resolve()
          resolves the symbol table
private  IClass resolveArithmeticExpression(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          Resolves an arithmetic expression.
private  IClass resolveArrayAccess(SymTabAST node, Scope location, IClass context, boolean referencePhase)
           
private  void resolveArrayInitializer(SymTabAST initializerNode, Scope location, IClass context, boolean referencePhase)
          Resolves a constructor call.
private  IClass resolveAssignment(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          resolves references in an assignment expression
private  IClass resolveBitwiseNot(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveBooleanExpression(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          Resolves a (binary) boolean expression.
private  IClass resolveBooleanLiteral(SymTabAST expression, Scope location, IClass context)
          Describe resolveBooleanLiteral method here.
private  IClass resolveBooleanUnary(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveCharLiteral(SymTabAST expression, Scope location, IClass context)
          Returns the ClassDef type of a character literal
 IClass resolveClass(SymTabAST expr, Scope location, IClass context, boolean referencePhase)
          resolves Class type expression
 IClass resolveClassIdent(SymTabAST expr, Scope location, IClass context, boolean referencePhase)
          resolves expression with JavaTokenTypes other than DOT
private  IClass resolveConstructor(SymTabAST constructor, Scope location, IClass context, boolean referencePhase)
          Resolves a constructor call.
private  IClass resolveDottedName(SymTabAST tree, Scope location, IClass context, boolean referencePhase)
          Resolves any dotted reference, returning the Scope identified by the reference.
 IClass resolveExpression(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          Resolves Java expressions, returning the type to which the expression evalutes.
private  IClass resolveGoto(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          resolves references in a a break statement
private  IClass resolveIdent(SymTabAST ident, Scope location, IClass context, boolean referencePhase)
          Resolves an IDENT node of an AST, creating the appropriate reference and returning the scope of the identifer.
private  IClass resolveInstanceOf(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          resolves references in an instanceof expression
private  IClass resolveLiteralClass()
           
private  IClass resolveLiteralSuper(SymTabAST superNode, Scope location, IClass context)
          resolves a literal "super"
private  IClass resolveLiteralThis(SymTabAST thisNode, Scope location, IClass context)
          resolves a literal "this"
private  IClass resolveMethod(SymTabAST methodNode, Scope location, IClass context, boolean referencePhase)
          Resolves a method call.
private  IClass resolveNew(SymTabAST newNode, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveNewArray(SymTabAST newNode, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveNumFloat(SymTabAST expression, Scope location, IClass context)
          Returns the ClassDef type of the float primitive type.
private  IClass resolveNumInt(SymTabAST expression, Scope location, IClass context)
          Returns the ClassDef of the int primitive type.
private  MethodSignature resolveParameters(SymTabAST elist, Scope location, IClass context, boolean referencePhase)
          Resolves the types found in a method call.
private  IClass resolvePrimitiveType(SymTabAST primitive, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveQuestion(SymTabAST question, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveShiftOperator(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveStringLiteral(SymTabAST expression, Scope location, IClass context)
          Returns the ClassDef type of a string literal
private  void resolveThrowExpression(SymTabAST throwNode, Scope location, IClass context, boolean referencePhase)
          Resolves a constructor call.
 IClass resolveType(SymTabAST expr, Scope location, IClass context, boolean referencePhase)
          resolves and expression of type TokenTypes.TYPE
private  IClass resolveTypecast(SymTabAST node, Scope location, IClass context, boolean referencePhase)
           
private  IClass resolveUnaryExpression(SymTabAST expression, Scope location, IClass context, boolean referencePhase)
          Resolves a unary expression.
 
Methods inherited from class com.puppycrawl.tools.checkstyle.checks.usage.transmogrify.DefinitionTraverser
handleDefaultConstructor, handlePackage, traverse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mInitialized

private boolean mInitialized
true if the log factory has been initialized


mLogFactory

private org.apache.commons.logging.LogFactory mLogFactory
Factory for creating org.apache.commons.logging.Log instances

Constructor Detail

Resolver

public Resolver(SymbolTable symbolTable)
constructor with SymbolTable to be resolved

Method Detail

resolve

public void resolve()
resolves the symbol table


handleSList

protected void handleSList(SymTabAST node,
                           Scope scope)

handleAnonymousInnerClass

protected void handleAnonymousInnerClass(AnonymousInnerClass innerClass)
Overrides:
handleAnonymousInnerClass in class DefinitionTraverser

handleClass

protected void handleClass(ClassDef classDef)
processes a ClassDef and resolves references in it

Overrides:
handleClass in class DefinitionTraverser

handleMethod

protected void handleMethod(MethodDef method)
processes a MethodDef and resolves references in it

Overrides:
handleMethod in class DefinitionTraverser

handleBlock

protected void handleBlock(BlockDef block)
processes a BlockDef and resolves references in it

Overrides:
handleBlock in class DefinitionTraverser

handleAssert

private void handleAssert(BlockDef block)

handleSwitch

private void handleSwitch(BlockDef block)
processes a switch statement and resolves references in it


handleCatch

private void handleCatch(BlockDef block)
processes a catch block and resolves references in it


handleFor

private void handleFor(BlockDef block)
processes a for loop and resolves references in it


handleIf

private void handleIf(BlockDef block)
processes an if statement and resolves references in it


handleWhileAndSynchronized

private void handleWhileAndSynchronized(BlockDef block)
processes a while loop and resolves references in it


handleDoWhile

private void handleDoWhile(BlockDef block)

handleVariable

protected void handleVariable(VariableDef variable)
processes a variable definition and resolves references in it

Overrides:
handleVariable in class DefinitionTraverser

handleLabel

protected void handleLabel(LabelDef label)
processes a label and resolves references in it

Overrides:
handleLabel in class DefinitionTraverser

resolveExpression

public IClass resolveExpression(SymTabAST expression,
                                Scope location,
                                IClass context,
                                boolean referencePhase)
Resolves Java expressions, returning the type to which the expression evalutes. If this is the reference creation phase, any references found during resolution are created and resolved.


resolveTypecast

private IClass resolveTypecast(SymTabAST node,
                               Scope location,
                               IClass context,
                               boolean referencePhase)

resolveArrayAccess

private IClass resolveArrayAccess(SymTabAST node,
                                  Scope location,
                                  IClass context,
                                  boolean referencePhase)

resolveLiteralClass

private IClass resolveLiteralClass()

resolveDottedName

private IClass resolveDottedName(SymTabAST tree,
                                 Scope location,
                                 IClass context,
                                 boolean referencePhase)
Resolves any dotted reference, returning the Scope identified by the reference.


resolveMethod

private IClass resolveMethod(SymTabAST methodNode,
                             Scope location,
                             IClass context,
                             boolean referencePhase)
Resolves a method call.


resolveLiteralThis

private IClass resolveLiteralThis(SymTabAST thisNode,
                                  Scope location,
                                  IClass context)
resolves a literal "this"


resolveLiteralSuper

private IClass resolveLiteralSuper(SymTabAST superNode,
                                   Scope location,
                                   IClass context)
resolves a literal "super"


newIsConstructor

private boolean newIsConstructor(SymTabAST newNode)

resolveType

public IClass resolveType(SymTabAST expr,
                          Scope location,
                          IClass context,
                          boolean referencePhase)
resolves and expression of type TokenTypes.TYPE


resolveClass

public IClass resolveClass(SymTabAST expr,
                           Scope location,
                           IClass context,
                           boolean referencePhase)
resolves Class type expression


resolveClassIdent

public IClass resolveClassIdent(SymTabAST expr,
                                Scope location,
                                IClass context,
                                boolean referencePhase)
resolves expression with JavaTokenTypes other than DOT


resolveNew

private IClass resolveNew(SymTabAST newNode,
                          Scope location,
                          IClass context,
                          boolean referencePhase)

resolveNewArray

private IClass resolveNewArray(SymTabAST newNode,
                               Scope location,
                               IClass context,
                               boolean referencePhase)

resolveQuestion

private IClass resolveQuestion(SymTabAST question,
                               Scope location,
                               IClass context,
                               boolean referencePhase)

moreGeneral

private IClass moreGeneral(IClass a,
                           IClass b)

resolveConstructor

private IClass resolveConstructor(SymTabAST constructor,
                                  Scope location,
                                  IClass context,
                                  boolean referencePhase)
Resolves a constructor call.


resolveParameters

private MethodSignature resolveParameters(SymTabAST elist,
                                          Scope location,
                                          IClass context,
                                          boolean referencePhase)
Resolves the types found in a method call. Any references found in the process are created. Returns a MethodSignature for the types of the parameters.


resolveIdent

private IClass resolveIdent(SymTabAST ident,
                            Scope location,
                            IClass context,
                            boolean referencePhase)
Resolves an IDENT node of an AST, creating the appropriate reference and returning the scope of the identifer.


resolveBooleanExpression

private IClass resolveBooleanExpression(SymTabAST expression,
                                        Scope location,
                                        IClass context,
                                        boolean referencePhase)
Resolves a (binary) boolean expression. The left and right sides of the expression are resolved in the process.


resolveAssignment

private IClass resolveAssignment(SymTabAST expression,
                                 Scope location,
                                 IClass context,
                                 boolean referencePhase)
resolves references in an assignment expression


resolveUnaryExpression

private IClass resolveUnaryExpression(SymTabAST expression,
                                      Scope location,
                                      IClass context,
                                      boolean referencePhase)
Resolves a unary expression. Returns the type of the expression, creating any references found along the way. Unary expressions are increment (x++), decrement (x--), unary plus (+x), and unary minus (-x)


resolveArithmeticExpression

private IClass resolveArithmeticExpression(SymTabAST expression,
                                           Scope location,
                                           IClass context,
                                           boolean referencePhase)
Resolves an arithmetic expression. Returns the Scope for the type to which the expression resolves. Any references found during resolution are created and resolved.


binaryResultType

private IClass binaryResultType(IClass a,
                                IClass b)
Returns the ClassDef for the type to which arithmetic expressions evaluate.


resolveInstanceOf

private IClass resolveInstanceOf(SymTabAST expression,
                                 Scope location,
                                 IClass context,
                                 boolean referencePhase)
resolves references in an instanceof expression


resolveGoto

private IClass resolveGoto(SymTabAST expression,
                           Scope location,
                           IClass context,
                           boolean referencePhase)
resolves references in a a break statement


resolvePrimitiveType

private IClass resolvePrimitiveType(SymTabAST primitive,
                                    Scope location,
                                    IClass context,
                                    boolean referencePhase)

resolveNumInt

private IClass resolveNumInt(SymTabAST expression,
                             Scope location,
                             IClass context)
Returns the ClassDef of the int primitive type. This may need to be amended, based on the Java Language spec, to return a long if the literal is larger than an int can hold.


resolveNumFloat

private IClass resolveNumFloat(SymTabAST expression,
                               Scope location,
                               IClass context)
Returns the ClassDef type of the float primitive type. This may need to be amended, based on the Java Language spec, to return a double if the literal is larger than a float can hold.


resolveStringLiteral

private IClass resolveStringLiteral(SymTabAST expression,
                                    Scope location,
                                    IClass context)
Returns the ClassDef type of a string literal


resolveCharLiteral

private IClass resolveCharLiteral(SymTabAST expression,
                                  Scope location,
                                  IClass context)
Returns the ClassDef type of a character literal


resolveBooleanLiteral

private IClass resolveBooleanLiteral(SymTabAST expression,
                                     Scope location,
                                     IClass context)
Describe resolveBooleanLiteral method here.


resolveBooleanUnary

private IClass resolveBooleanUnary(SymTabAST expression,
                                   Scope location,
                                   IClass context,
                                   boolean referencePhase)

resolveArrayInitializer

private void resolveArrayInitializer(SymTabAST initializerNode,
                                     Scope location,
                                     IClass context,
                                     boolean referencePhase)
Resolves a constructor call.


resolveThrowExpression

private void resolveThrowExpression(SymTabAST throwNode,
                                    Scope location,
                                    IClass context,
                                    boolean referencePhase)
Resolves a constructor call.


resolveShiftOperator

private IClass resolveShiftOperator(SymTabAST expression,
                                    Scope location,
                                    IClass context,
                                    boolean referencePhase)

resolveBitwiseNot

private IClass resolveBitwiseNot(SymTabAST expression,
                                 Scope location,
                                 IClass context,
                                 boolean referencePhase)