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

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

?? typemapper.java

?? 一個java方面的消息訂閱發送的源碼
?? JAVA
字號:
/**
 * Redistribution and use of this software and associated documentation
 * ("Software"), with or without modification, are permitted provided
 * that the following conditions are met:
 *
 * 1. Redistributions of source code must retain copyright
 *    statements and notices.  Redistributions must also contain a
 *    copy of this document.
 *
 * 2. 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.
 *
 * 3. The name "Exolab" must not be used to endorse or promote
 *    products derived from this Software without prior written
 *    permission of Exoffice Technologies.  For written permission,
 *    please contact info@exolab.org.
 *
 * 4. Products derived from this Software may not be called "Exolab"
 *    nor may "Exolab" appear in their names without prior written
 *    permission of Exoffice Technologies. Exolab is a registered
 *    trademark of Exoffice Technologies.
 *
 * 5. Due credit should be given to the Exolab Project
 *    (http://www.exolab.org/).
 *
 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY 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 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Copyright 2001 (C) Exoffice Technologies Inc. All Rights Reserved.
 *
 * $Id: TypeMapper.java,v 1.1 2004/11/26 01:51:16 tanderson Exp $
 */

package org.exolab.jms.tools.db;

import java.sql.Types;
import java.util.HashMap;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
 * A helper class for mapping between types.</br>
 * NOTE: this mapping is not complete, only reflecting those types required
 * by OpenJMS
 *
 * @version     $Revision: 1.1 $ $Date: 2004/11/26 01:51:16 $
 * @author      <a href="mailto:tma@netspace.net.au">Tim Anderson</a>
 */
class TypeMapper {

    /**
     * The set of types supported by the RDBMS
     */
    private TypeSet _set = null;

    /**
     * A mapping of SQL type identifiers to their corresponding alternative
     * types. The alternatives are represented as an array of Type
     */
    private HashMap _mappings = new HashMap();

    /**
     * The logger
     */
    private static final Log _log = LogFactory.getLog(TypeMapper.class);


    /**
     * Construct the type mapper with the set of type supported by the
     * RDBMS
     */
    public TypeMapper(TypeSet set) {
        _set = set;

        // alternatives for the Types.BINARY type
        Type[] binaries = {new Type(Types.VARBINARY, 0, true),
                           new Type(Types.LONGVARBINARY, 0, true)};
        add(Types.BINARY, binaries);

        // alternatives for the Types.VARBINARY type
        Type[] varbinaries = {new Type(Types.LONGVARBINARY, 0, true)};
        add(Types.VARBINARY, binaries);

        // alternatives for the Types.BIT type
        Type[] bits = {new Type(Types.CHAR, 0, false),
                       new Type(Types.TINYINT, 0, false),
                       new Type(Types.SMALLINT, 0, false),
                       new Type(Types.INTEGER, 0, false),
                       new Type(Types.NUMERIC, 1, true)};
        add(Types.BIT, bits);

        // alternatives for the Types.DECIMAL type
        Type[] decimals = {new Type(Types.NUMERIC, 0, false)};
        add(Types.DECIMAL, decimals);

        // alternatives for the Types.DATE type
        Type[] dates = {new Type(Types.TIMESTAMP, 0, false)};
        add(Types.DATE, dates);

        // alternatives for the Types.BIGINT type
        long precision = Long.toString(Long.MAX_VALUE).length();
        Type[] bigints = {new Type(Types.NUMERIC, precision, true)};
        add(Types.BIGINT, bigints);
    }

    public Type getType(int type, long precision) {
        // check if type set supports the requested type directly
        Type result = _set.getType(type, precision);
        if (result == null) {
            // type not supported so return the mapping, if one is available
            result = (Type) _mappings.get(new Integer(type));
        }
        return result;
    }

