diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-11-25 22:23:17 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-11-25 22:23:17 +0000 |
commit | ee33a9b464499659a674b26243e57fa9a349ab47 (patch) | |
tree | e8793f8e0cad94c4af2e1e7dd56e30cf22bfe1fb | |
parent | 2779d6fe0f5dd175c54f7e415753b0224c593c03 (diff) | |
download | classpath-ee33a9b464499659a674b26243e57fa9a349ab47.tar.gz |
Provide implementations of ForwardingFileObject and ForwardingJavaFileObject. Set source/target to 1.6 for @Override.
2012-11-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
* javax/tools/FileObject.java:
Add missing comment in header.
* javax/tools/ForwardingFileObject.java:
New class.
(fileObject): Added.
(ForwardingFileObject(F)): Implemented.
(delete()): Likewise.
(getCharContent(boolean)): Likewise.
(getLastModified()): Likewise.
(getName()): Likewise.
(openInputStream()): Likewise.
(openOutputStream()): Likewise.
(openReader(boolean)): Likewise.
(openWriter()): Likewise.
(toUri()): Likewise.
* javax/tools/ForwardingJavaFileObject.java:
New class.
(ForwardingJavaFileObject(F)): Implemented.
(getKind()): Likewise.
(isNameCompatible(String,Kind)): Likewise.
* lib/Makefile.am:
Bump source/target to 1.6 to allow use of
@Override on interface implementations.
Signed-off-by: Andrew John Hughes <gnu_andrew@member.fsf.org>
-rw-r--r-- | ChangeLog | 26 | ||||
-rw-r--r-- | javax/tools/FileObject.java | 2 | ||||
-rw-r--r-- | javax/tools/ForwardingFileObject.java | 160 | ||||
-rw-r--r-- | javax/tools/ForwardingJavaFileObject.java | 80 | ||||
-rw-r--r-- | lib/Makefile.am | 4 |
5 files changed, 269 insertions, 3 deletions
@@ -1,3 +1,29 @@ +2012-11-25 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/tools/FileObject.java: + Add missing comment in header. + * javax/tools/ForwardingFileObject.java: + New class. + (fileObject): Added. + (ForwardingFileObject(F)): Implemented. + (delete()): Likewise. + (getCharContent(boolean)): Likewise. + (getLastModified()): Likewise. + (getName()): Likewise. + (openInputStream()): Likewise. + (openOutputStream()): Likewise. + (openReader(boolean)): Likewise. + (openWriter()): Likewise. + (toUri()): Likewise. + * javax/tools/ForwardingJavaFileObject.java: + New class. + (ForwardingJavaFileObject(F)): Implemented. + (getKind()): Likewise. + (isNameCompatible(String,Kind)): Likewise. + * lib/Makefile.am: + Bump source/target to 1.6 to allow use of + @Override on interface implementations. + 2012-11-19 Andrew John Hughes <gnu_andrew@member.fsf.org> * javax/annotation/processing/Filer.java: diff --git a/javax/tools/FileObject.java b/javax/tools/FileObject.java index e04c056c7..bde59eab3 100644 --- a/javax/tools/FileObject.java +++ b/javax/tools/FileObject.java @@ -1,4 +1,4 @@ -/* FileObject.java -- +/* FileObject.java -- File object abstraction. Copyright (C) 2008 Free Software Foundation, Inc. This file is part of GNU Classpath. diff --git a/javax/tools/ForwardingFileObject.java b/javax/tools/ForwardingFileObject.java new file mode 100644 index 000000000..33ba40caf --- /dev/null +++ b/javax/tools/ForwardingFileObject.java @@ -0,0 +1,160 @@ +/* ForwardingFileObject.java -- File object that forwards to another. + Copyright (C) 2012 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.tools; + +import java.io.InputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; + +import java.net.URI; + +/** + * Forwards calls to a specified file object. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.6 + */ +public class ForwardingFileObject<F extends FileObject> + implements FileObject +{ + + /** + * The file object to delegate to. + */ + protected F fileObject; + + /** + * Creates a new forwarder, delegating calls to the + * specified object. + * + * @param obj the object to forward calls to. + */ + protected ForwardingFileObject(F obj) + { + fileObject = obj; + } + + /** + * @inheritDoc + */ + @Override + public boolean delete() + { + return fileObject.delete(); + } + + /** + * @inheritDoc + */ + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) + throws IOException + { + return fileObject.getCharContent(ignoreEncodingErrors); + } + + /** + * @inheritDoc + */ + @Override + public long getLastModified() + { + return fileObject.getLastModified(); + } + + /** + * @inheritDoc + */ + @Override + public String getName() + { + return fileObject.getName(); + } + + /** + * @inheritDoc + */ + @Override + public InputStream openInputStream() + throws IOException + { + return fileObject.openInputStream(); + } + + /** + * @inheritDoc + */ + @Override + public OutputStream openOutputStream() + throws IOException + { + return fileObject.openOutputStream(); + } + + /** + * @inheritDoc + */ + @Override + public Reader openReader(boolean ignoreEncodingErrors) + throws IOException + { + return fileObject.openReader(ignoreEncodingErrors); + } + + /** + * @inheritDoc + */ + @Override + public Writer openWriter() + throws IOException + { + return fileObject.openWriter(); + } + + /** + * @inheritDoc + */ + @Override + public URI toUri() + { + return fileObject.toUri(); + } + +} diff --git a/javax/tools/ForwardingJavaFileObject.java b/javax/tools/ForwardingJavaFileObject.java new file mode 100644 index 000000000..a66990d24 --- /dev/null +++ b/javax/tools/ForwardingJavaFileObject.java @@ -0,0 +1,80 @@ +/* ForwardingJavaFileObject.java -- Java file object that forwards to another. + Copyright (C) 2012 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.tools; + +/** + * Forwards calls to a specified {@link JavaFileObject}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.6 + */ +public class ForwardingJavaFileObject<F extends JavaFileObject> + extends ForwardingFileObject<F> + implements JavaFileObject +{ + + /** + * Creates a new forwarder, delegating calls to the + * specified object. + * + * @param obj the object to forward calls to. + */ + protected ForwardingJavaFileObject(F obj) + { + super(obj); + } + + /** + * @inheritDoc + */ + @Override + public JavaFileObject.Kind getKind() + { + return ((JavaFileObject) fileObject).getKind(); + } + + /** + * @inheritDoc + */ + @Override + public boolean isNameCompatible(String simpleName, JavaFileObject.Kind kind) + { + return ((JavaFileObject) fileObject).isNameCompatible(simpleName, kind); + } + +} diff --git a/lib/Makefile.am b/lib/Makefile.am index 50d1baa9b..97a8b6926 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -9,9 +9,9 @@ compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$ # handling source to bytecode compiler programs like gcj, jikes and kjc if GCJ_JAVAC -JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --bootclasspath='' --classpath=$(compile_classpath) -d . @classes +JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.6 -ftarget=1.6 --bootclasspath='' --classpath=$(compile_classpath) -d . @classes else -JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 -bootclasspath '' -classpath $(compile_classpath) -d . @classes +JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.6 -target 1.6 -bootclasspath '' -classpath $(compile_classpath) -d . @classes endif if CREATE_COLLECTIONS |