diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-12-28 18:16:18 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-12-28 18:16:18 +0000 |
commit | 2190710f0c2ddaa65e55ba4e31bcd200bcc56d64 (patch) | |
tree | e4b432ca2cec50ba1048b2b9557883b3c3b3f1d7 /javax/tools | |
parent | 621cce7fdf0e325d8789dec762e448844ba0feae (diff) | |
download | classpath-2190710f0c2ddaa65e55ba4e31bcd200bcc56d64.tar.gz |
Add missing Modifier and NestingKind enumerations and associated methods.
2012-12-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
* javax/lang/model/element/Element.java:
(getModifiers()): Added.
(getSimpleName()): Likewise.
* javax/lang/model/element/Modifier.java:
New enumeration.
(ABSTRACT): Added.
(FINAL): Likewise.
(NATIVE): Likewise.
(PRIVATE): Likewise.
(PROTECTED): Likewise.
(PUBLIC): Likewise.
(STATIC): Likewise.
(STRICTFP): Likewise.
(SYNCHRONIZED): Likewise.
(TRANSIENT): Likewise.
(VOLATILE): Likewise.
* javax/lang/model/element/NestingKind.java:
New enumeration.
(ANONYMOUS): Added.
(LOCAL): Likewise.
(MEMBER): Likewise.
(TOP_LEVEL): Likewise.
(isNested()): Implemented.
* javax/lang/model/element/TypeElement.java:
(getNestingKind()): Added.
* javax/tools/ForwardingJavaFileObject.java:
(getAccessLevel()): Implemented.
(getNestingKind()): Likewise.
* javax/tools/JavaFileObject.java:
(getAccessLevel()): Added.
(getNestingKind()): Likewise.
* javax/tools/SimpleJavaFileObject.java,
(getAccessLevel()): Implemented.
(getNestingKind()): Likewise.
Signed-off-by: Andrew John Hughes <gnu_andrew@member.fsf.org>
Diffstat (limited to 'javax/tools')
-rw-r--r-- | javax/tools/ForwardingJavaFileObject.java | 21 | ||||
-rw-r--r-- | javax/tools/JavaFileObject.java | 26 | ||||
-rw-r--r-- | javax/tools/SimpleJavaFileObject.java | 27 |
3 files changed, 74 insertions, 0 deletions
diff --git a/javax/tools/ForwardingJavaFileObject.java b/javax/tools/ForwardingJavaFileObject.java index fa058cc0d..2ed9cb359 100644 --- a/javax/tools/ForwardingJavaFileObject.java +++ b/javax/tools/ForwardingJavaFileObject.java @@ -37,6 +37,9 @@ exception statement from your version. */ package javax.tools; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.NestingKind; + /** * Forwards calls to a specified {@link JavaFileObject}. * @@ -78,4 +81,22 @@ public class ForwardingJavaFileObject<F extends JavaFileObject> return ((JavaFileObject) fileObject).isNameCompatible(simpleName, kind); } + /** + * @inheritDoc + */ + @Override + public Modifier getAccessLevel() + { + return ((JavaFileObject) fileObject).getAccessLevel(); + } + + /** + * @inheritDoc + */ + @Override + public NestingKind getNestingKind() + { + return ((JavaFileObject) fileObject).getNestingKind(); + } + } diff --git a/javax/tools/JavaFileObject.java b/javax/tools/JavaFileObject.java index 09bd3417d..e8293316a 100644 --- a/javax/tools/JavaFileObject.java +++ b/javax/tools/JavaFileObject.java @@ -37,6 +37,9 @@ exception statement from your version. */ package javax.tools; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.NestingKind; + /** * Abstraction for tools working with source and class files. * All methods may throw a {@link SecurityException}. All @@ -96,4 +99,27 @@ public interface JavaFileObject */ boolean isNameCompatible(String simpleName, Kind kind); + /** + * Provides a hint about the access level of this class, based + * on its modifiers. If the access level is unknown, or this + * file object does not represent a class file, {@code null} + * is returned. + * + * @return the access level. + */ + Modifier getAccessLevel(); + + /** + * Provides a hint about the nesting level of this class. + * It may return {@link NestingKind#MEMBER} instead of + * {@link NestingKind#LOCAL} or {@link NestingKind#ANONYMOUS} + * if it can not determine the exact type of nesting. If + * the nesting level is completely unknown, or this file + * object does not represent a class file, {@code null} + * is returned. + * + * @return the nesting level. + */ + NestingKind getNestingKind(); + } diff --git a/javax/tools/SimpleJavaFileObject.java b/javax/tools/SimpleJavaFileObject.java index e885798a7..452858f12 100644 --- a/javax/tools/SimpleJavaFileObject.java +++ b/javax/tools/SimpleJavaFileObject.java @@ -47,6 +47,9 @@ import java.io.Writer; import java.net.URI; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.NestingKind; + /** * Provides a simple implementation of many of the * {@link JavaFileObject} methods, thus giving a useful basis @@ -251,4 +254,28 @@ public class SimpleJavaFileObject return uri; } + /** + * This implementation does nothing and always + * returns {@code null}. + * + * @return null. + */ + @Override + public Modifier getAccessLevel() + { + return null; + } + + /** + * This implementation does nothing and always + * returns {@code null}. + * + * @return null. + */ + @Override + public NestingKind getNestingKind() + { + return null; + } + } |