Web Site

org.codehaus.janino
Class Java.AnonymousClassDeclaration

java.lang.Object
  extended byorg.codehaus.janino.Java.AbstractTypeDeclaration
      extended byorg.codehaus.janino.Java.ClassDeclaration
          extended byorg.codehaus.janino.Java.AnonymousClassDeclaration
All Implemented Interfaces:
org.codehaus.janino.Java.InnerClassDeclaration, Java.Locatable, Java.Scope, Java.TypeDeclaration
Enclosing class:
Java

public static final class Java.AnonymousClassDeclaration
extends Java.ClassDeclaration
implements org.codehaus.janino.Java.InnerClassDeclaration


Field Summary
 
Fields inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
anonymousClassCount, enclosingScope, localClassCount, modifiers
 
Constructor Summary
Java.AnonymousClassDeclaration(Location location, Java.Scope enclosingScope, Java.Type baseType)
           
 
Method Summary
 void defineSyntheticField(IClass.IField iField)
          Inner classes have zero or more synthetic fields that hold references to their enclosing context: this$n (Mandatory for non-private non-static member classes; optional for private non-static member classes, local classes in non-static context, and anonymous classes in non-static context; forbidden for static member classes, local classes in static context, and anonymous classes in static context) Holds a reference to the immediately enclosing instance.
 String getClassName()
          Determine the effective class name, e.g.
 String toString()
           
 void visit(org.codehaus.janino.Visitor.TypeDeclarationVisitor visitor)
           
 
Methods inherited from class org.codehaus.janino.Java.ClassDeclaration
addConstructor, addVariableDeclaratorOrInitializer
 
Methods inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
addDeclaredMethod, addMemberTypeDeclaration, createAnonymousClassName, createLocalTypeName, getEnclosingScope, getLocation, getMemberTypeDeclaration, getMemberTypeDeclarations, throwParseException
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.codehaus.janino.Java.TypeDeclaration
createAnonymousClassName, createLocalTypeName, getMemberTypeDeclaration
 
Methods inherited from interface org.codehaus.janino.Java.Locatable
getLocation, throwParseException
 
Methods inherited from interface org.codehaus.janino.Java.Scope
getEnclosingScope
 

Constructor Detail

Java.AnonymousClassDeclaration

public Java.AnonymousClassDeclaration(Location location,
                                      Java.Scope enclosingScope,
                                      Java.Type baseType)
Method Detail

visit

public final void visit(org.codehaus.janino.Visitor.TypeDeclarationVisitor visitor)
Specified by:
visit in interface Java.TypeDeclaration

getClassName

public String getClassName()
Description copied from interface: Java.TypeDeclaration
Determine the effective class name, e.g. "pkg.Outer$Inner".

Specified by:
getClassName in interface Java.TypeDeclaration

toString

public String toString()
Specified by:
toString in class Java.AbstractTypeDeclaration

defineSyntheticField

public void defineSyntheticField(IClass.IField iField)
                          throws CompileException
Inner classes have zero or more synthetic fields that hold references to their enclosing context:
this$n
(Mandatory for non-private non-static member classes; optional for private non-static member classes, local classes in non-static context, and anonymous classes in non-static context; forbidden for static member classes, local classes in static context, and anonymous classes in static context) Holds a reference to the immediately enclosing instance. n is N-1 for the Nth nesting level; e.g. the public non-static member class of a package member class has a synthetic field this$0.
val$local-variable-name
(Allowed for local classes and anonymous classes; forbidden for member classes) Hold copies of final local variables of the defining context.
Notice that these fields are not included in the IClass.IField array returned by IClass.getDeclaredIFields().

If a synthetic field with the same name exists already, then it must have the same type and the redefinition is ignored.

Parameters:
iField -
Throws:
CompileException

Web Site