janino.net

org.codehaus.janino
Class Java.AnonymousClassDeclaration

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

public static final class Java.AnonymousClassDeclaration
extends Java.ClassDeclaration

Representation of a JLS7 15.9.5 'anonymous class declaration'.


Field Summary
 Java.Type baseType
          Base class or interface.
 
Fields inherited from class org.codehaus.janino.Java.ClassDeclaration
constructors, variableDeclaratorsAndInitializers
 
Fields inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
anonymousClassCount, localClassCount
 
Constructor Summary
Java.AnonymousClassDeclaration(Location location, Java.Type baseType)
           
 
Method Summary
 void accept(Visitor.TypeDeclarationVisitor visitor)
          Invokes the 'visit...()' method of Visitor.TypeDeclarationVisitor for the concrete Java.TypeDeclaration type.
 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()
          Determines the effective class name, e.g.
 String toString()
           
 
Methods inherited from class org.codehaus.janino.Java.ClassDeclaration
addConstructor, addFieldDeclaration, addInitializer, defineSyntheticField
 
Methods inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
addDeclaredMethod, addMemberTypeDeclaration, createAnonymousClassName, createLocalTypeName, getAnnotations, getEnclosingScope, getLocation, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations, getModifierFlags, invalidateMethodCaches, setEnclosingScope, throwCompileException
 
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, getAnnotations, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations, getModifierFlags
 
Methods inherited from interface org.codehaus.janino.Java.Locatable
getLocation, throwCompileException
 
Methods inherited from interface org.codehaus.janino.Java.Scope
getEnclosingScope
 

Field Detail

baseType

public final Java.Type baseType
Base class or interface.

Constructor Detail

Java.AnonymousClassDeclaration

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

accept

public void accept(Visitor.TypeDeclarationVisitor visitor)
Description copied from interface: Java.TypeDeclaration
Invokes the 'visit...()' method of Visitor.TypeDeclarationVisitor for the concrete Java.TypeDeclaration type.

Specified by:
accept in interface Java.TypeDeclaration

getClassName

public String getClassName()
Description copied from interface: Java.TypeDeclaration
Determines 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.getDeclaredIFields2().

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

janino.net