Package org.codehaus.janino
Class Java.MemberEnumDeclaration
- java.lang.Object
-
- org.codehaus.janino.Java.AbstractTypeDeclaration
-
- org.codehaus.janino.Java.AbstractClassDeclaration
-
- org.codehaus.janino.Java.NamedClassDeclaration
-
- org.codehaus.janino.Java.MemberClassDeclaration
-
- org.codehaus.janino.Java.MemberEnumDeclaration
-
- All Implemented Interfaces:
Java.Annotatable,Java.ClassDeclaration,Java.DocCommentable,Java.EnumDeclaration,Java.Locatable,Java.MemberTypeDeclaration,Java.NamedTypeDeclaration,Java.Scope,Java.TypeBodyDeclaration,Java.TypeDeclaration
- Enclosing class:
- Java
public static final class Java.MemberEnumDeclaration extends Java.MemberClassDeclaration implements Java.EnumDeclaration
Representation of a "member enum declaration", i.e. an enum declaration that appears inside another class or interface declaration.
-
-
Field Summary
-
Fields inherited from class org.codehaus.janino.Java.NamedClassDeclaration
extendedType, implementedTypes, name
-
Fields inherited from class org.codehaus.janino.Java.AbstractClassDeclaration
constructors, fieldDeclarationsAndInitializers
-
Fields inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
anonymousClassCount, localClassCount
-
-
Constructor Summary
Constructors Constructor Description MemberEnumDeclaration(Location location, java.lang.String docComment, Java.Modifier[] modifiers, java.lang.String name, Java.Type[] implementedTypes)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description <R,EX extends java.lang.Throwable>
Raccept(Visitor.TypeBodyDeclarationVisitor<R,EX> visitor)Invokes the "visit...()" method ofVisitor.TypeBodyDeclarationVisitorfor the concreteJava.TypeBodyDeclarationtype.<R,EX extends java.lang.Throwable>
Raccept(Visitor.TypeDeclarationVisitor<R,EX> visitor)Invokes the "visit...()" method ofVisitor.TypeDeclarationVisitorfor the concreteJava.TypeDeclarationtype.voidaddConstant(Java.EnumConstant ec)Adds another constant to this enum declaration.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.java.util.List<Java.EnumConstant>getConstants()Java.Type[]getImplementedTypes()-
Methods inherited from class org.codehaus.janino.Java.MemberClassDeclaration
getAccess, getClassName, getDeclaringType, isStatic, setDeclaringType
-
Methods inherited from class org.codehaus.janino.Java.NamedClassDeclaration
getDocComment, getName, hasDeprecatedDocTag, isAbstract, isFinal, isStrictfp, toString
-
Methods inherited from class org.codehaus.janino.Java.AbstractClassDeclaration
addConstructor, addFieldDeclaration, addFieldDeclarationOrInitializer, addInitializer, defineSyntheticField, getSyntheticFields, getVariableDeclaratorsAndInitializers
-
Methods inherited from class org.codehaus.janino.Java.AbstractTypeDeclaration
addDeclaredMethod, addMemberTypeDeclaration, createAnonymousClassName, createLocalTypeName, getAnnotations, getEnclosingScope, getLocation, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations, getModifiers, getOptionalTypeParameters, 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.Annotatable
getAnnotations
-
Methods inherited from interface org.codehaus.janino.Java.ClassDeclaration
getSyntheticFields, getVariableDeclaratorsAndInitializers
-
Methods inherited from interface org.codehaus.janino.Java.DocCommentable
getDocComment, hasDeprecatedDocTag
-
Methods inherited from interface org.codehaus.janino.Java.EnumDeclaration
getModifiers, getName
-
Methods inherited from interface org.codehaus.janino.Java.Locatable
getLocation, throwCompileException
-
Methods inherited from interface org.codehaus.janino.Java.NamedTypeDeclaration
getOptionalTypeParameters
-
Methods inherited from interface org.codehaus.janino.Java.Scope
getEnclosingScope
-
Methods inherited from interface org.codehaus.janino.Java.TypeBodyDeclaration
getModifiers
-
Methods inherited from interface org.codehaus.janino.Java.TypeDeclaration
createAnonymousClassName, createLocalTypeName, getClassName, getMemberTypeDeclaration, getMemberTypeDeclarations, getMethodDeclaration, getMethodDeclarations
-
-
-
-
Constructor Detail
-
MemberEnumDeclaration
public MemberEnumDeclaration(Location location, @Nullable java.lang.String docComment, Java.Modifier[] modifiers, java.lang.String name, Java.Type[] implementedTypes)
-
-
Method Detail
-
getImplementedTypes
public Java.Type[] getImplementedTypes()
- Specified by:
getImplementedTypesin interfaceJava.EnumDeclaration- Returns:
- The interfaces that this enum implements
-
getConstants
public java.util.List<Java.EnumConstant> getConstants()
- Specified by:
getConstantsin interfaceJava.EnumDeclaration- Returns:
- The constants that this enum declares
-
addConstant
public void addConstant(Java.EnumConstant ec)
Description copied from interface:Java.EnumDeclarationAdds another constant to this enum declaration.- Specified by:
addConstantin interfaceJava.EnumDeclaration
-
accept
@Nullable public <R,EX extends java.lang.Throwable> R accept(Visitor.TypeDeclarationVisitor<R,EX> visitor) throws EX extends java.lang.Throwable
Description copied from interface:Java.TypeDeclarationInvokes the "visit...()" method ofVisitor.TypeDeclarationVisitorfor the concreteJava.TypeDeclarationtype.- Specified by:
acceptin interfaceJava.TypeDeclaration- Overrides:
acceptin classJava.MemberClassDeclaration- Throws:
EX extends java.lang.Throwable
-
accept
@Nullable public <R,EX extends java.lang.Throwable> R accept(Visitor.TypeBodyDeclarationVisitor<R,EX> visitor) throws EX extends java.lang.Throwable
Description copied from interface:Java.TypeBodyDeclarationInvokes the "visit...()" method ofVisitor.TypeBodyDeclarationVisitorfor the concreteJava.TypeBodyDeclarationtype.- Specified by:
acceptin interfaceJava.TypeBodyDeclaration- Overrides:
acceptin classJava.MemberClassDeclaration- Throws:
EX extends java.lang.Throwable
-
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$<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
-
-