    private void add(int type, Type[] mappings) {
        for (int i = 0; i < mappings.length; ++i) {
            Type requested = mappings[i];
            Type supported = _set.getType(requested.getType(),
                requested.getPrecision());
            if (supported == null) {
                _log.debug(
                    "TypeMapper: alternative mapping for type=" +
                    Descriptor.getDescriptor(type).getName() +
                    " is not supported by the database");
            } else {
                long precision = requested.getPrecision();
                long maxPrecision = supported.getPrecision();
                _log.debug(
                    "TypeMapper: alternative mapping for type=" +
                    Descriptor.getDescriptor(type).getName() +
                    ", precision=" + precision +
                    ", is supported by the database as " + supported);
                if (type == supported.getType() &&
                    ((precision > 0) && (precision < maxPrecision))) {
                    // if the requested type is supported by the database, and
                    // has a smaller precision, override the maximum precision
                    // defined by the supported type
                    supported = new Type(
                        supported.getType(), supported.getName(),
                        precision, supported.getParameters());
                }
                _mappings.put(new Integer(type), supported);
                break;
            }
        }
    }

} //-- TypeMapper

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲自拍偷拍麻豆| 99re成人在线| 色先锋aa成人| 精品美女在线观看| 亚洲国产成人av好男人在线观看| 国产一区二区三区高清播放| 91国产丝袜在线播放| 国产精品美女久久久久高潮| 九一久久久久久| 欧美另类久久久品| √…a在线天堂一区| 国产乱码一区二区三区| 在线成人午夜影院| 亚洲一区中文日韩| 色综合久久88色综合天天| 欧美国产精品中文字幕| 精品在线你懂的| 91精品国产麻豆国产自产在线| 亚洲欧美自拍偷拍| 成人激情开心网| 久久久99精品久久| 激情图区综合网| 精品国产一区二区三区不卡| 美日韩黄色大片| 欧美精品乱码久久久久久| 亚洲一线二线三线视频| 日本精品一级二级| 亚洲猫色日本管| 色综合久久天天综合网| 亚洲视频 欧洲视频| kk眼镜猥琐国模调教系列一区二区 | 国产性天天综合网| 日韩电影一区二区三区四区| 欧美美女黄视频| 日本亚洲欧美天堂免费| 91精品国产全国免费观看| 日日夜夜免费精品视频| 欧美一区二区在线观看| 久久99九九99精品| 久久久综合精品| 成人av在线资源网站| 中文字幕乱码亚洲精品一区| yourporn久久国产精品| 亚洲精品你懂的| 欧美日韩成人激情| 免费成人性网站| 久久久国产精品麻豆| 美腿丝袜亚洲一区| 国产欧美日韩久久| 91美女片黄在线观看91美女| 一区二区三区精品视频| 欧美一区二区私人影院日本| 激情五月婷婷综合| 中文字幕不卡一区| 欧美亚洲国产一区在线观看网站| 日韩精品1区2区3区| 久久色.com| 色综合久久久久| 老司机一区二区| 中文字幕一区二区三区不卡| 欧美日韩一区二区三区四区| 老色鬼精品视频在线观看播放| 欧美激情一区二区在线| 欧美专区在线观看一区| 国产一区二区电影| 亚洲一区视频在线观看视频| 日韩欧美亚洲国产另类| av在线播放不卡| 日韩福利视频导航| 一区二区三区在线播| 91精品国产综合久久香蕉的特点| 国产成人在线免费观看| 亚洲一区二区高清| 亚洲国产激情av| 日韩一区二区精品在线观看| 97se亚洲国产综合自在线不卡 | 精品国产99国产精品| 99久久精品免费看国产| 蜜臀av一区二区| 一区二区三区中文在线观看| 2020国产精品久久精品美国| 色拍拍在线精品视频8848| 国产中文字幕一区| 偷窥少妇高潮呻吟av久久免费| 国产精品午夜在线观看| 欧美变态tickling挠脚心| 欧美一a一片一级一片| 高清不卡在线观看| 精品系列免费在线观看| 日韩av不卡一区二区| 一区二区三区在线播放| 中文字幕一区二区三区不卡| 精品国产乱码久久久久久图片 | 久久午夜色播影院免费高清| 欧美日韩国产综合视频在线观看 | 7777精品伊人久久久大香线蕉| 成人免费看片app下载| 美女视频一区二区| 天天亚洲美女在线视频| 亚洲一区二区三区在线播放| 亚洲人成电影网站色mp4| 亚洲国产精品99久久久久久久久| 2020国产成人综合网| 精品国精品国产| 91精品国产综合久久久久久久| 欧美亚洲精品一区| 在线亚洲欧美专区二区| 色噜噜夜夜夜综合网| 97se亚洲国产综合在线| 成人av影视在线观看| 国产.欧美.日韩| kk眼镜猥琐国模调教系列一区二区| 成人自拍视频在线观看| 成人性生交大合| 9l国产精品久久久久麻豆| 成人福利在线看| 99国产精品久| 欧美三级日韩三级| 欧美疯狂做受xxxx富婆| 欧美日韩大陆一区二区| 欧美一区二区三区四区在线观看| 91精品综合久久久久久| 日韩欧美国产综合| 久久精品男人的天堂| 日本一区二区动态图| 国产精品久久一卡二卡| 综合久久给合久久狠狠狠97色 | 欧美国产精品一区二区| 亚洲国产精品黑人久久久| 国产精品精品国产色婷婷| 亚洲婷婷国产精品电影人久久| 亚洲精选一二三| 偷拍日韩校园综合在线| 国内不卡的二区三区中文字幕| 国产盗摄女厕一区二区三区| 成人一道本在线| 欧美视频一区在线| 日韩欧美成人一区二区| 久久久综合精品| 一区二区在线观看免费| 日韩国产精品大片| 国产99久久久精品| 色婷婷综合五月| 日韩免费看网站| 国产精品免费丝袜| 日韩激情视频网站| 丁香六月综合激情| 欧美日韩精品一区二区三区蜜桃 | 丝袜美腿亚洲综合| 国产成人啪免费观看软件| 91在线云播放| 精品国产乱子伦一区| 亚洲天堂精品在线观看| 免费观看久久久4p| 99re热这里只有精品免费视频 | 蜜桃av一区二区三区| 成人免费视频视频在线观看免费 | 成人一道本在线| 欧美精品少妇一区二区三区| 国产亚洲福利社区一区| 亚洲高清免费视频| 国产成人av电影在线| 欧美精品久久99久久在免费线 | 夜色激情一区二区| 国产精品一二三区在线| 88在线观看91蜜桃国自产| 国产精品久久久久久久久免费丝袜 | 国产一区免费电影| 色综合天天综合网天天看片| 欧美成人欧美edvon| 亚洲美女偷拍久久| 国产一区视频在线看| 欧美浪妇xxxx高跟鞋交| 亚洲日本在线看| 国产成人av网站| 欧美大白屁股肥臀xxxxxx| 一区二区三区鲁丝不卡| 成人免费va视频| 久久久亚洲精品石原莉奈| 日韩av一区二区三区四区| 91国偷自产一区二区三区成为亚洲经典| www日韩大片| 久久精品99久久久| 欧美日韩成人一区二区| 亚洲综合激情另类小说区| 成人少妇影院yyyy| 日本一区二区免费在线| 国产在线一区二区综合免费视频| 91精品国产综合久久小美女| 亚洲一区二区三区四区在线| 色婷婷亚洲精品| 亚洲乱码国产乱码精品精的特点| www.久久精品| 中文字幕亚洲电影| 99综合影院在线| 亚洲日本在线视频观看| 色天使久久综合网天天| 一区二区三区国产精品| 欧美视频在线观看一区二区| 亚洲一卡二卡三卡四卡无卡久久|