|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.rice.cs.javalanglevels.JExpressionIFPrunableDepthFirstVisitor
edu.rice.cs.javalanglevels.LanguageLevelVisitor
public class LanguageLevelVisitor
Top-level Language Level Visitor that implements the constraint checking and symbol table building that is common to first pass processing for the Functional and FullJava levels. There are two major complications in performing this pass. First, references to symbols appear in the signatures of type (class/interface) definitions that have not yet been defined. In the symbol table, the binding of these references must be deferred until a fixup list is executed after the first pass visit has finished. This visitor and its descendants maintain a FixUp list for this purpose. Second, the loading of signature information into the symbol table (called "resolving" in this documentation) is deferred for some symbols. A dummy entry called a "continuation" is created in the symbol table for each such symbol.
| Nested Class Summary | |
|---|---|
static class |
LanguageLevelVisitor.LanguageLevelVisitorTest
Test the methods defined in the above class. |
| Field Summary | |
|---|---|
HashMap<String,SymbolData> |
_genericTypes
|
protected static Log |
_log
|
protected static LinkedList<Pair<String,JExpressionIF>> |
errors
Errors we have encountered during this pass: string is the text of the error, JExpressionIF is the part of the AST where the error occurs. |
static ModifiersAndVisibility |
FINAL_MAV
|
static ModifiersAndVisibility |
PACKAGE_MAV
|
static ModifiersAndVisibility |
PRIVATE_MAV
|
static ModifiersAndVisibility |
PROTECTED_MAV
|
static ModifiersAndVisibility |
PUBLIC_MAV
|
Symboltable |
symbolTable
Stores the classes we have referenced, and all their information, once they are resolved. |
| Constructor Summary | |
|---|---|
LanguageLevelVisitor(File file,
String packageName,
String enclosingClassName,
LinkedList<String> importedFiles,
LinkedList<String> importedPackages,
HashSet<String> classesInThisFile,
Hashtable<String,Triple<SourceInfo,LanguageLevelVisitor,SymbolData>> continuations,
LinkedList<Command> fixUps)
This constructor is used only in testing. |
|
LanguageLevelVisitor(File file,
String packageName,
String enclosingClassName,
LinkedList<String> importedFiles,
LinkedList<String> importedPackages,
HashSet<String> classesInThisFile,
Hashtable<String,Triple<SourceInfo,LanguageLevelVisitor,SymbolData>> continuations,
LinkedList<Command> fixUps,
HashMap<String,SymbolData> genericTypes)
This constructor is called from the subclasses of LanguageLevelVisitor. |
|
| Method Summary | |
|---|---|
protected static void |
_addAndIgnoreError(String message,
JExpressionIF that)
This method is called when an error should be added, but tree-walking should continue on this construct. |
protected static void |
_addError(String message,
JExpressionIF that)
This method is called when an error should be added to the static LinkedList of errors. |
void |
_badModifiers(String first,
String second,
JExpressionIF that)
Add an error explaining the modifiers' conflict. |
protected static boolean |
_checkError()
If _errorAdded is true, set it back to false and return true. |
protected SymbolData |
_getSymbolDataFromFileSystem(String qualifiedClassName,
SourceInfo si,
boolean resolve,
boolean addError)
Checks the file system for the class name, returning the corresponding SymbolData if there is an up-to-date match. |
protected SymbolData |
_identifyType(String name,
SourceInfo si,
String enclosingClassName)
Identifies the SymbolData matching name in symbolTable. |
protected SymbolData |
_lookupTypeFromWithinClass(ReferenceType rt,
String qualifiedClassName)
Looks up the type with name rt (which is arbitrary source text for a type) from within the class name qualifiedClassName. |
protected void |
_resetNonStaticFields()
|
protected VariableData[] |
_variableDeclaration2VariableData(VariableDeclaration vd,
Data enclosing)
This method assumes that the modifiers for this particular VariableDeclaration have already been checked. |
protected static void |
addGeneratedMethod(SymbolData sd,
MethodData md)
If the method being generated already exists in the SymbolData, throw an error, because generated methods cannot be overwritten. |
protected SymbolData |
addInnerSymbolData(SourceInfo si,
String qualifiedTypeName,
Data enclosing)
|
void |
anonymousClassInstantiationHelper(AnonymousClassInstantiation that,
SymbolData enclosing,
String superName)
Do the common work for SimpleAnonymousClassInstantiations and ComplexAnonymousClassInstantiations and in FullJava and Functional Java. |
static boolean |
arrayEquals(Object[] array1,
Object[] array2)
Determines whether array1 equals array2 using the equals method on Object[] arrays in java.util.Arrays. |
protected static void |
createAccessors(SymbolData sd,
File file)
Create a method that is an accessor for each field in the class. |
void |
createConstructor(SymbolData sd)
Creates the automatically generated constructor for this class. |
protected void |
createEquals(SymbolData sd)
Creates a method called equals() that takes in an Object argument and returns a boolean. |
protected void |
createHashCode(SymbolData sd)
Creates a method called hashCode that returns an int. |
protected SymbolData |
createImportedSymbolContinuation(String qualifiedTypeName,
SourceInfo si)
Create a continuation for imported class specified by qualifiedName if one does not already exist. |
protected MethodData |
createMethodData(MethodDef that,
SymbolData sd)
Creates a MethodData corresponding to the MethodDef within the context of the SymbolData sd. |
protected void |
createToString(SymbolData sd)
Create a method called toString that returns type String. |
protected SymbolData |
defineAnonymousSymbolData(AnonymousClassInstantiation anonInst,
String qualifiedAnonName,
String superName)
This method takes in an AnonymousClassInstantion, generates a SymbolData for it, and adds the name and SymbolData pair to the symbol table. |
ArrayData |
defineArraySymbolData(SymbolData eltSd,
LanguageLevelVisitor llv,
SourceInfo si)
|
protected SymbolData |
defineInnerSymbolData(TypeDefBase typeDefBase,
String relName,
String qualifiedTypeName,
Data enclosing)
Takes in a TypeDefBase (which is either an InnerClassDef or an InnerInterfaceDef) and creates a SymbolData for it, either by converting a continuation to it or by creating a new symbol (if no continuationis present). |
protected SymbolData |
defineSymbolData(TypeDefBase typeDefBase,
String qualifiedTypeName)
Overloaded signature for defineSymbolData. |
protected SymbolData |
defineSymbolData(TypeDefBase typeDefBase,
String qualifiedTypeName,
String enclosingClassName)
Given a TypeDefBase (which is either a ClassDef or an InterfaceDef) and the corresponding qualifiedTypeName, this method generates a SymbolData, and adds the name and SymbolData pair to the symbol table. |
Void |
forAbstractMethodDefDoFirst(AbstractMethodDef that)
Makes sure that this abstract method def is not declared to be static. |
Void |
forBitwiseAndExpressionDoFirst(BitwiseAndExpression that)
|
Void |
forBitwiseAssignmentExpressionDoFirst(BitwiseAssignmentExpression that)
|
Void |
forBitwiseBinaryExpressionDoFirst(BitwiseBinaryExpression that)
|
Void |
forBitwiseNotExpressionDoFirst(BitwiseNotExpression that)
|
Void |
forBitwiseNotExpressionDoFirst(ShiftBinaryExpression that)
|
Void |
forBitwiseOrExpressionDoFirst(BitwiseOrExpression that)
|
Void |
forBitwiseXorExpressionDoFirst(BitwiseXorExpression that)
|
Void |
forClassDefDoFirst(ClassDef that)
Check for problems in ClassDefs. |
Void |
forClassImportStatementOnly(ClassImportStatement that)
Make sure the class being imported has not already been imported. |
Void |
forComplexNameReference(ComplexNameReference that)
Call the ResolveNameVisitor to see if this is a reference to a Type name. |
Void |
forConcreteMethodDefDoFirst(ConcreteMethodDef that)
Makes sure that this concrete method def is not declared to be abstract. |
Void |
forEmptyExpressionDoFirst(EmptyExpression that)
The EmptyExpression is a sign of an error. |
Void |
forInnerInterfaceDefDoFirst(InnerInterfaceDef that)
Check for problems with InnerInterfaceDefs that are common to all language levels: specifically, they cannot be final. |
Void |
forInterfaceDefDoFirst(InterfaceDef that)
Check for problems with InterfaceDefs: specifically, top level interfaces cannot be private or final. |
protected VariableData[] |
formalParameters2VariableData(FormalParameter[] fps,
SymbolData enclosing)
Convert the specified array of FormalParameters into an array of VariableDatas which is then returned. |
Void |
forMemberType(MemberType that)
This is overwritten because we don't want to visit each half of MemberType recursively. |
Void |
forModifiersAndVisibilityDoFirst(ModifiersAndVisibility that)
Check for problems with modifiers that are common to all language levels: duplicate modifiers and illegal combinations of modifiers. |
Void |
forNoOpExpressionDoFirst(NoOpExpression that)
The NoOp expression signifies a missing binary operator that was encountered when the parser built the AST. |
Void |
forPackageImportStatementOnly(PackageImportStatement that)
Check to make sure that this package import statement is not trying to import the current pacakge. |
Void |
forPackageStatementOnly(PackageStatement that)
This sets the package name field in order to find other classes in the same package. |
Void |
forShiftAssignmentExpressionDoFirst(ShiftAssignmentExpression that)
Bitwise operators are allowed in Full Java |
Void |
forShiftBinaryExpressionDoFirst(ShiftBinaryExpression that)
|
Void |
forSimpleNamedClassInstantiation(SimpleNamedClassInstantiation that)
Try to resolve the type of the instantiation, and make sure there are no errors |
Void |
forSimpleNameReference(SimpleNameReference that)
Call the ResolveNameVisitor to see if this is a reference to a Type name. |
Void |
forSourceFile(SourceFile that)
Check to make sure there aren't any immediate errors in this SourceFile by calling the doFirst method. |
Void |
forSourceFileDoFirst(SourceFile that)
If a ClassDef defined in this source file is a TestCase class, make sure it is the only thing in the file. |
Void |
forStringLiteralOnly(StringLiteral that)
Return the SymbolData for java.lang.String by default |
Void |
forVariableDeclaration(VariableDeclaration that)
Do nothing. |
static String |
getFieldAccessorName(String name)
|
File |
getFile()
|
protected String[] |
getFormalParameterMav(Data d)
This method is factored out of formalParameters2VariableData so it can be overridden in FullJavaVisitor. |
protected String |
getQualifiedClassName(String className)
The Qualified Class Name is the package, followed by a dot, followed by the rest of the class name. |
static String |
getQualifiedClassName(String pkg,
String className)
If the specified package pkg is empty or pkg is a prefix of className, return className. |
protected SymbolData |
getQualifiedSymbolData(String qualClassName)
Tries to find (or in some cases creates) the SymbolData for the fiven fully qualified class name. |
protected SymbolData |
getQualifiedSymbolData(String qualClassName,
SourceInfo si)
Tries to find (or in some cases creates) the SymbolData for the fiven fully qualified class name. |
protected SymbolData |
getQualifiedSymbolData(String qualClassName,
SourceInfo si,
boolean resolve)
This method tries to find (or in some cases creates) the SymbolData for the fiven fully qualified class name. |
protected SymbolData |
getQualifiedSymbolData(String qualClassName,
SourceInfo si,
boolean resolve,
boolean fromClassFile,
boolean addError)
This method tries to find (or in some cases creates) the SymbolData for the fiven fully qualified class name or class name. |
protected SymbolData |
getSymbolData(File file,
String pkg,
LinkedList<String> importedFiles,
LinkedList<String> importedPackages,
String enclosingClassName,
String className,
SourceInfo si,
boolean addError,
boolean checkImports)
This method processes classNames which may or may not include qualifying prefixes. |
SymbolData |
getSymbolData(String className,
SourceInfo si)
Call getSymbolData with some default values. |
protected SymbolData |
getSymbolData(String className,
SourceInfo si,
boolean addError)
Call getSymbolData with some default values. |
protected SymbolData |
getSymbolData(String className,
SourceInfo si,
boolean addError,
boolean checkImports)
Simple signature for getSymbol that uses the current context to fill in context information, i.e., it passes _file for file, _package for pkg, _importedFiles for importedFiles, _importedPackages for importedPackages, and _enclosingClass for enclosingClassName. |
protected SymbolData |
getSymbolData(TypeData lhs,
String name,
SourceInfo si,
boolean addError)
Try to look up name from the context of the lhs. |
static String |
getUnqualifiedClassName(String className)
Takes a classname and returns only the final segment of it. |
protected void |
identifyInnerClasses(TypeDefBase that)
Processes the class body that. |
protected boolean |
isConstructor(Data d)
|
static boolean |
isDuplicateVariableData(LinkedList<VariableData> vds,
VariableData toInsert)
|
static boolean |
isJavaLibraryClass(String className)
Check to see if the specified classname is the name of a fully qualified java library class. |
protected SymbolData |
makeContinuation(SourceInfo si,
String qualClassName)
This method creates the specified continuation in the symbol table. |
LanguageLevelVisitor |
newClassBodyVisitor(SymbolData anonSD,
String anonName)
Factory method that constructs an appropriate class body visitor for this visitor class (either ClassBodyIntermediateVisitor or ClassBodyFullJavaVisitor). |
protected boolean |
prune(JExpressionIF node)
|
protected static String[] |
referenceType2String(ReferenceType[] rts)
Convert the ReferenceType[] to a String[] with the names of the ReferenceTypes. |
SymbolData |
resolveSymbol(SourceInfo si,
SymbolData cont)
Resolves the continuation cont. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final ModifiersAndVisibility PUBLIC_MAV
public static final ModifiersAndVisibility PROTECTED_MAV
public static final ModifiersAndVisibility PRIVATE_MAV
public static final ModifiersAndVisibility PACKAGE_MAV
public static final ModifiersAndVisibility FINAL_MAV
protected static LinkedList<Pair<String,JExpressionIF>> errors
public final Symboltable symbolTable
public HashMap<String,SymbolData> _genericTypes
protected static final Log _log
| Constructor Detail |
|---|
public LanguageLevelVisitor(File file,
String packageName,
String enclosingClassName,
LinkedList<String> importedFiles,
LinkedList<String> importedPackages,
HashSet<String> classesInThisFile,
Hashtable<String,Triple<SourceInfo,LanguageLevelVisitor,SymbolData>> continuations,
LinkedList<Command> fixUps,
HashMap<String,SymbolData> genericTypes)
file - The File corresponding to the source file we are visitingpackageName - The name of the package corresponding to the fileimportedFiles - The list of files (classes) imported by this source fileimportedPackages - The list of packages imported by this source fileclassesInThisFile - The list of names of classes defined in this filecontinuations - The table of classes we have encountered but still need to resolve
public LanguageLevelVisitor(File file,
String packageName,
String enclosingClassName,
LinkedList<String> importedFiles,
LinkedList<String> importedPackages,
HashSet<String> classesInThisFile,
Hashtable<String,Triple<SourceInfo,LanguageLevelVisitor,SymbolData>> continuations,
LinkedList<Command> fixUps)
file - The File corresponding to the source file we are visitingpackageName - The name of the package corresponding to the fileimportedFiles - The list of files (classes) imported by this source fileimportedPackages - The list of packages imported by this source fileclassesInThisFile - The list of names of classes defined in this filecontinuations - The table of classes we have encountered but still need to resolve| Method Detail |
|---|
protected void _resetNonStaticFields()
public static String getFieldAccessorName(String name)
public File getFile()
protected boolean isConstructor(Data d)
public LanguageLevelVisitor newClassBodyVisitor(SymbolData anonSD,
String anonName)
public static String getUnqualifiedClassName(String className)
protected static String[] referenceType2String(ReferenceType[] rts)
public static boolean isJavaLibraryClass(String className)
public static boolean isDuplicateVariableData(LinkedList<VariableData> vds,
VariableData toInsert)
public ArrayData defineArraySymbolData(SymbolData eltSd,
LanguageLevelVisitor llv,
SourceInfo si)
protected SymbolData _getSymbolDataFromFileSystem(String qualifiedClassName,
SourceInfo si,
boolean resolve,
boolean addError)
qualifiedClassName - The name of the class we're looking up.si - Information about where the class was called from.resolve - true if we want to fully resolve the SymbolData.addError - true if we want to throw errors.
`
public SymbolData resolveSymbol(SourceInfo si,
SymbolData cont)
public SymbolData getSymbolData(String className,
SourceInfo si)
className - The referenced name of the class to resolve.si - The SourceInfo corresponding to the reference to the type
protected SymbolData getSymbolData(String className,
SourceInfo si,
boolean addError)
className - The referenced name of the class to identifysi - The SourceInfo corresponding to the reference to the typeaddError - true if we want to give an error if this class cannot be resolved.
protected SymbolData getSymbolData(String className,
SourceInfo si,
boolean addError,
boolean checkImports)
protected SymbolData getSymbolData(File file,
String pkg,
LinkedList<String> importedFiles,
LinkedList<String> importedPackages,
String enclosingClassName,
String className,
SourceInfo si,
boolean addError,
boolean checkImports)
file - The file containing the className reference.package - The package corresponding to file.importedFiles - The imported files for this fileimportedPackages - The imported Packages for this fileenclosingClassName - The enclosing classNameclassName - The referenced name of the class to lookup.si - The SourceInfo of the reference to className used in case of an error.addError - Whether to add errors or notcheckImports - Whether to try prepending the imported package names
protected SymbolData getSymbolData(TypeData lhs,
String name,
SourceInfo si,
boolean addError)
lhs - The TypeData corresponding to the enclosing of this name referencename - The name piece to look up from the context of lhssi - The SourceInfo corresponding to this referenceaddError - true if an error should be added
protected SymbolData getQualifiedSymbolData(String qualClassName)
protected SymbolData getQualifiedSymbolData(String qualClassName,
SourceInfo si)
protected SymbolData getQualifiedSymbolData(String qualClassName,
SourceInfo si,
boolean resolve)
protected SymbolData getQualifiedSymbolData(String qualClassName,
SourceInfo si,
boolean resolve,
boolean fromClassFile,
boolean addError)
qualClassName - The fully qualified name of the class to lookup.si - The SourceInfo of the reference to qualClassName used in case of an error.resolve - Whether to return a continuation or fully parse the class.fromClassFile - Whether this was called from the class file reader.addError - Whether to add errors. We don't add errors when iterating through a qualified class name's
package. (??)protected String getQualifiedClassName(String className)
className - The className to qualify.
public static String getQualifiedClassName(String pkg,
String className)
pkg - The package name to use as a prefix.className - The className to qualify.
protected SymbolData addInnerSymbolData(SourceInfo si,
String qualifiedTypeName,
Data enclosing)
protected SymbolData makeContinuation(SourceInfo si,
String qualClassName)
si - The SourceInfo corresponding to this occurrence of the class symbolreferencedClassName - The referenced name for the class. In some cases, it is fully qualified.
protected SymbolData _lookupTypeFromWithinClass(ReferenceType rt,
String qualifiedClassName)
protected SymbolData defineSymbolData(TypeDefBase typeDefBase,
String qualifiedTypeName)
protected SymbolData defineSymbolData(TypeDefBase typeDefBase,
String qualifiedTypeName,
String enclosingClassName)
typeDefBase - The AST node for the class def, interface def, inner class def, or inner interface def.qualifiedTypeName - The fully qualified name of the class or interface
protected SymbolData defineInnerSymbolData(TypeDefBase typeDefBase,
String relName,
String qualifiedTypeName,
Data enclosing)
typeDefBase - The AST node for the class def, interface def, inner class def, or inner interface def.relName - The relative (unqualified) name of the symbolqualifiedTypeName - The fully qualified name for the class; null if this definition is a duplicateenclosing - The enclosing SymbolData or MethodData (for a local class defined within a method).
protected SymbolData defineAnonymousSymbolData(AnonymousClassInstantiation anonInst,
String qualifiedAnonName,
String superName)
AnonymousClassInstantiation - The AST node for the anonymous class instantiation.qualifiedTypeName - The fully qualified name of the classprotected String[] getFormalParameterMav(Data d)
protected VariableData[] formalParameters2VariableData(FormalParameter[] fps,
SymbolData enclosing)
fps - The AST node for the parameter listenclosing - The SymbolData for the enclosing class (not method!)
NOTE: enclosing refers to the enclosing class rather than enclosing method because any new types
defined in the method are not visible in the parameter list.
TODO: At the advanced level, this may need to be overwritten?
protected MethodData createMethodData(MethodDef that,
SymbolData sd)
protected VariableData[] _variableDeclaration2VariableData(VariableDeclaration vd,
Data enclosing)
protected SymbolData _identifyType(String name,
SourceInfo si,
String enclosingClassName)
protected static void _addError(String message,
JExpressionIF that)
protected static void _addAndIgnoreError(String message,
JExpressionIF that)
protected boolean prune(JExpressionIF node)
prune in class JExpressionIFPrunableDepthFirstVisitorprotected static boolean _checkError()
public void _badModifiers(String first,
String second,
JExpressionIF that)
public Void forModifiersAndVisibilityDoFirst(ModifiersAndVisibility that)
forModifiersAndVisibilityDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forClassDefDoFirst(ClassDef that)
forClassDefDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forInterfaceDefDoFirst(InterfaceDef that)
forInterfaceDefDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forInnerInterfaceDefDoFirst(InnerInterfaceDef that)
forInnerInterfaceDefDoFirst in class JExpressionIFPrunableDepthFirstVisitor
public void anonymousClassInstantiationHelper(AnonymousClassInstantiation that,
SymbolData enclosing,
String superName)
that - The AnonymousClassInstantiation being visited.enclosing - The SymbolData of the enclosing class.superC - The super class being instantiated--i.e. new A() { ...}, would have a super class of A.protected void identifyInnerClasses(TypeDefBase that)
public Void forPackageStatementOnly(PackageStatement that)
forPackageStatementOnly in class JExpressionIFPrunableDepthFirstVisitorpublic Void forClassImportStatementOnly(ClassImportStatement that)
forClassImportStatementOnly in class JExpressionIFPrunableDepthFirstVisitor
protected SymbolData createImportedSymbolContinuation(String qualifiedTypeName,
SourceInfo si)
public Void forPackageImportStatementOnly(PackageImportStatement that)
forPackageImportStatementOnly in class JExpressionIFPrunableDepthFirstVisitorpublic Void forConcreteMethodDefDoFirst(ConcreteMethodDef that)
forConcreteMethodDefDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forAbstractMethodDefDoFirst(AbstractMethodDef that)
forAbstractMethodDefDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forShiftAssignmentExpressionDoFirst(ShiftAssignmentExpression that)
forShiftAssignmentExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseAssignmentExpressionDoFirst(BitwiseAssignmentExpression that)
forBitwiseAssignmentExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseBinaryExpressionDoFirst(BitwiseBinaryExpression that)
forBitwiseBinaryExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseOrExpressionDoFirst(BitwiseOrExpression that)
forBitwiseOrExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseXorExpressionDoFirst(BitwiseXorExpression that)
forBitwiseXorExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseAndExpressionDoFirst(BitwiseAndExpression that)
forBitwiseAndExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseNotExpressionDoFirst(BitwiseNotExpression that)
forBitwiseNotExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forShiftBinaryExpressionDoFirst(ShiftBinaryExpression that)
forShiftBinaryExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forBitwiseNotExpressionDoFirst(ShiftBinaryExpression that)
public Void forEmptyExpressionDoFirst(EmptyExpression that)
forEmptyExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forNoOpExpressionDoFirst(NoOpExpression that)
forNoOpExpressionDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forSourceFileDoFirst(SourceFile that)
forSourceFileDoFirst in class JExpressionIFPrunableDepthFirstVisitorpublic Void forSourceFile(SourceFile that)
forSourceFile in interface JExpressionIFVisitor<Void>forSourceFile in class JExpressionIFPrunableDepthFirstVisitorpublic Void forSimpleNameReference(SimpleNameReference that)
forSimpleNameReference in interface JExpressionIFVisitor<Void>forSimpleNameReference in class JExpressionIFPrunableDepthFirstVisitorpublic Void forComplexNameReference(ComplexNameReference that)
forComplexNameReference in interface JExpressionIFVisitor<Void>forComplexNameReference in class JExpressionIFPrunableDepthFirstVisitorpublic Void forVariableDeclaration(VariableDeclaration that)
forVariableDeclaration in interface JExpressionIFVisitor<Void>forVariableDeclaration in class JExpressionIFPrunableDepthFirstVisitor
protected static void addGeneratedMethod(SymbolData sd,
MethodData md)
public void createConstructor(SymbolData sd)
protected static void createAccessors(SymbolData sd,
File file)
protected void createToString(SymbolData sd)
protected void createHashCode(SymbolData sd)
protected void createEquals(SymbolData sd)
public Void forMemberType(MemberType that)
forMemberType in interface JExpressionIFVisitor<Void>forMemberType in class JExpressionIFPrunableDepthFirstVisitorpublic Void forStringLiteralOnly(StringLiteral that)
forStringLiteralOnly in class JExpressionIFPrunableDepthFirstVisitorpublic Void forSimpleNamedClassInstantiation(SimpleNamedClassInstantiation that)
forSimpleNamedClassInstantiation in interface JExpressionIFVisitor<Void>forSimpleNamedClassInstantiation in class JExpressionIFPrunableDepthFirstVisitor
public static boolean arrayEquals(Object[] array1,
Object[] array2)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||