Package org.codehaus.janino
Class Java.MemberClassDeclaration
java.lang.Object
org.codehaus.janino.Java.AbstractTypeDeclaration
org.codehaus.janino.Java.AbstractClassDeclaration
org.codehaus.janino.Java.NamedClassDeclaration
org.codehaus.janino.Java.MemberClassDeclaration
- All Implemented Interfaces:
Java.Annotatable,Java.ClassDeclaration,Java.DocCommentable,Java.Locatable,Java.MemberTypeDeclaration,Java.NamedTypeDeclaration,Java.Scope,Java.TypeBodyDeclaration,Java.TypeDeclaration
- Direct Known Subclasses:
Java.MemberEnumDeclaration
- Enclosing class:
Java
public static 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 or
interface declaration.
-
Field Summary
Fields inherited from class org.codehaus.janino.Java.NamedClassDeclaration
extendedType, implementedTypes, nameFields inherited from class org.codehaus.janino.Java.AbstractClassDeclaration
constructors, fieldDeclarationsAndInitializersFields inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
anonymousClassCount, localClassCount -
Constructor Summary
ConstructorsConstructorDescriptionMemberClassDeclaration(Location location, String docComment, Java.Modifier[] modifiers, String name, Java.TypeParameter[] typeParameters, Java.Type extendedType, Java.Type[] implementedTypes) -
Method Summary
Modifier and TypeMethodDescription<R,EX extends Throwable>
Raccept(Visitor.TypeBodyDeclarationVisitor<R, EX> visitor) Invokes the "visit...()" method ofVisitor.TypeBodyDeclarationVisitorfor the concreteJava.TypeBodyDeclarationtype.<R,EX extends Throwable>
Raccept(Visitor.TypeDeclarationVisitor<R, EX> 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$<em>n</em>(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.Determines the effective class name, e.g.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, hasDeprecatedDocTag, isAbstract, isFinal, isStrictfp, toStringMethods inherited from class org.codehaus.janino.Java.AbstractClassDeclaration
addConstructor, addFieldDeclaration, addFieldDeclarationOrInitializer, addInitializer, defineSyntheticField, getSyntheticFields, getVariableDeclaratorsAndInitializersMethods inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
addDeclaredMethod, addMemberTypeDeclaration, createAnonymousClassName, createLocalTypeName, getAnnotations, getEnclosingScope, getLocation, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations, getModifiers, getOptionalTypeParameters, invalidateMethodCaches, setEnclosingScope, throwCompileExceptionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.codehaus.janino.Java.Annotatable
getAnnotationsMethods inherited from interface org.codehaus.janino.Java.ClassDeclaration
getSyntheticFields, getVariableDeclaratorsAndInitializersMethods inherited from interface org.codehaus.janino.Java.Locatable
getLocation, throwCompileExceptionMethods inherited from interface org.codehaus.janino.Java.NamedTypeDeclaration
getName, getOptionalTypeParametersMethods inherited from interface org.codehaus.janino.Java.Scope
getEnclosingScopeMethods inherited from interface org.codehaus.janino.Java.TypeBodyDeclaration
getModifiersMethods inherited from interface org.codehaus.janino.Java.TypeDeclaration
createAnonymousClassName, createLocalTypeName, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations
-
Constructor Details
-
MemberClassDeclaration
public MemberClassDeclaration(Location location, @Nullable String docComment, Java.Modifier[] modifiers, String name, @Nullable Java.TypeParameter[] typeParameters, @Nullable Java.Type extendedType, Java.Type[] implementedTypes)
-
-
Method Details
-
getAccess
- Specified by:
getAccessin interfaceJava.MemberTypeDeclaration- Returns:
- The accessability declared for this member type
-
setDeclaringType
Description copied from interface:Java.TypeBodyDeclarationSets the type declaration that this declaration belongs to.- Specified by:
setDeclaringTypein interfaceJava.TypeBodyDeclaration
-
getDeclaringType
- Specified by:
getDeclaringTypein interfaceJava.TypeBodyDeclaration- Returns:
- The type declaration that this declaration belongs to.
-
getClassName
Description copied from interface:Java.TypeDeclarationDetermines the effective class name, e.g. "pkg.Outer$Inner".- Specified by:
getClassNamein interfaceJava.TypeDeclaration
-
accept
@Nullable public <R,EX extends Throwable> R accept(Visitor.TypeDeclarationVisitor<R, EX> visitor) throws EXDescription copied from interface:Java.TypeDeclarationInvokes the "visit...()" method ofVisitor.TypeDeclarationVisitorfor the concreteJava.TypeDeclarationtype.- Specified by:
acceptin interfaceJava.TypeDeclaration- Throws:
EX
-
accept
@Nullable public <R,EX extends Throwable> R accept(Visitor.TypeBodyDeclarationVisitor<R, EX> visitor) throws EXDescription copied from interface:Java.TypeBodyDeclarationInvokes the "visit...()" method ofVisitor.TypeBodyDeclarationVisitorfor the concreteJava.TypeBodyDeclarationtype.- Specified by:
acceptin interfaceJava.TypeBodyDeclaration- Throws:
EX
-
isStatic
public boolean isStatic() -
defineSyntheticField
Inner classes have zero or more synthetic fields that hold references to their enclosing context:this$<em>n</em>-
(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.
<em>n</em>is 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$<em>local-variable-name</em>-
(Allowed for local classes and anonymous classes; forbidden for member classes)
Hold copies of
finallocal variables of the defining context.
Notice that these fields are not included in the
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
-