亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? javaadapter.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Rhino code, released * May 6, 1999. * * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are * Copyright (C) 1997-1999 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Patrick Beard * Norris Boyd * Igor Bukanov * Mike McCabe * Matthias Radestock * Andi Vajda * Andrew Wason * Kemal Bayram * * Alternatively, the contents of this file may be used under the * terms of the GNU Public License (the "GPL"), in which case the * provisions of the GPL are applicable instead of those above. * If you wish to allow use of your version of this file only * under the terms of the GPL and not to allow others to use your * version of this file under the NPL, indicate your decision by * deleting the provisions above and replace them with the notice * and other provisions required by the GPL.  If you do not delete * the provisions above, a recipient may use your version of this * file under either the NPL or the GPL. */package org.mozilla.javascript;import org.mozilla.classfile.*;import java.lang.reflect.*;import java.io.*;import java.util.*;public final class JavaAdapter implements IdFunctionCall{    /**     * Provides a key with which to distinguish previously generated     * adapter classes stored in a hash table.     */    static class JavaAdapterSignature    {        Class superClass;        Class[] interfaces;        ObjToIntMap names;        JavaAdapterSignature(Class superClass, Class[] interfaces,                             ObjToIntMap names)        {            this.superClass = superClass;            this.interfaces = interfaces;            this.names = names;;        }        public boolean equals(Object obj)        {            if (!(obj instanceof JavaAdapterSignature))                return false;            JavaAdapterSignature sig = (JavaAdapterSignature) obj;            if (superClass != sig.superClass)                return false;            if (interfaces != sig.interfaces) {                if (interfaces.length != sig.interfaces.length)                    return false;                for (int i=0; i < interfaces.length; i++)                    if (interfaces[i] != sig.interfaces[i])                        return false;            }            if (names.size() != sig.names.size())                return false;            ObjToIntMap.Iterator iter = new ObjToIntMap.Iterator(names);            for (iter.start(); !iter.done(); iter.next()) {                String name = (String)iter.getKey();                int arity = iter.getValue();                if (arity != names.get(name, arity + 1))                    return false;            }            return true;        }        public int hashCode()        {            return superClass.hashCode()                | (0x9e3779b9 * (names.size() | (interfaces.length << 16)));        }    }    public static void init(Context cx, Scriptable scope, boolean sealed)    {        JavaAdapter obj = new JavaAdapter();        IdFunctionObject ctor = new IdFunctionObject(obj, FTAG, Id_JavaAdapter,                                                     "JavaAdapter", 1, scope);        ctor.markAsConstructor(null);        if (sealed) {            ctor.sealObject();        }        ctor.exportAsScopeProperty();    }    public Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope,                             Scriptable thisObj, Object[] args)    {        if (f.hasTag(FTAG)) {            if (f.methodId() == Id_JavaAdapter) {                return js_createAdpter(cx, scope, args);            }        }        throw f.unknown();    }    public static Object convertResult(Object result, Class c)    {        if (result == Undefined.instance &&            (c != ScriptRuntime.ObjectClass &&             c != ScriptRuntime.StringClass))        {            // Avoid an error for an undefined value; return null instead.            return null;        }        return Context.jsToJava(result, c);    }    public static Scriptable createAdapterWrapper(Scriptable obj,                                                  Object adapter)    {        Scriptable scope = ScriptableObject.getTopLevelScope(obj);        NativeJavaObject res = new NativeJavaObject(scope, adapter, null);        res.setPrototype(obj);        return res;    }    public static Object getAdapterSelf(Class adapterClass, Object adapter)        throws NoSuchFieldException, IllegalAccessException    {        Field self = adapterClass.getDeclaredField("self");        return self.get(adapter);    }    static Object js_createAdpter(Context cx, Scriptable scope, Object[] args)    {        int N = args.length;        if (N == 0) {            throw ScriptRuntime.typeError0("msg.adapter.zero.args");        }        Class superClass = null;        Class[] intfs = new Class[N - 1];        int interfaceCount = 0;        for (int i = 0; i != N - 1; ++i) {            Object arg = args[i];            if (!(arg instanceof NativeJavaClass)) {                throw ScriptRuntime.typeError2("msg.not.java.class.arg",                                               String.valueOf(i),                                               ScriptRuntime.toString(arg));            }            Class c = ((NativeJavaClass) arg).getClassObject();            if (!c.isInterface()) {                if (superClass != null) {                    throw ScriptRuntime.typeError2("msg.only.one.super",                              superClass.getName(), c.getName());                }                superClass = c;            } else {                intfs[interfaceCount++] = c;            }        }        if (superClass == null)            superClass = ScriptRuntime.ObjectClass;        Class[] interfaces = new Class[interfaceCount];        System.arraycopy(intfs, 0, interfaces, 0, interfaceCount);        Scriptable obj = ScriptRuntime.toObject(cx, scope, args[N - 1]);        Class adapterClass = getAdapterClass(scope, superClass, interfaces,                                             obj);        Class[] ctorParms = {            ScriptRuntime.ContextFactoryClass,            ScriptRuntime.ScriptableClass        };        Object[] ctorArgs = { cx.getFactory(), obj };        try {            Object adapter = adapterClass.getConstructor(ctorParms).                                 newInstance(ctorArgs);            return getAdapterSelf(adapterClass, adapter);        } catch (Exception ex) {            throw Context.throwAsScriptRuntimeEx(ex);        }    }    // Needed by NativeJavaObject serializer    public static void writeAdapterObject(Object javaObject,                                          ObjectOutputStream out)        throws IOException    {        Class cl = javaObject.getClass();        out.writeObject(cl.getSuperclass().getName());        Class[] interfaces = cl.getInterfaces();        String[] interfaceNames = new String[interfaces.length];        for (int i=0; i < interfaces.length; i++)            interfaceNames[i] = interfaces[i].getName();        out.writeObject(interfaceNames);        try {            Object delegee = cl.getField("delegee").get(javaObject);            out.writeObject(delegee);            return;        } catch (IllegalAccessException e) {        } catch (NoSuchFieldException e) {        }        throw new IOException();    }    // Needed by NativeJavaObject de-serializer    public static Object readAdapterObject(Scriptable self,                                           ObjectInputStream in)        throws IOException, ClassNotFoundException    {        ContextFactory factory;        Context cx = Context.getCurrentContext();        if (cx != null) {            factory = cx.getFactory();        } else {            factory = null;        }        Class superClass = Class.forName((String)in.readObject());        String[] interfaceNames = (String[])in.readObject();        Class[] interfaces = new Class[interfaceNames.length];        for (int i=0; i < interfaceNames.length; i++)            interfaces[i] = Class.forName(interfaceNames[i]);        Scriptable delegee = (Scriptable)in.readObject();        Class adapterClass = getAdapterClass(self, superClass, interfaces,                                             delegee);        Class[] ctorParms = {            ScriptRuntime.ContextFactoryClass,            ScriptRuntime.ScriptableClass,            ScriptRuntime.ScriptableClass        };        Object[] ctorArgs = { factory, delegee, self };        try {            return adapterClass.getConstructor(ctorParms).newInstance(ctorArgs);        } catch(InstantiationException e) {        } catch(IllegalAccessException e) {        } catch(InvocationTargetException e) {        } catch(NoSuchMethodException e) {        }        throw new ClassNotFoundException("adapter");    }    private static ObjToIntMap getObjectFunctionNames(Scriptable obj)    {        Object[] ids = ScriptableObject.getPropertyIds(obj);        ObjToIntMap map = new ObjToIntMap(ids.length);        for (int i = 0; i != ids.length; ++i) {            if (!(ids[i] instanceof String))                continue;            String id = (String) ids[i];            Object value = ScriptableObject.getProperty(obj, id);            if (value instanceof Function) {                Function f = (Function)value;                int length = ScriptRuntime.toInt32(                                 ScriptableObject.getProperty(f, "length"));                if (length < 0) {                    length = 0;                }                map.put(id, length);            }        }        return map;    }    private static Class getAdapterClass(Scriptable scope, Class superClass,                                         Class[] interfaces, Scriptable obj)    {        ClassCache cache = ClassCache.get(scope);        Hashtable generated = cache.javaAdapterGeneratedClasses;        ObjToIntMap names = getObjectFunctionNames(obj);        JavaAdapterSignature sig;        sig = new JavaAdapterSignature(superClass, interfaces, names);        Class adapterClass = (Class) generated.get(sig);        if (adapterClass == null) {            String adapterName = "adapter"                                 + cache.newClassSerialNumber();            byte[] code = createAdapterCode(names, adapterName,                                            superClass, interfaces, null);            adapterClass = loadAdapterClass(adapterName, code);            if (cache.isCachingEnabled()) {                generated.put(sig, adapterClass);            }        }        return adapterClass;    }    public static byte[] createAdapterCode(ObjToIntMap functionNames,                                           String adapterName,                                           Class superClass,                                           Class[] interfaces,                                           String scriptClassName)    {        ClassFileWriter cfw = new ClassFileWriter(adapterName,                                                  superClass.getName(),                                                  "<adapter>");        cfw.addField("factory", "Lorg/mozilla/javascript/ContextFactory;",                     (short) (ClassFileWriter.ACC_PUBLIC |                              ClassFileWriter.ACC_FINAL));        cfw.addField("delegee", "Lorg/mozilla/javascript/Scriptable;",                     (short) (ClassFileWriter.ACC_PUBLIC |                              ClassFileWriter.ACC_FINAL));        cfw.addField("self", "Lorg/mozilla/javascript/Scriptable;",                     (short) (ClassFileWriter.ACC_PUBLIC |                              ClassFileWriter.ACC_FINAL));        int interfacesCount = interfaces == null ? 0 : interfaces.length;        for (int i=0; i < interfacesCount; i++) {            if (interfaces[i] != null)                cfw.addInterface(interfaces[i].getName());        }        String superName = superClass.getName().replace('.', '/');        generateCtor(cfw, adapterName, superName);        generateSerialCtor(cfw, adapterName, superName);        if (scriptClassName != null)            generateEmptyCtor(cfw, adapterName, superName, scriptClassName);        ObjToIntMap generatedOverrides = new ObjToIntMap();        ObjToIntMap generatedMethods = new ObjToIntMap();        // generate methods to satisfy all specified interfaces.        for (int i = 0; i < interfacesCount; i++) {            Method[] methods = interfaces[i].getMethods();            for (int j = 0; j < methods.length; j++) {                Method method = methods[j];                int mods = method.getModifiers();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃免费网站一区二区三区| 精品国产污污免费网站入口| 国产欧美精品一区二区三区四区| 中文字幕不卡在线| 国产精品国产自产拍高清av | 欧美精品一区二区蜜臀亚洲| 麻豆精品在线视频| 久久日韩粉嫩一区二区三区| 欧美性受极品xxxx喷水| 国产呦精品一区二区三区网站| 久久99精品一区二区三区| 黄色资源网久久资源365| 国产精品久久久久久久浪潮网站| 91久久精品国产91性色tv| 蜜臀精品久久久久久蜜臀| 亚洲chinese男男1069| 成人欧美一区二区三区视频网页| 欧美日韩你懂得| 色欲综合视频天天天| 亚洲美女电影在线| 国产精品午夜电影| 久久香蕉国产线看观看99| 欧美日韩成人综合在线一区二区| 97se亚洲国产综合在线| 91小宝寻花一区二区三区| 亚洲午夜在线电影| 国产一区二区伦理| 丁香婷婷综合激情五月色| 精品系列免费在线观看| 国精品**一区二区三区在线蜜桃| 老司机精品视频导航| 蜜芽一区二区三区| 国产精一区二区三区| 91视频观看视频| 久久福利视频一区二区| 奇米一区二区三区| 国产一区二区三区四区五区美女| 国产精品自拍在线| 色欧美片视频在线观看在线视频| 91极品视觉盛宴| 日本一区二区免费在线| 国产亚洲午夜高清国产拍精品| 成人av综合在线| 欧美日本精品一区二区三区| 日韩亚洲国产中文字幕欧美| 欧美激情在线一区二区三区| 亚洲欧美在线高清| 精品一二三四在线| 精品视频全国免费看| 国产成人av影院| 久久新电视剧免费观看| 精品999久久久| 亚洲va国产天堂va久久en| 国产毛片精品国产一区二区三区| 91污片在线观看| 久久精品视频一区二区三区| 亚洲乱码国产乱码精品精小说| 精品无码三级在线观看视频| 欧美日韩精品高清| av在线不卡电影| 国产麻豆视频一区| 不卡视频一二三| 久久精品视频免费| 国产一区二区在线免费观看| 亚洲欧美经典视频| 亚洲免费观看在线视频| 日日夜夜免费精品视频| 国产精品一区二区黑丝| 欧美视频精品在线观看| 亚洲精品成人在线| 欧美日韩色综合| 中国色在线观看另类| 丁香五精品蜜臀久久久久99网站 | 91浏览器在线视频| 午夜精品久久一牛影视| 亚洲精品一区二区三区在线观看| 国产麻豆精品theporn| 亚洲成人av免费| 亚洲视频1区2区| 国产精品短视频| 久久综合久色欧美综合狠狠| 欧美亚洲综合另类| 成人久久18免费网站麻豆| 久久99国产精品成人| 亚洲自拍与偷拍| 亚洲欧美日韩人成在线播放| 日韩欧美中文一区二区| 久久久久久97三级| 久久亚洲精华国产精华液| 91麻豆精品国产91久久久使用方法| 国产麻豆精品95视频| 精品一区中文字幕| 久久aⅴ国产欧美74aaa| 亚洲成人av在线电影| 亚洲一区二区三区四区中文字幕| 国产精品久久国产精麻豆99网站| 日韩欧美成人一区二区| 91精品福利在线一区二区三区 | 欧美日韩不卡视频| 日本高清不卡aⅴ免费网站| 91无套直看片红桃| 在线免费观看视频一区| 精品视频在线视频| 欧美色精品在线视频| 欧美视频你懂的| 宅男噜噜噜66一区二区66| 777xxx欧美| 777色狠狠一区二区三区| 狠狠色丁香九九婷婷综合五月| 亚洲精品久久嫩草网站秘色| 久久一二三国产| 在线观看91精品国产麻豆| av在线一区二区三区| 国产成人99久久亚洲综合精品| 亚洲高清久久久| 国产精品久久久久婷婷| 精品久久国产字幕高潮| 欧美三级电影在线看| 色国产精品一区在线观看| 粉嫩在线一区二区三区视频| 欧美色图天堂网| 国产精品传媒视频| 国产剧情在线观看一区二区| 欧美色图激情小说| 一区二区三区美女| 91在线丨porny丨国产| 国产日韩欧美精品综合| 久久国产精品99久久久久久老狼| 欧美欧美午夜aⅴ在线观看| 亚洲欧洲日本在线| 精品中文字幕一区二区小辣椒| 激情综合网av| 色综合中文字幕| 日韩三级高清在线| 亚洲三级在线看| 视频一区二区不卡| av电影一区二区| 日韩一级黄色片| 樱花影视一区二区| 国产在线精品视频| 欧美在线视频日韩| 国产女同互慰高潮91漫画| 亚洲成人你懂的| 色婷婷亚洲婷婷| 日本一区二区电影| 国产在线精品一区二区不卡了| 欧洲精品在线观看| 中文字幕亚洲精品在线观看 | 亚洲精品日产精品乱码不卡| 麻豆专区一区二区三区四区五区| 日本大香伊一区二区三区| 国产亚洲精品7777| 国产v综合v亚洲欧| 久久精品视频在线看| 秋霞电影网一区二区| 精品国产亚洲一区二区三区在线观看| 一区二区三区四区在线播放| 91毛片在线观看| 亚洲欧美另类小说| 欧美三级蜜桃2在线观看| 亚洲国产日日夜夜| 日韩一区国产二区欧美三区| 麻豆中文一区二区| 中文字幕亚洲在| 欧美最猛黑人xxxxx猛交| 蜜臀av在线播放一区二区三区| 制服丝袜日韩国产| 国产69精品一区二区亚洲孕妇| 亚洲靠逼com| www日韩大片| 欧美高清www午色夜在线视频| 国产精品自在在线| 亚洲国产精品一区二区久久恐怖片| 欧美丝袜丝nylons| 一区二区三区资源| 国产日韩欧美精品一区| 欧美一区二区免费视频| 99re成人精品视频| 韩国欧美国产1区| 一区二区三区电影在线播| 欧美激情一区在线观看| 欧美电影免费观看高清完整版在线 | 欧美成人a∨高清免费观看| 福利一区在线观看| 国产精品99久| 国产不卡在线一区| 懂色中文一区二区在线播放| 久久精工是国产品牌吗| 国产综合久久久久久久久久久久| 日本aⅴ精品一区二区三区 | 成人免费视频一区| 成人精品国产免费网站| a4yy欧美一区二区三区| 99视频在线观看一区三区| 成人av电影免费观看| 日本高清不卡一区| 欧美电影免费观看高清完整版在| 91精品国产黑色紧身裤美女| 精品久久久久香蕉网| 中文字幕一区二区三区不卡|