summaryrefslogtreecommitdiff
path: root/java/jdk15/files/patch-liveconnect_ReplaceMethod.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/jdk15/files/patch-liveconnect_ReplaceMethod.java')
-rw-r--r--java/jdk15/files/patch-liveconnect_ReplaceMethod.java93
1 files changed, 0 insertions, 93 deletions
diff --git a/java/jdk15/files/patch-liveconnect_ReplaceMethod.java b/java/jdk15/files/patch-liveconnect_ReplaceMethod.java
deleted file mode 100644
index 829e43452e6c..000000000000
--- a/java/jdk15/files/patch-liveconnect_ReplaceMethod.java
+++ /dev/null
@@ -1,93 +0,0 @@
-$FreeBSD$
-
---- ../../deploy/src/plugin/src/share/classes/sun/plugin/liveconnect/ReplaceMethod.java 1 Jan 1970 00:00:00 -0000
-+++ ../../deploy/src/plugin/src/share/classes/sun/plugin/liveconnect/ReplaceMethod.java 3 Dec 2004 03:56:58 -0000 1.1
-@@ -0,0 +1,88 @@
-+/*
-+ * @(#)ReplaceMethod.java 1.1 04/06/20
-+ *
-+ * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-+ */
-+package sun.plugin.liveconnect;
-+
-+import java.lang.reflect.Method;
-+import java.lang.reflect.Modifier;
-+import sun.plugin.javascript.JSClassLoader;
-+
-+public class ReplaceMethod {
-+ /*
-+ * Replace the inaccessible method by a suitable method on public
-+ * class/interface accessible to the calling JavaScript code.
-+ * Returns null if accessible method is not found.
-+ */
-+ static Method getJScriptMethod(Method start) {
-+ Class cls = start.getDeclaringClass();
-+
-+ if (Modifier.isPublic(cls.getModifiers())) {
-+ return start;
-+ }
-+
-+ String name = start.getName();
-+ Class[] params = start.getParameterTypes();
-+
-+ Method result = null;
-+ while (cls != null && result == null) {
-+ result = getPublicMethod(cls, name, params);
-+ if (result == null) {
-+ result = getJScriptInterfaceMethod(cls, name, params);
-+ }
-+ cls = cls.getSuperclass();
-+ }
-+ return result;
-+ }
-+
-+ /*
-+ * Process the immediate interfaces of this class or interface.
-+ */
-+ static Method getJScriptInterfaceMethod(Class cls, String name, Class[] params) {
-+ Method result = null;
-+ Class[] intfs = cls.getInterfaces();
-+ for (int i=0; i < intfs.length && result == null; i++) {
-+ Class intf = intfs[i];
-+ result = getPublicMethod(intf, name, params);
-+ if (result == null) {
-+ result = getJScriptInterfaceMethod(intf, name, params);
-+ }
-+ }
-+ return result;
-+ }
-+
-+ /*
-+ *
-+ * Process the methods in this class or interface
-+ */
-+ static private Method getPublicMethod(Class cls, String name, Class[] params) {
-+ try {
-+ /*
-+ * This class or interface is non-public so we
-+ * can't use any of it's methods. Go back and
-+ * try again with a superclass or superinterface.
-+ */
-+ if (!Modifier.isPublic(cls.getModifiers())) {
-+ return null;
-+ }
-+
-+ /*
-+ * This call will fail if 'cls' is in a restricted
-+ * package and we don't have permission to access
-+ * it.
-+ */
-+ if (!JSClassLoader.isPackageAccessible(cls)) {
-+ return null;
-+ }
-+ return cls.getMethod(name, params);
-+ } catch (NoSuchMethodException nsme) {
-+ return null;
-+ } catch (SecurityException se) {
-+ return null;
-+ }
-+ }
-+}
-+
-+