On Mon, 2011-02-07 at 15:24 +0100, Dr Andrew John Hughes wrote: > > I guess I could keep it on my Github mirror until I have something > > concrete enough to be merged to trunk. > > > I'd prefer to have it in HEAD as long as it's clearly marked as stubs > (the NotImplementedException I mentioned) and there is work actively > taking place. > Then there's always the (slim) possibility someone else can work on it :-) That was my original thinking as well. Does the included patch look better to you? Mark, what do you think about this? Pekka >From 81362427a842e815bfe354036cd4201ee781880a Mon Sep 17 00:00:00 2001 From: Pekka Enberg <penberg@xxxxxxxxxx> Date: Thu, 3 Feb 2011 16:29:15 +0200 Subject: [PATCH] Invokedynamic API stubs This patch implements the work-in-progress invokedynamic API stubs described here: http://download.oracle.com/javase/7/docs/api/java/dyn/package-summary.html The classes don't do anything useful yet and don't even contain all the specified methods. Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- java/dyn/BootstrapMethod.java | 52 ++++++++++++++++++++++++ java/dyn/CallSite.java | 60 ++++++++++++++++++++++++++++ java/dyn/ClassValue.java | 45 +++++++++++++++++++++ java/dyn/ConstantCallSite.java | 46 +++++++++++++++++++++ java/dyn/InvokeDynamic.java | 49 +++++++++++++++++++++++ java/dyn/InvokeDynamicBootstrapError.java | 47 ++++++++++++++++++++++ java/dyn/Linkage.java | 45 +++++++++++++++++++++ java/dyn/LinkagePermission.java | 56 ++++++++++++++++++++++++++ java/dyn/MethodHandle.java | 62 +++++++++++++++++++++++++++++ java/dyn/MethodHandleProvider.java | 52 ++++++++++++++++++++++++ java/dyn/MethodHandles.java | 52 ++++++++++++++++++++++++ java/dyn/MethodType.java | 50 +++++++++++++++++++++++ java/dyn/NoAccessException.java | 47 ++++++++++++++++++++++ java/dyn/WrongMethodTypeException.java | 47 ++++++++++++++++++++++ 14 files changed, 710 insertions(+), 0 deletions(-) create mode 100644 java/dyn/BootstrapMethod.java create mode 100644 java/dyn/CallSite.java create mode 100644 java/dyn/ClassValue.java create mode 100644 java/dyn/ConstantCallSite.java create mode 100644 java/dyn/InvokeDynamic.java create mode 100644 java/dyn/InvokeDynamicBootstrapError.java create mode 100644 java/dyn/Linkage.java create mode 100644 java/dyn/LinkagePermission.java create mode 100644 java/dyn/MethodHandle.java create mode 100644 java/dyn/MethodHandleProvider.java create mode 100644 java/dyn/MethodHandles.java create mode 100644 java/dyn/MethodType.java create mode 100644 java/dyn/NoAccessException.java create mode 100644 java/dyn/WrongMethodTypeException.java diff --git a/java/dyn/BootstrapMethod.java b/java/dyn/BootstrapMethod.java new file mode 100644 index 0000000..d2ec24a --- /dev/null +++ b/java/dyn/BootstrapMethod.java @@ -0,0 +1,52 @@ +/* BootstrapMethod.java -- + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; +import static java.lang.annotation.RetentionPolicy.SOURCE; +import static java.lang.annotation.ElementType.*; + +/** + * @since 1.7 + */ +@Target(value={/*TYPE_USE,*/TYPE,METHOD,CONSTRUCTOR}) +@Retention(value=SOURCE) +public @interface BootstrapMethod +{ +} diff --git a/java/dyn/CallSite.java b/java/dyn/CallSite.java new file mode 100644 index 0000000..1ec4791 --- /dev/null +++ b/java/dyn/CallSite.java @@ -0,0 +1,60 @@ +/* CallSite.java -- Call site for invokedynamic. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import gnu.classpath.NotImplementedException; +import java.lang.reflect.Type; + +/** + * @since 1.7 + */ +public class CallSite + implements MethodHandleProvider +{ + public MethodHandle asMethodHandle() + throws NotImplementedException + { + return null; + } + + public MethodHandle asMethodHandle(MethodType type) + throws NotImplementedException, WrongMethodTypeException + { + return null; + } +} diff --git a/java/dyn/ClassValue.java b/java/dyn/ClassValue.java new file mode 100644 index 0000000..4c15b20 --- /dev/null +++ b/java/dyn/ClassValue.java @@ -0,0 +1,45 @@ +/* ClassValue.java -- + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +/** + * @since 1.7 + */ +public abstract class ClassValue<T> +{ +} diff --git a/java/dyn/ConstantCallSite.java b/java/dyn/ConstantCallSite.java new file mode 100644 index 0000000..eaed7af --- /dev/null +++ b/java/dyn/ConstantCallSite.java @@ -0,0 +1,46 @@ +/* ConstantCallSite.java -- Constant call site for invokedynamic. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +/** + * @since 1.7 + */ +public class ConstantCallSite + extends CallSite +{ +} diff --git a/java/dyn/InvokeDynamic.java b/java/dyn/InvokeDynamic.java new file mode 100644 index 0000000..1352ec8 --- /dev/null +++ b/java/dyn/InvokeDynamic.java @@ -0,0 +1,49 @@ +/* InvokeDynamic.java -- Syntantic marker class for invokedynamic instruction. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +/** + * An InvokeDynamic is used as syntantic marker for classes that have no + * methods nor instances which are accessed through the + * <code>invokedynamic</code> bytecode instruction. + * + * @since 1.7 + */ +public final class InvokeDynamic +{ +} diff --git a/java/dyn/InvokeDynamicBootstrapError.java b/java/dyn/InvokeDynamicBootstrapError.java new file mode 100644 index 0000000..2645f80 --- /dev/null +++ b/java/dyn/InvokeDynamicBootstrapError.java @@ -0,0 +1,47 @@ +/* InvokeDynamicBootstrapError.java -- + Copyright (C) 2011 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 java.dyn; + +/** + * @since 1.7 + */ +public class InvokeDynamicBootstrapError + extends LinkageError +{ + private static final long serialVersionUID = -1; +} diff --git a/java/dyn/Linkage.java b/java/dyn/Linkage.java new file mode 100644 index 0000000..3acebd0 --- /dev/null +++ b/java/dyn/Linkage.java @@ -0,0 +1,45 @@ +/* Linkage.java -- + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +/** + * @since 1.7 + */ +public class Linkage +{ +} diff --git a/java/dyn/LinkagePermission.java b/java/dyn/LinkagePermission.java new file mode 100644 index 0000000..ea13f65 --- /dev/null +++ b/java/dyn/LinkagePermission.java @@ -0,0 +1,56 @@ +/* LinkagePermission.java -- + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import gnu.classpath.NotImplementedException; +import java.io.Serializable; +import java.security.Guard; + +/** + * @since 1.7 + */ +public final class LinkagePermission + implements Serializable, Guard +{ + private static final long serialVersionUID = -1; + + public void checkGuard(Object obj) + throws NotImplementedException + { + } +} diff --git a/java/dyn/MethodHandle.java b/java/dyn/MethodHandle.java new file mode 100644 index 0000000..8a70bdc --- /dev/null +++ b/java/dyn/MethodHandle.java @@ -0,0 +1,62 @@ +/* MethodHandle.java -- Method handle for invokedynamic. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import gnu.classpath.NotImplementedException; +import java.lang.reflect.Type; + +/** A MethodHandle is a handle to executable reference to a method, + * constructor, or field used by theinvokedynamic bytecode instruction. + * + * @since 1.7 + */ +public abstract class MethodHandle + implements MethodHandleProvider +{ + public MethodHandle asMethodHandle() + throws NotImplementedException + { + return null; + } + + public MethodHandle asMethodHandle(MethodType type) + throws NotImplementedException, WrongMethodTypeException + { + return null; + } +} diff --git a/java/dyn/MethodHandleProvider.java b/java/dyn/MethodHandleProvider.java new file mode 100644 index 0000000..afc5dee --- /dev/null +++ b/java/dyn/MethodHandleProvider.java @@ -0,0 +1,52 @@ +/* MethodHandleProvider.java -- Method handle provider for invokedynamic. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import java.lang.reflect.Type; + +/** + * A MethodHandleProvider represents an object that provides a target method + * handler for invokedynamic bytecode instruction. + * + * @since 1.7 + */ +public interface MethodHandleProvider +{ + MethodHandle asMethodHandle(); + MethodHandle asMethodHandle(MethodType type) throws WrongMethodTypeException; +} diff --git a/java/dyn/MethodHandles.java b/java/dyn/MethodHandles.java new file mode 100644 index 0000000..2e5ed86 --- /dev/null +++ b/java/dyn/MethodHandles.java @@ -0,0 +1,52 @@ +/* MethodHandles.java -- Method handle helper methods. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import java.lang.reflect.Type; + +/** + * MethodHandles contains static helper methods for method handles. + * + * @since 1.7 + */ +public class MethodHandles +{ + public static final class Lookup + { + } +} diff --git a/java/dyn/MethodType.java b/java/dyn/MethodType.java new file mode 100644 index 0000000..f8b924f --- /dev/null +++ b/java/dyn/MethodType.java @@ -0,0 +1,50 @@ +/* MethodType.java -- Method handle argument and return types. + Copyright (C) 2011 Free Software Foundation + +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 java.dyn; + +import java.lang.reflect.Type; + +/** + * A MethodType represents argument and return types of method handles. + * + * @since 1.7 + */ +public final class MethodType + implements Type +{ +} diff --git a/java/dyn/NoAccessException.java b/java/dyn/NoAccessException.java new file mode 100644 index 0000000..1e1578e --- /dev/null +++ b/java/dyn/NoAccessException.java @@ -0,0 +1,47 @@ +/* NoAccessException.java -- + Copyright (C) 2011 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 java.dyn; + +/** + * @since 1.7 + */ +public class NoAccessException + extends Exception +{ + private static final long serialVersionUID = -1; +} diff --git a/java/dyn/WrongMethodTypeException.java b/java/dyn/WrongMethodTypeException.java new file mode 100644 index 0000000..db114e0 --- /dev/null +++ b/java/dyn/WrongMethodTypeException.java @@ -0,0 +1,47 @@ +/* WrongMethodTypeException.java -- + Copyright (C) 2011 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 java.dyn; + +/** + * @since 1.7 + */ +public class WrongMethodTypeException + extends RuntimeException +{ + private static final long serialVersionUID = -1; +} -- 1.7.1