Interface InnerClassInfo
public sealed interface InnerClassInfo
Models a single entry in the
InnerClassesAttribute
.- See Java Virtual Machine Specification:
-
4.7.6 The
InnerClasses
Attribute - Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault Set
<AccessFlag> flags()
Returns a set of flag enums denoting access permissions and properties of the nested class.int
Returns a bit mask of flags denoting access permissions and properties of the inner class.default boolean
has
(AccessFlag flag) Returns whether a specific access flag is set.Returns the nested class described by this entry.Returns the simple name of this class, or empty if this class is anonymous.static InnerClassInfo
of
(ClassEntry innerClass, Optional<ClassEntry> outerClass, Optional<Utf8Entry> innerName, int flags) Returns a nested class description.static InnerClassInfo
Returns a nested class description.static InnerClassInfo
of
(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, AccessFlag... flags) Returns a nested class description.Returns the class or interface of which this class is a member, if it is a member of a class or interface.
-
Method Details
-
innerClass
ClassEntry innerClass()Returns the nested class described by this entry.- Returns:
- the nested class described by this entry
-
outerClass
Optional<ClassEntry> outerClass()Returns the class or interface of which this class is a member, if it is a member of a class or interface. This may be empty if this class is local or anonymous.- Returns:
- the class or interface of which this class is a member, if it is a member of a class or interface
- See Also:
-
innerName
-
flagsMask
int flagsMask()Returns a bit mask of flags denoting access permissions and properties of the inner class.- Returns:
- a bit mask of flags denoting access permissions and properties of the inner class
- See Also:
-
flags
Returns a set of flag enums denoting access permissions and properties of the nested class.- Returns:
- a set of flag enums denoting access permissions and properties of the nested class
- Throws:
IllegalArgumentException
- if the flags mask has any undefined bit set- See Also:
-
has
Returns whether a specific access flag is set.- Parameters:
flag
- the access flag- Returns:
- whether a specific access flag is set
- See Also:
-
of
static InnerClassInfo of(ClassEntry innerClass, Optional<ClassEntry> outerClass, Optional<Utf8Entry> innerName, int flags) Returns a nested class description.- Parameters:
innerClass
- the nested class being describedouterClass
- the class that has the nested class as a member, if it existsinnerName
- the simple name of the nested class, if it is not anonymousflags
- the inner class access flags- Returns:
- a nested class description
-
of
static InnerClassInfo of(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, int flags) Returns a nested class description.- Parameters:
innerClass
- the nested class being describedouterClass
- the class that has the nested class as a member, if it existsinnerName
- the simple name of the nested class, if it is not anonymousflags
- the inner class access flags- Returns:
- a nested class description
- Throws:
IllegalArgumentException
- ifinnerClass
orouterClass
represents a primitive type
-
of
static InnerClassInfo of(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, AccessFlag... flags) Returns a nested class description.- Parameters:
innerClass
- the nested class being describedouterClass
- the class that has the nested class as a member, if it existsinnerName
- the name of the nested class, if it is not anonymousflags
- the inner class access flags- Returns:
- a nested class description
- Throws:
IllegalArgumentException
- ifinnerClass
orouterClass
represents a primitive type, or if any flag cannot be applied to theAccessFlag.Location.INNER_CLASS
location
-