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.TypeBodyDeclarationVisitor
for the concreteJava.TypeBodyDeclaration
type.<R,EX extends java.lang.Throwable>
Raccept(Visitor.TypeDeclarationVisitor<R,EX> visitor)
Invokes the "visit...()
" method ofVisitor.TypeDeclarationVisitor
for the concreteJava.TypeDeclaration
type.void
addConstant(Java.EnumConstant ec)
Adds another constant to this enum declaration.void
defineSyntheticField(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:
getImplementedTypes
in interfaceJava.EnumDeclaration
- Returns:
- The interfaces that this enum implements
-
getConstants
public java.util.List<Java.EnumConstant> getConstants()
- Specified by:
getConstants
in interfaceJava.EnumDeclaration
- Returns:
- The constants that this enum declares
-
addConstant
public void addConstant(Java.EnumConstant ec)
Description copied from interface:Java.EnumDeclaration
Adds another constant to this enum declaration.- Specified by:
addConstant
in 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.TypeDeclaration
Invokes the "visit...()
" method ofVisitor.TypeDeclarationVisitor
for the concreteJava.TypeDeclaration
type.- Specified by:
accept
in interfaceJava.TypeDeclaration
- Overrides:
accept
in 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.TypeBodyDeclaration
Invokes the "visit...()
" method ofVisitor.TypeBodyDeclarationVisitor
for the concreteJava.TypeBodyDeclaration
type.- Specified by:
accept
in interfaceJava.TypeBodyDeclaration
- Overrides:
accept
in 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
final
local variables of the defining context.
Notice that these fields are not included in the
IClass.IField
array 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
-
-