Web Site

org.codehaus.janino
Class Java.LocalClassDeclaration

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

public static final class Java.LocalClassDeclaration
extends Java.NamedClassDeclaration


Field Summary
 
Fields inherited from class org.codehaus.janino.Java.NamedClassDeclaration
implementedTypes, name, optionalExtendedType
 
Fields inherited from class org.codehaus.janino.Java.ClassDeclaration
constructors, variableDeclaratorsAndInitializers
 
Fields inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
anonymousClassCount, declaredClassesAndInterfaces, declaredMethods, localClassCount, modifiers
 
Constructor Summary
Java.LocalClassDeclaration(Location location, java.lang.String optionalDocComment, short modifiers, java.lang.String name, Java.Type optionalExtendedType, Java.Type[] implementedTypes)
           
 
Method Summary
 void accept(Visitor.TypeDeclarationVisitor visitor)
           
 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.
 java.lang.String getClassName()
          Determine the effective class name, e.g.
protected  IClass getOuterIClass2()
           
 
Methods inherited from class org.codehaus.janino.Java.NamedClassDeclaration
getDocComment, getName, hasDeprecatedDocTag, toString
 
Methods inherited from class org.codehaus.janino.Java.ClassDeclaration
addConstructor, addVariableDeclaratorOrInitializer, defineSyntheticField
 
Methods inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
addDeclaredMethod, addMemberTypeDeclaration, createAnonymousClassName, createLocalTypeName, getEnclosingScope, getLocation, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, invalidateMethodCaches, setEnclosingScope, 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.LocalClassDeclaration

public Java.LocalClassDeclaration(Location location,
                                  java.lang.String optionalDocComment,
                                  short modifiers,
                                  java.lang.String name,
                                  Java.Type optionalExtendedType,
                                  Java.Type[] implementedTypes)
Method Detail

getOuterIClass2

protected IClass getOuterIClass2()

getClassName

public java.lang.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

accept

public final void accept(Visitor.TypeDeclarationVisitor visitor)
Specified by:
accept in interface Java.TypeDeclaration

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