Package org.codehaus.janino
Class Java.MemberClassDeclaration
- java.lang.Object
-
- org.codehaus.janino.Java.AbstractTypeDeclaration
-
- org.codehaus.janino.Java.ClassDeclaration
-
- org.codehaus.janino.Java.NamedClassDeclaration
-
- 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
Constructors Constructor Description MemberClassDeclaration(Location location, String optionalDocComment, Java.Modifiers modifiers, String name, Java.TypeParameter[] optionalTypeParameters, Java.Type optionalExtendedType, Java.Type[] implementedTypes)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor.TypeBodyDeclarationVisitor visitor)Invokes the 'visit...()' method ofVisitor.TypeBodyDeclarationVisitorfor the concreteJava.TypeBodyDeclarationtype.voidaccept(Visitor.TypeDeclarationVisitor visitor)Invokes the 'visit...()' method ofVisitor.TypeDeclarationVisitorfor the concreteJava.TypeDeclarationtype.voiddefineSyntheticField(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.StringgetClassName()Determines the effective class name, e.g.Java.TypeDeclarationgetDeclaringType()booleanisStatic()voidsetDeclaringType(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.Locatable
getLocation, throwCompileException
-
Methods inherited from interface org.codehaus.janino.Java.NamedTypeDeclaration
getName, getOptionalTypeParameters
-
Methods inherited from interface org.codehaus.janino.Java.Scope
getEnclosingScope
-
Methods inherited from interface org.codehaus.janino.Java.TypeDeclaration
createAnonymousClassName, createLocalTypeName, getAnnotations, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations, getModifierFlags
-
-
-
-
Constructor Detail
-
MemberClassDeclaration
public 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.TypeBodyDeclarationSets the type declaration that this declaration belongs to.- Specified by:
setDeclaringTypein interfaceJava.TypeBodyDeclaration
-
getDeclaringType
public Java.TypeDeclaration getDeclaringType()
- Specified by:
getDeclaringTypein interfaceJava.TypeBodyDeclaration- Returns:
- The type declaration that this declaration belongs to.
-
isStatic
public boolean isStatic()
- Specified by:
isStaticin interfaceJava.TypeBodyDeclaration- Returns:
- Whether this declaration has the STATIC modifier
-
getClassName
public String getClassName()
Description copied from interface:Java.TypeDeclarationDetermines the effective class name, e.g. "pkg.Outer$Inner".- Specified by:
getClassNamein interfaceJava.TypeDeclaration
-
accept
public void accept(Visitor.TypeDeclarationVisitor visitor)
Description copied from interface:Java.TypeDeclarationInvokes the 'visit...()' method ofVisitor.TypeDeclarationVisitorfor the concreteJava.TypeDeclarationtype.- Specified by:
acceptin interfaceJava.TypeDeclaration
-
accept
public void accept(Visitor.TypeBodyDeclarationVisitor visitor)
Description copied from interface:Java.TypeBodyDeclarationInvokes the 'visit...()' method ofVisitor.TypeBodyDeclarationVisitorfor the concreteJava.TypeBodyDeclarationtype.- Specified by:
acceptin interfaceJava.TypeBodyDeclaration
-
defineSyntheticField
public abstract 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.
nis N-1 for the Nth nesting level; e.g. the public non-static member class of a package member class has a synthetic fieldthis$0. val$local-variable-name-
(Allowed for local classes and anonymous classes; forbidden for member classes)
Hold copies of
finallocal variables of the defining context.
IClass.IFieldarray returned byIClass.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
-
-