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

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

?? classfilewriter.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* -*- 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): * Roger Lawrence * * 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.classfile;import org.mozilla.javascript.ObjToIntMap;import org.mozilla.javascript.ObjArray;import org.mozilla.javascript.UintMap;import java.io.*;/** * ClassFileWriter * * A ClassFileWriter is used to write a Java class file. Methods are * provided to create fields and methods, and within methods to write * Java bytecodes. * * @author Roger Lawrence */public class ClassFileWriter {    /**     * Construct a ClassFileWriter for a class.     *     * @param className the name of the class to write, including     *        full package qualification.     * @param superClassName the name of the superclass of the class     *        to write, including full package qualification.     * @param sourceFileName the name of the source file to use for     *        producing debug information, or null if debug information     *        is not desired     */    public ClassFileWriter(String className, String superClassName,                           String sourceFileName)    {        generatedClassName = className;        itsConstantPool = new ConstantPool(this);        itsThisClassIndex = itsConstantPool.addClass(className);        itsSuperClassIndex = itsConstantPool.addClass(superClassName);        if (sourceFileName != null)            itsSourceFileNameIndex = itsConstantPool.addUtf8(sourceFileName);        itsFlags = ACC_PUBLIC;    }    public final String getClassName()    {        return generatedClassName;    }    /**     * Add an interface implemented by this class.     *     * This method may be called multiple times for classes that     * implement multiple interfaces.     *     * @param interfaceName a name of an interface implemented     *        by the class being written, including full package     *        qualification.     */    public void addInterface(String interfaceName) {        short interfaceIndex = itsConstantPool.addClass(interfaceName);        itsInterfaces.add(new Short(interfaceIndex));    }    public static final short        ACC_PUBLIC = 0x0001,        ACC_PRIVATE = 0x0002,        ACC_PROTECTED = 0x0004,        ACC_STATIC = 0x0008,        ACC_FINAL = 0x0010,        ACC_SYNCHRONIZED = 0x0020,        ACC_VOLATILE = 0x0040,        ACC_TRANSIENT = 0x0080,        ACC_NATIVE = 0x0100,        ACC_ABSTRACT = 0x0400;    /**     * Set the class's flags.     *     * Flags must be a set of the following flags, bitwise or'd     * together:     *      ACC_PUBLIC     *      ACC_PRIVATE     *      ACC_PROTECTED     *      ACC_FINAL     *      ACC_ABSTRACT     * TODO: check that this is the appropriate set     * @param flags the set of class flags to set     */    public void setFlags(short flags) {        itsFlags = flags;    }    static String getSlashedForm(String name)    {        return name.replace('.', '/');    }    /**     * Convert Java class name in dot notation into     * "Lname-with-dots-replaced-by-slashes;" form suitable for use as     * JVM type signatures.     */    public static String classNameToSignature(String name)    {        int nameLength = name.length();        int colonPos = 1 + nameLength;        char[] buf = new char[colonPos + 1];        buf[0] = 'L';        buf[colonPos] = ';';        name.getChars(0, nameLength, buf, 1);        for (int i = 1; i != colonPos; ++i) {            if (buf[i] == '.') {                buf[i] = '/';            }        }        return new String(buf, 0, colonPos + 1);    }    /**     * Add a field to the class.     *     * @param fieldName the name of the field     * @param type the type of the field using ...     * @param flags the attributes of the field, such as ACC_PUBLIC, etc.     *        bitwise or'd together     */    public void addField(String fieldName, String type, short flags) {        short fieldNameIndex = itsConstantPool.addUtf8(fieldName);        short typeIndex = itsConstantPool.addUtf8(type);        itsFields.add(new ClassFileField(fieldNameIndex, typeIndex, flags));    }    /**     * Add a field to the class.     *     * @param fieldName the name of the field     * @param type the type of the field using ...     * @param flags the attributes of the field, such as ACC_PUBLIC, etc.     *        bitwise or'd together     * @param value an initial integral value     */    public void addField(String fieldName, String type, short flags,                         int value)    {        short fieldNameIndex = itsConstantPool.addUtf8(fieldName);        short typeIndex = itsConstantPool.addUtf8(type);        ClassFileField field = new ClassFileField(fieldNameIndex, typeIndex,                                                  flags);        field.setAttributes(itsConstantPool.addUtf8("ConstantValue"),                            (short)0,                            (short)0,                            itsConstantPool.addConstant(value));        itsFields.add(field);    }    /**     * Add a field to the class.     *     * @param fieldName the name of the field     * @param type the type of the field using ...     * @param flags the attributes of the field, such as ACC_PUBLIC, etc.     *        bitwise or'd together     * @param value an initial long value     */    public void addField(String fieldName, String type, short flags,                         long value)    {        short fieldNameIndex = itsConstantPool.addUtf8(fieldName);        short typeIndex = itsConstantPool.addUtf8(type);        ClassFileField field = new ClassFileField(fieldNameIndex, typeIndex,                                                  flags);        field.setAttributes(itsConstantPool.addUtf8("ConstantValue"),                            (short)0,                            (short)2,                            itsConstantPool.addConstant(value));        itsFields.add(field);    }    /**     * Add a field to the class.     *     * @param fieldName the name of the field     * @param type the type of the field using ...     * @param flags the attributes of the field, such as ACC_PUBLIC, etc.     *        bitwise or'd together     * @param value an initial double value     */    public void addField(String fieldName, String type, short flags,                         double value)    {        short fieldNameIndex = itsConstantPool.addUtf8(fieldName);        short typeIndex = itsConstantPool.addUtf8(type);        ClassFileField field = new ClassFileField(fieldNameIndex, typeIndex,                                                  flags);        field.setAttributes(itsConstantPool.addUtf8("ConstantValue"),                            (short)0,                            (short)2,                            itsConstantPool.addConstant(value));        itsFields.add(field);    }    /**     * Add Information about java variable to use when generating the local     * variable table.     *     * @param name variable name.     * @param type variable type as bytecode descriptor string.     * @param startPC the starting bytecode PC where this variable is live,     *                 or -1 if it does not have a Java register.     * @param register the Java register number of variable     *                 or -1 if it does not have a Java register.     */    public void addVariableDescriptor(String name, String type, int startPC, int register)    {        int nameIndex = itsConstantPool.addUtf8(name);        int descriptorIndex = itsConstantPool.addUtf8(type);        int [] chunk = { nameIndex, descriptorIndex, startPC, register };        if (itsVarDescriptors == null) {            itsVarDescriptors = new ObjArray();        }        itsVarDescriptors.add(chunk);    }    /**     * Add a method and begin adding code.     *     * This method must be called before other methods for adding code,     * exception tables, etc. can be invoked.     *     * @param methodName the name of the method     * @param type a string representing the type     * @param flags the attributes of the field, such as ACC_PUBLIC, etc.     *        bitwise or'd together     */    public void startMethod(String methodName, String type, short flags) {        short methodNameIndex = itsConstantPool.addUtf8(methodName);        short typeIndex = itsConstantPool.addUtf8(type);        itsCurrentMethod = new ClassFileMethod(methodNameIndex, typeIndex,                                               flags);        itsMethods.add(itsCurrentMethod);    }    /**     * Complete generation of the method.     *     * After this method is called, no more code can be added to the     * method begun with <code>startMethod</code>.     *     * @param maxLocals the maximum number of local variable slots     *        (a.k.a. Java registers) used by the method     * @param vars the array of the variables for the method,     *        or null if none     */    public void stopMethod(short maxLocals) {        if (itsCurrentMethod == null)            throw new IllegalStateException("No method to stop");        fixLabelGotos();        itsMaxLocals = maxLocals;        int lineNumberTableLength = 0;        if (itsLineNumberTable != null) {            // 6 bytes for the attribute header            // 2 bytes for the line number count            // 4 bytes for each entry            lineNumberTableLength = 6 + 2 + (itsLineNumberTableTop * 4);        }        int variableTableLength = 0;        if (itsVarDescriptors != null) {            // 6 bytes for the attribute header            // 2 bytes for the variable count            // 10 bytes for each entry            variableTableLength = 6 + 2 + (itsVarDescriptors.size() * 10);        }        int attrLength = 2 +                    // attribute_name_index                         4 +                    // attribute_length                         2 +                    // max_stack                         2 +                    // max_locals                         4 +                    // code_length                         itsCodeBufferTop +                         2 +                    // exception_table_length                         (itsExceptionTableTop * 8) +                         2 +                    // attributes_count                         lineNumberTableLength +                         variableTableLength;        byte[] codeAttribute = new byte[attrLength];        int index = 0;        int codeAttrIndex = itsConstantPool.addUtf8("Code");        index = putInt16(codeAttrIndex, codeAttribute, index);        attrLength -= 6;                 // discount the attribute header        index = putInt32(attrLength, codeAttribute, index);        index = putInt16(itsMaxStack, codeAttribute, index);        index = putInt16(itsMaxLocals, codeAttribute, index);        index = putInt32(itsCodeBufferTop, codeAttribute, index);        System.arraycopy(itsCodeBuffer, 0, codeAttribute, index,                         itsCodeBufferTop);        index += itsCodeBufferTop;        if (itsExceptionTableTop > 0) {            index = putInt16(itsExceptionTableTop, codeAttribute, index);            for (int i = 0; i < itsExceptionTableTop; i++) {                ExceptionTableEntry ete = itsExceptionTable[i];                short startPC = (short)getLabelPC(ete.itsStartLabel);                short endPC = (short)getLabelPC(ete.itsEndLabel);                short handlerPC = (short)getLabelPC(ete.itsHandlerLabel);                short catchType = ete.itsCatchType;                if (startPC == -1)                    throw new IllegalStateException("start label not defined");                if (endPC == -1)                    throw new IllegalStateException("end label not defined");                if (handlerPC == -1)                    throw new IllegalStateException(                        "handler label not defined");                index = putInt16(startPC, codeAttribute, index);                index = putInt16(endPC, codeAttribute, index);                index = putInt16(handlerPC, codeAttribute, index);                index = putInt16(catchType, codeAttribute, index);            }        }        else {            // write 0 as exception table length            index = putInt16(0, codeAttribute, index);        }        int attributeCount = 0;        if (itsLineNumberTable != null)            attributeCount++;        if (itsVarDescriptors != null)            attributeCount++;        index = putInt16(attributeCount, codeAttribute, index);        if (itsLineNumberTable != null) {            int lineNumberTableAttrIndex                    = itsConstantPool.addUtf8("LineNumberTable");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区.www| 精品福利一区二区三区免费视频| 国产亚洲一二三区| 久久精品国产亚洲高清剧情介绍 | 色综合天天综合狠狠| 国产精品免费久久| 99国产精品国产精品毛片| 亚洲欧美激情小说另类| 欧美日韩一区不卡| 裸体在线国模精品偷拍| 制服丝袜亚洲精品中文字幕| 午夜激情一区二区| 在线成人av影院| 国产精品一区在线观看乱码 | 91传媒视频在线播放| 午夜精品影院在线观看| 欧美日韩精品福利| 日产国产欧美视频一区精品| 日韩欧美色电影| 91精品国产色综合久久不卡电影 | 亚洲国产综合人成综合网站| 色哟哟亚洲精品| 一卡二卡欧美日韩| 777午夜精品视频在线播放| 日韩精品乱码免费| 日韩午夜小视频| 高清视频一区二区| 亚洲专区一二三| 91精品国产欧美一区二区成人| 久久激情五月激情| 伊人夜夜躁av伊人久久| 欧美成人福利视频| 色综合久久66| 国产精品99久久久| 亚洲精品第1页| 26uuu精品一区二区| 色狠狠色狠狠综合| 国产精品亚洲综合一区在线观看| 亚洲少妇中出一区| 26uuu色噜噜精品一区二区| 色狠狠一区二区三区香蕉| 国产一区久久久| 日韩经典一区二区| 综合激情网...| www欧美成人18+| 欧美精品乱人伦久久久久久| av一区二区不卡| 热久久一区二区| 亚洲精品自拍动漫在线| 国产喷白浆一区二区三区| 欧美日韩国产另类不卡| thepron国产精品| 黑人精品欧美一区二区蜜桃| 国产精品每日更新| 2023国产精品视频| 欧美精品久久一区| 欧美三级视频在线观看| youjizz久久| 丁香婷婷综合色啪| 国产精品18久久久久久久久久久久| 午夜伦理一区二区| 午夜精品福利一区二区三区av| 亚洲少妇30p| ...中文天堂在线一区| 日本一区二区免费在线观看视频 | 91美女片黄在线观看| 国产一区激情在线| 精品一二线国产| 美国av一区二区| 精品在线亚洲视频| 国产乱色国产精品免费视频| 日韩国产精品大片| 另类小说视频一区二区| 美女爽到高潮91| 亚洲人成精品久久久久| 亚洲视频电影在线| 亚洲私人黄色宅男| 专区另类欧美日韩| 亚洲欧美电影院| 亚洲激情图片一区| 一区二区三区在线免费| 亚洲另类春色国产| 亚洲午夜久久久久久久久电影网| 亚洲综合在线电影| 亚洲一区二区黄色| 手机精品视频在线观看| 日韩电影网1区2区| 麻豆久久久久久| 国产美女精品人人做人人爽| 国产成人午夜高潮毛片| 成人免费黄色大片| 色一情一乱一乱一91av| 在线观看av不卡| 欧美一区二区三区四区五区| 日韩欧美久久久| 中文字幕不卡三区| 一区二区国产视频| 日本不卡视频在线| 国产精品一级二级三级| 91同城在线观看| 欧美午夜免费电影| 日韩精品一区二区三区视频| 欧美国产激情一区二区三区蜜月| 成人免费视频在线观看| 亚洲国产综合视频在线观看| 久久成人综合网| 成人av在线观| 91精品国产福利| 国产精品久久久久久亚洲毛片 | 2024国产精品视频| 亚洲人xxxx| 捆绑变态av一区二区三区| 国产91综合网| 欧美日韩视频在线观看一区二区三区 | 亚洲国产日韩综合久久精品| 3atv一区二区三区| 91麻豆高清视频| 在线国产亚洲欧美| 精品日韩一区二区三区免费视频| www激情久久| 一区二区三区在线高清| 蜜桃一区二区三区在线| 成人一区二区三区视频 | 不卡在线观看av| 欧美日韩成人一区| 国产精品毛片无遮挡高清| 日本成人中文字幕在线视频 | 91猫先生在线| 欧美大尺度电影在线| 国产蜜臀97一区二区三区| 日韩高清一级片| 色婷婷一区二区| 久久久综合精品| 日本午夜一本久久久综合| 99久久免费国产| 久久精子c满五个校花| 亚洲高清视频的网址| 9i在线看片成人免费| 日韩精品在线一区| 一区二区久久久久久| jizzjizzjizz欧美| 精品成人私密视频| 污片在线观看一区二区| 91丨九色丨蝌蚪丨老版| 久久这里只有精品视频网| 天堂成人国产精品一区| 在线亚洲一区观看| 国产精品久久久久久一区二区三区| 久久精品国产99久久6| 欧美日韩一区精品| 中文字幕日本乱码精品影院| 国产真实乱子伦精品视频| 日韩免费观看高清完整版在线观看| 亚洲一二三区在线观看| 日本精品一区二区三区四区的功能| 2017欧美狠狠色| 韩国在线一区二区| 精品理论电影在线观看| 麻豆精品国产传媒mv男同 | 制服丝袜亚洲色图| 午夜在线成人av| 欧美性大战久久久久久久| 亚洲婷婷国产精品电影人久久| 成人综合在线观看| 精品国产91久久久久久久妲己 | 久久久蜜桃精品| 精品一区二区三区免费播放| 欧美一区二区播放| 免费成人美女在线观看| 日韩欧美一区二区视频| 热久久国产精品| 精品日韩欧美在线| 经典三级视频一区| 2021久久国产精品不只是精品| 激情综合色丁香一区二区| 亚洲精品一区二区在线观看| 成人午夜视频在线观看| 亚洲国产精品成人综合 | 国产亚洲1区2区3区| 国产美女久久久久| 国产午夜亚洲精品理论片色戒 | 美女视频一区二区| 国产三级久久久| 972aa.com艺术欧美| 性感美女久久精品| 日韩精品中文字幕一区二区三区| 国产一区二区剧情av在线| 国产午夜精品一区二区三区嫩草 | 欧美性一级生活| 免费高清在线一区| 26uuu色噜噜精品一区二区| 成人午夜电影小说| 亚洲最大色网站| 日韩午夜激情免费电影| 国产九色精品成人porny| 中文字幕亚洲欧美在线不卡| 欧美日韩精品一区二区在线播放| 日日噜噜夜夜狠狠视频欧美人 | 99久久久国产精品| 亚洲国产视频网站|