summaryrefslogtreecommitdiff
path: root/java/lang/Class.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/lang/Class.java')
-rw-r--r--java/lang/Class.java28
1 files changed, 24 insertions, 4 deletions
diff --git a/java/lang/Class.java b/java/lang/Class.java
index c5ec1536d..ad51044c3 100644
--- a/java/lang/Class.java
+++ b/java/lang/Class.java
@@ -1,5 +1,5 @@
/* Class.java -- Representation of a Java class.
- Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
Free Software Foundation
This file is part of GNU Classpath.
@@ -104,6 +104,23 @@ public final class Class<T>
*/
private static final long serialVersionUID = 3206093459760846163L;
+ /**
+ * Flag indicating a synthetic member.
+ * Note that this duplicates a constant in Modifier.
+ */
+ private static final int SYNTHETIC = 0x1000;
+
+ /**
+ * Flag indiciating an annotation class.
+ */
+ private static final int ANNOTATION = 0x2000;
+
+ /**
+ * Flag indicating an enum constant or an enum class.
+ * Note that this duplicates a constant in Modifier.
+ */
+ private static final int ENUM = 0x4000;
+
/** The class signers. */
private Object[] signers = null;
/** The class protection domain. */
@@ -1409,7 +1426,8 @@ public final class Class<T>
*/
public boolean isEnum()
{
- return VMClass.isEnum(this);
+ int mod = VMClass.getModifiers (this, true);
+ return (mod & ENUM) != 0;
}
/**
@@ -1421,7 +1439,8 @@ public final class Class<T>
*/
public boolean isSynthetic()
{
- return VMClass.isSynthetic(this);
+ int mod = VMClass.getModifiers (this, true);
+ return (mod & SYNTHETIC) != 0;
}
/**
@@ -1432,7 +1451,8 @@ public final class Class<T>
*/
public boolean isAnnotation()
{
- return VMClass.isAnnotation(this);
+ int mod = VMClass.getModifiers (this, true);
+ return (mod & ANNOTATION) != 0;
}
/**