Re: [RFC/PATCH] Invokedynamic API stubs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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






[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux