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

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

?? propertydefinition.java

?? 對xml很好的java處理引擎,編譯中綁定xml
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*Copyright (c) 2003-2007, Dennis M. SosnoskiAll rights reserved.Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this   list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice,   this list of conditions and the following disclaimer in the documentation   and/or other materials provided with the distribution. * Neither the name of JiBX nor the names of its contributors may be used   to endorse or promote products derived from this software without specific   prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FORANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/package org.jibx.binding.def;import java.util.ArrayList;import org.jibx.binding.classes.BranchWrapper;import org.jibx.binding.classes.ClassFile;import org.jibx.binding.classes.ClassItem;import org.jibx.binding.classes.ContextMethodBuilder;import org.jibx.binding.classes.MethodBuilder;import org.jibx.binding.model.ClassUtils;import org.jibx.binding.util.IntegerCache;import org.jibx.runtime.JiBXException;/** * Property definition from binding. This organizes shared information for * bindings linked to fields or get/set methods of an object, and provides * methods for related code generation. * * @author Dennis M. Sosnoski */public class PropertyDefinition{    //    // Constants and such related to code generation.        // recognized test-method signatures.    private static final String[] TEST_METHOD_SIGNATURES =    {        "(Lorg/jibx/runtime/IMarshallingContext;)Z",        "()Z"    };        // recognized get-method signatures.    private static final String[] GET_METHOD_SIGNATURES =    {        "(Lorg/jibx/runtime/IMarshallingContext;)",        "()"    };        //    // Actual instance data        /** Reference to "this" property of object flag. */    private boolean m_isThis;        /** Reference to implicit value from collection. */    private boolean m_isImplicit;    /** Optional item flag. */    private boolean m_isOptional;    /** Containing object context. */    private final IContextObj m_objContext;    /** Fully qualified name of actual type of value. */    private final String m_typeName;        /** Fully qualified name of declared type of value loaded. */    private final String m_getValueType;        /** Fully qualified name of declared type of value stored. */    private final String m_setValueType;    /** Information for field (if given, may be <code>null</code>). */    private final ClassItem m_fieldItem;    /** Information for test method (if given, may be <code>null</code>). */    private final ClassItem m_testMethod;    /** Information for get method (if given, may be <code>null</code>). */    private final ClassItem m_getMethod;    /** Information for set method (if given, may be <code>null</code>). */    private final ClassItem m_setMethod;    /**     * Constructor.     *     * @param parent containing binding definition structure     * @param obj containing object context     * @param type fully qualified name of type     * @param isthis "this" object reference flag     * @param opt optional property flag     * @param fname containing object field name for property (may be     * <code>null</code>)     * @param test containing object method to test for property present (may be     * <code>null</code>)     * @param get containing object method to get property value (may be     * <code>null</code>)     * @param set containing object method to set property value (may be     * <code>null</code>)     * @throws JiBXException if configuration error     */    public PropertyDefinition(IContainer parent, IContextObj obj, String type,        boolean isthis, boolean opt, String fname, String test, String get,        String set) throws JiBXException {        m_objContext = obj;        m_isThis = isthis;        m_isOptional = opt;        ClassFile cf = m_objContext.getBoundClass().getClassFile();        m_isImplicit = false;        String dtype = null;        String gtype = null;        String stype = null;        if (isthis) {            if (type == null) {                dtype = gtype = stype = cf.getName();            } else {                dtype = gtype = stype = type;            }        }        if (fname == null) {            m_fieldItem = null;        } else {            m_fieldItem = cf.getField(fname);            dtype = gtype = stype = m_fieldItem.getTypeName();        }        if (test == null) {            m_testMethod = null;        } else {            if (opt) {                m_testMethod = cf.getMethod(test, TEST_METHOD_SIGNATURES);                if (m_testMethod == null) {                    throw new JiBXException("test-method " + test +                        " not found in class " + cf.getName());                }            } else {                throw new JiBXException                    ("Test method only allowed for optional properties");            }        }        if (get == null) {            m_getMethod = null;        } else {            m_getMethod = cf.getMethod(get, GET_METHOD_SIGNATURES);            if (m_getMethod == null) {                throw new JiBXException("get-method " + get +                    " not found in class " + cf.getName());            } else {                gtype = m_getMethod.getTypeName();                if (dtype == null) {                    dtype = gtype;                }            }        }        if (set == null) {            m_setMethod = null;        } else {                        // need to handle overloads, so generate possible signatures            ArrayList sigs = new ArrayList();            if (m_getMethod != null) {                String psig = ClassUtils.getSignature(gtype);                sigs.add("(" + psig +                    "Lorg/jibx/runtime/IUnmarshallingContext;" + ")V");                sigs.add("(" + psig + ")V");            }            if (type != null) {                String psig = ClassUtils.getSignature(type);                sigs.add("(" + psig +                    "Lorg/jibx/runtime/IUnmarshallingContext;" + ")V");                sigs.add("(" + psig + ")V");            }            if (m_fieldItem != null) {                String psig = m_fieldItem.getSignature();                sigs.add("(" + psig +                    "Lorg/jibx/runtime/IUnmarshallingContext;" + ")V");                sigs.add("(" + psig + ")V");            }            sigs.add                ("(Ljava/lang/Object;Lorg/jibx/runtime/IUnmarshallingContext;)V");            sigs.add("(Ljava/lang/Object;)V");                        // set method needs verification of argument and return type            ClassItem setmeth = cf.getMethod(set,                (String[])sigs.toArray(new String[0]));            if (setmeth == null) {                                // nothing known about signature, try anything by name                setmeth = cf.getMethod(set, "");                if (setmeth != null) {                    if (setmeth.getArgumentCount() != 1 ||                        !setmeth.getTypeName().equals("void")) {                        setmeth = null;                    }                }            }                        // check if method found            m_setMethod = setmeth;            if (m_setMethod == null) {                throw new JiBXException("set-method " + set +                    " not found in class " + cf.getName());            } else {                stype = m_setMethod.getArgumentType(0);                if (dtype == null) {                    dtype = stype;                }            }        }        if (gtype == null) {            gtype = "java.lang.Object";        }        m_getValueType = gtype;        m_setValueType = stype;        // check that enough information is supplied        BindingDefinition root = parent.getBindingRoot();        if (!isthis && m_fieldItem == null) {            if (root.isInput() && m_setMethod == null) {                throw new JiBXException                    ("Missing way to set value for input binding");            }            if (root.isOutput() && m_getMethod == null) {                throw new JiBXException                    ("Missing way to get value for output binding");            }        }                // check that type information is consistent        if (type == null) {            m_typeName = dtype;        } else {            m_typeName = type;            boolean valid = true;            if (isthis) {                valid = ClassItem.isAssignable(dtype, type);            } else {                if (root.isInput()) {                    valid = ClassItem.isAssignable(type, m_setValueType) ||                        ClassItem.isAssignable(m_setValueType, type);                }                if (valid && root.isOutput()) {                    valid = ClassItem.isAssignable(type, m_getValueType) ||                        ClassItem.isAssignable(m_getValueType, type);                }            }            if (!valid) {                throw new JiBXException                    ("Incompatible types for property definition");            }        }    }    /**     * Constructor for "this" object reference.     *     * @param obj containing object context     * @param opt optional property flag     */    public PropertyDefinition(IContextObj obj, boolean opt) {        m_objContext = obj;        m_isThis = true;        m_isImplicit = false;        m_isOptional = opt;        ClassFile cf = m_objContext.getBoundClass().getClassFile();        m_fieldItem = m_testMethod = m_getMethod = m_setMethod = null;        m_typeName = m_getValueType = m_setValueType = cf.getName();    }    /**     * Constructor for implicit object reference.     *     * @param type object type supplied     * @param obj containing object context     * @param opt optional property flag     */    public PropertyDefinition(String type, IContextObj obj, boolean opt) {        m_objContext = obj;        m_isImplicit = true;        m_isThis = false;        m_isOptional = opt;        m_fieldItem = m_testMethod = m_getMethod = m_setMethod = null;        m_typeName = m_getValueType = m_setValueType = type;    }    /**     * Check if property is "this" reference for object.     *     * @return <code>true</code> if reference to "this", <code>false</code> if     * not     */    public boolean isThis() {        return m_isThis;    }    /**     * Check if property is implicit value from collection.     *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性大战久久久久久久蜜臀| 高清日韩电视剧大全免费| www.亚洲免费av| 日韩欧美资源站| 亚洲精品视频在线| 高清不卡一区二区| 日韩精品一区二区三区中文精品| 亚洲精品国产精品乱码不99| 国产91精品在线观看| 日韩欧美在线123| 亚洲一级不卡视频| 99精品视频免费在线观看| 久久免费午夜影院| 日韩经典中文字幕一区| 日本黄色一区二区| 国产精品视频线看| 国产高清在线精品| 精品国产免费一区二区三区香蕉| 午夜精品久久久久久久| 一本久久综合亚洲鲁鲁五月天| 国产三级一区二区三区| 极品少妇xxxx偷拍精品少妇| 91精品国产91久久久久久最新毛片| 一区二区三区**美女毛片| 91色九色蝌蚪| 亚洲免费视频中文字幕| av不卡在线观看| 国产精品第一页第二页第三页| 91精品麻豆日日躁夜夜躁| 一级日本不卡的影视| 一本色道久久综合亚洲91| 日韩一区在线看| eeuss鲁片一区二区三区在线看| 国产性做久久久久久| 国产成人精品影视| 国产日韩欧美综合一区| 国产经典欧美精品| 国产色产综合产在线视频| 国产盗摄精品一区二区三区在线| 精品国产成人系列| 激情欧美一区二区三区在线观看| 精品毛片乱码1区2区3区| 精品亚洲成a人| 久久中文娱乐网| 韩国理伦片一区二区三区在线播放| 欧美第一区第二区| 激情av综合网| 久久久久九九视频| 成人av在线播放网址| 中文字幕日韩精品一区| 色综合天天综合网天天狠天天| 亚洲精品自拍动漫在线| 欧美影院午夜播放| 午夜精品成人在线视频| 日韩欧美一区二区久久婷婷| 久久99国内精品| 中文字幕免费一区| 91免费视频大全| 亚洲综合在线电影| 欧美一区二区三区小说| 国产一区欧美日韩| 中文字幕五月欧美| 欧美撒尿777hd撒尿| 日本色综合中文字幕| 精品久久久影院| 成人激情视频网站| 亚洲一区二区三区爽爽爽爽爽| 欧美电影一区二区| 国产美女娇喘av呻吟久久| 国产精品久久久久久久久快鸭 | 亚洲国产日韩一区二区| 日韩av在线发布| 日韩欧美国产麻豆| 丁香桃色午夜亚洲一区二区三区 | 正在播放一区二区| 国产乱码精品一区二区三区忘忧草| 亚洲国产成人在线| 欧美这里有精品| 免费成人美女在线观看.| 国产欧美精品一区| 欧美日韩国产在线播放网站| 九九视频精品免费| 亚洲精品日产精品乱码不卡| 欧美一区二区三区视频免费| 成人免费视频视频| 日本中文字幕不卡| 日本一区二区视频在线| 精品视频在线看| 国产乱国产乱300精品| 亚洲精品一二三四区| 精品国产免费一区二区三区四区| 97久久精品人人做人人爽| 日本成人在线一区| 中文字幕中文字幕一区| 91麻豆精品91久久久久同性| 成人高清伦理免费影院在线观看| 亚洲成年人影院| 亚洲国产精品成人综合色在线婷婷 | 综合亚洲深深色噜噜狠狠网站| 欧美日韩精品一区二区| 国产精品自拍在线| 亚洲国产精品一区二区久久| 久久青草欧美一区二区三区| 亚洲大片免费看| 久久你懂得1024| 欧美精品乱人伦久久久久久| 国产传媒一区在线| 亚洲成人av一区| 中文字幕人成不卡一区| 日韩一区二区麻豆国产| 色域天天综合网| 国产剧情一区在线| 青草av.久久免费一区| 亚洲精品国产a| 国产欧美精品一区二区色综合朱莉| 欧美日韩国产成人在线91| 国产91丝袜在线观看| 久久精品国产免费看久久精品| 亚洲综合色网站| 中文字幕在线一区免费| 精品1区2区在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 丰满少妇久久久久久久| 久久国产精品72免费观看| 午夜精品久久久久久久久久久| 亚洲欧美区自拍先锋| 国产日韩欧美精品在线| 亚洲精品在线观| 91精品国产综合久久久蜜臀粉嫩| 一本色道久久综合亚洲精品按摩| 成人综合在线观看| 国产主播一区二区三区| 蜜臀国产一区二区三区在线播放| 亚洲影视在线播放| 1000精品久久久久久久久| 国产丝袜在线精品| 欧美精品一区视频| 日韩精品一区二区在线| 日韩一区二区三区av| 在线成人免费观看| 欧美日韩一级视频| 欧美少妇bbb| 欧美日韩国产片| 欧美色成人综合| 欧美日韩高清一区二区不卡 | 久久精品99久久久| 欧美bbbbb| 蜜臀久久99精品久久久画质超高清 | 日韩欧美一区二区久久婷婷| 91麻豆精品国产自产在线| 欧美精品久久一区| 91精品国产aⅴ一区二区| 91精品国产aⅴ一区二区| 欧美一区三区二区| 欧美一区二区三区白人| 欧美一级日韩免费不卡| 日韩一级完整毛片| 精品美女一区二区| 久久九九影视网| 国产精品丝袜黑色高跟| 中文字幕在线不卡视频| √…a在线天堂一区| 综合久久综合久久| 樱桃视频在线观看一区| 一区二区三区四区在线播放| 亚洲成在人线免费| 日韩电影免费一区| 激情图区综合网| 丁香婷婷综合色啪| 91麻豆免费观看| 欧美日韩日本视频| 欧美大白屁股肥臀xxxxxx| 久久午夜免费电影| 国产精品三级在线观看| 亚洲人成小说网站色在线 | 日本一区二区三区视频视频| 国产精品私人自拍| 亚洲色欲色欲www| 亚洲一级二级三级在线免费观看| 日韩高清一区在线| 国产一区二区在线免费观看| 顶级嫩模精品视频在线看| 色香色香欲天天天影视综合网| 欧美系列一区二区| 欧美xxxxx牲另类人与| 国产精品素人一区二区| 亚洲一区在线观看网站| 视频在线在亚洲| 国产精品综合在线视频| 91在线观看地址| 7777精品久久久大香线蕉| 久久婷婷综合激情| 亚洲欧美另类在线| 奇米影视一区二区三区小说| 国产一区二区免费视频| 91精品1区2区| 精品美女在线播放| 亚洲美女偷拍久久| 久久国产视频网| 99久久精品99国产精品|