janino.net

org.codehaus.janino
Class Java.MemberClassDeclaration

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.MemberClassDeclaration
All Implemented Interfaces:
Java.DocCommentable, Java.Locatable, Java.MemberTypeDeclaration, Java.NamedTypeDeclaration, Java.Scope, Java.TypeBodyDeclaration, Java.TypeDeclaration
Enclosing class:
Java

public static final class Java.MemberClassDeclaration
extends Java.NamedClassDeclaration
implements Java.MemberTypeDeclaration

Representation of a 'member class declaration', i.e. a class declaration that appears inside another class declaration.


Field Summary
 
Fields inherited from class org.codehaus.janino.Java.NamedClassDeclaration
implementedTypes, name, optionalExtendedType, optionalTypeParameters
 
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.MemberClassDeclaration(Location location, String optionalDocComment, Java.Modifiers modifiers, String name, Java.TypeParameter[] optionalTypeParameters, Java.Type optionalExtendedType, Java.Type[] implementedTypes)
           
 
Method Summary
 void accept(Visitor.TypeBodyDeclarationVisitor visitor)
          Invokes the 'visit...()' method of Visitor.TypeBodyDeclarationVisitor for the concrete Java.TypeBodyDeclaration type.
 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.
 Java.TypeDeclaration getDeclaringType()
           
 boolean isStatic()
           
 void setDeclaringType(Java.TypeDeclaration declaringType)
          Sets the type declaration that this declaration belongs to.
 
Methods inherited from class org.codehaus.janino.Java.NamedClassDeclaration
getDocComment, getName, getOptionalTypeParameters, hasDeprecatedDocTag, 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.NamedTypeDeclaration
getName, getOptionalTypeParameters
 
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
 

Constructor Detail

Java.MemberClassDeclaration

public Java.MemberClassDeclaration(Location location,
                                   String optionalDocComment,
                                   Java.Modifiers modifiers,
                                   String name,
                                   Java.TypeParameter[] optionalTypeParameters,
                                   Java.Type optionalExtendedType,
                                   Java.Type[] implementedTypes)
Method Detail

setDeclaringType

public void setDeclaringType(Java.TypeDeclaration declaringType)
Description copied from interface: Java.TypeBodyDeclaration
Sets the type declaration that this declaration belongs to.

Specified by:
setDeclaringType in interface Java.TypeBodyDeclaration

getDeclaringType

public Java.TypeDeclaration getDeclaringType()
Specified by:
getDeclaringType in interface Java.TypeBodyDeclaration
Returns:
The type declaration that this declaration belongs to.

isStatic

public boolean isStatic()
Specified by:
isStatic in interface Java.TypeBodyDeclaration
Returns:
Whether this declaration has the STATIC modifier

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

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

accept

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

Specified by:
accept in interface Java.TypeBodyDeclaration

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