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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? simpleselectionpolicy.java

?? OSGI 的 源碼實(shí)現(xiàn),采用JAVA書寫
?? JAVA
字號(hào):
/* * ModuleLoader - A generic, policy-driven class loader. * Copyright (c) 2004, Richard S. Hall * All 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 the ungoverned.org 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" AND ANY EXPRESS 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 THE COPYRIGHT * OWNER OR 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. * * Contact: Richard S. Hall (heavy@ungoverned.org) * Contributor(s): ***/package org.ungoverned.moduleloader.search.selection;import java.util.Iterator;import java.util.Map;import java.util.HashMap;import org.ungoverned.moduleloader.Module;import org.ungoverned.moduleloader.ModuleEvent;import org.ungoverned.moduleloader.ModuleListener;import org.ungoverned.moduleloader.search.ImportSearchPolicy;import org.ungoverned.moduleloader.search.SelectionPolicy;import org.ungoverned.moduleloader.search.CompatibilityPolicy;/** * This class implements a reasonably simple selection policy for the * <tt>ImportSearchPolicy</tt>. When given a choice, this selection * policy will always select the newest version of the available * candidates to satisfy the import identifier. In the case where * a candidate has already been selected for a given import identifier, * then the previously selected module will be returned, if possible. * If it is not possible to return the previously selected module, then * a <tt>null</tt> is returned. This policy assumes that classes are * shared globally.**/public class SimpleSelectionPolicy implements SelectionPolicy, ModuleListener{    private Map m_resolvedPackageMap = new HashMap();    private Map m_resolvedModuleMap = new HashMap();    /**     * Selects a single module to resolve the specified import identifier     * from the array of compatible candidate modules. If the import     * identifier has not been resolved before, then this selection policy     * chooses the module that exports the newest version of the     * import identifer. If the import identifier has been resolved already,     * then the same module that was chosen before is chosen again.     * This ensures that all modules use the same version of all     * exported classes.     * @param module the module that is importing the target.     * @param identifier the identifier of the import target.     * @param version the version number of the import target.     * @param candidates array of compatible candidate modules from which to choose.     * @return the selected module or <tt>null</tt> if no module     *         can be selected.    **/    public synchronized Module select(Module module, Object identifier,        Object version, Module[] candidates, CompatibilityPolicy compatPolicy)    {        // See if package is already resolved.        Module selModule = (Module) m_resolvedPackageMap.get(identifier);        // If no module was previously selected to export the package,        // then try to choose one now.        if (selModule == null)        {            Object selVersion = null;            // Examine all exported instances of the identifier and            // choose the one with the newest version number. If            // there is more than one source for the newest version,            // then just select the first one found.            for (int i = 0; i < candidates.length; i++)            {                Object tmpVersion =                    ImportSearchPolicy.getExportVersion(candidates[i], identifier);                // If this is the first comparison, then                // just record it.                if (selVersion == null)                {                    selModule = candidates[i];                    selVersion = tmpVersion;                }                // If the current export package version is greater                // than the selected export package version, then                // record it instead.                else if (compatPolicy.compare(identifier, tmpVersion, identifier, selVersion) >= 0)                {                    selModule = candidates[i];                    selVersion = tmpVersion;                }            }            m_resolvedPackageMap.put(identifier, selModule);            m_resolvedModuleMap.put(selModule, selModule);        }        // See if the previously selected export module satisfies        // the current request, otherwise return null.        else        {            Object selVersion =                ImportSearchPolicy.getExportVersion(selModule, identifier);            Module tmpModule = selModule;            selModule = null;            if (compatPolicy.isCompatible(identifier, selVersion, identifier, version))            {                selModule = tmpModule;            }        }        return selModule;    }    public void moduleAdded(ModuleEvent event)    {    }    public void moduleReset(ModuleEvent event)    {        moduleRemoved(event);    }    public synchronized void moduleRemoved(ModuleEvent event)    {        // If the module that was removed was chosen for        // exporting identifier, then flush it from our        // data structures; we assume here that the application        // will flush references to the removed module's classes.        if (m_resolvedModuleMap.get(event.getModule()) != null)        {            // Remove from module map.            m_resolvedModuleMap.remove(event.getModule());            // Remove each exported package from package map.            Iterator iter = m_resolvedPackageMap.entrySet().iterator();            while (iter.hasNext())            {                Map.Entry entry = (Map.Entry) iter.next();                if (entry.getValue() == event.getModule())                {                    iter.remove();                }            }        }    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人在线观看 | 精品久久国产字幕高潮| 国产91对白在线观看九色| 午夜av区久久| 成人福利视频在线看| 欧美伦理影视网| 这里只有精品99re| 国产一区在线观看视频| k8久久久一区二区三区| 亚洲欧洲av一区二区三区久久| 亚洲天堂a在线| 自拍偷拍国产亚洲| 在线亚洲精品福利网址导航| 99r国产精品| 国产成a人亚洲| 久久精品人人做人人爽人人| 亚洲永久精品大片| 日本亚洲免费观看| 国产a视频精品免费观看| 亚洲特级片在线| 国产精品久久久久影视| 在线观看成人免费视频| 久久久91精品国产一区二区三区| 91免费版在线| 一区二区三区在线观看动漫| 欧美一区二区视频免费观看| 成人免费毛片app| 国产精品一品二品| 99re在线视频这里只有精品| 欧美午夜电影在线播放| 日韩欧美激情一区| 亚洲午夜久久久| 一区二区三区在线观看国产| 日本大胆欧美人术艺术动态 | 国产高清精品久久久久| 欧美三级日韩在线| 中文字幕精品在线不卡| 91首页免费视频| 国产视频一区二区三区在线观看| 久久亚洲综合av| 国内久久婷婷综合| 91美女精品福利| 久久尤物电影视频在线观看| 欧美电影免费观看完整版| 国产专区欧美精品| 久久久精品免费免费| 国产精品1区二区.| 日韩黄色小视频| 国产一区二区三区香蕉| 一二三区精品福利视频| 精品国产成人系列| 69av一区二区三区| 成人app网站| av中文一区二区三区| 中文字幕国产一区| 国产精品久久久久国产精品日日| 激情av综合网| 欧美精品在欧美一区二区少妇| 91免费视频观看| 中文字幕欧美一| 制服丝袜在线91| 国产午夜精品一区二区三区嫩草| 精品亚洲免费视频| 国产精品亚洲第一区在线暖暖韩国| 欧美专区亚洲专区| 国产精品久久久久影院老司| 香蕉成人啪国产精品视频综合网| 亚洲综合图片区| 91视频.com| 国产91清纯白嫩初高中在线观看| 日韩三级免费观看| 久久国产精品区| 国产精品福利一区二区三区| 亚洲自拍另类综合| 丰满少妇久久久久久久| 成人网页在线观看| 精品日韩欧美一区二区| 精品视频一区三区九区| 国产馆精品极品| 日韩av成人高清| 欧美日韩一区二区三区在线看 | 日本久久电影网| 中文字幕视频一区二区三区久| 久久国产精品免费| 日韩vs国产vs欧美| 在线观看日韩av先锋影音电影院| 99精品偷自拍| 日韩影院在线观看| 免费一区二区视频| 欧美群妇大交群中文字幕| 欧洲精品视频在线观看| 久久女同精品一区二区| 亚洲国产日产av| 青青草国产成人av片免费 | 69久久99精品久久久久婷婷| 国产剧情在线观看一区二区| 亚洲二区在线视频| 一区二区中文视频| 欧美日韩一区二区三区高清 | 久久久久久久久蜜桃| 国产乱码字幕精品高清av| 国产亚洲欧美一区在线观看| 奇米色777欧美一区二区| 久久亚洲精精品中文字幕早川悠里| 欧美喷水一区二区| 欧美老肥妇做.爰bbww| 国产精品自拍毛片| 欧美性色黄大片| 欧美肥大bbwbbw高潮| 日韩精品一区在线观看| 欧美亚洲综合在线| 国产精品剧情在线亚洲| 欧美一区二区福利在线| 日韩欧美一级片| 99久久精品国产毛片| 在线免费av一区| 久久久久国产精品厨房| 亚洲综合一二三区| 成av人片一区二区| 国产日韩三级在线| 紧缚捆绑精品一区二区| 欧美一区二区网站| 天天色综合天天| 欧美日韩另类一区| 亚洲免费观看高清完整| 成人国产亚洲欧美成人综合网 | 国产精品国产三级国产三级人妇| 一区二区三区四区不卡在线| 国产成人精品一区二| 精品伦理精品一区| 美女网站色91| 欧美一级欧美一级在线播放| 午夜在线电影亚洲一区| 欧美性做爰猛烈叫床潮| 中文字幕亚洲不卡| k8久久久一区二区三区| 一区在线播放视频| 99久久免费精品高清特色大片| 中文字幕免费一区| 成人av综合在线| 成人欧美一区二区三区视频网页 | 亚洲国产精品嫩草影院| 色一情一乱一乱一91av| 亚洲精选视频在线| 欧美综合一区二区| 午夜精品久久久久久不卡8050| 欧美精品三级在线观看| 亚洲18色成人| 日韩欧美一二三四区| 狠狠色综合播放一区二区| 久久久精品综合| av激情综合网| 亚洲日本丝袜连裤袜办公室| 在线观看不卡一区| 天堂一区二区在线免费观看| 欧美一级日韩不卡播放免费| 亚洲一区二区三区四区中文字幕| 在线影视一区二区三区| 亚洲黄网站在线观看| 在线不卡欧美精品一区二区三区| 喷水一区二区三区| 国产视频在线观看一区二区三区| 91一区在线观看| 午夜欧美大尺度福利影院在线看| 91精品在线一区二区| 国产呦精品一区二区三区网站| 欧美激情综合五月色丁香小说| 一本到不卡免费一区二区| 亚洲精品成人少妇| 欧美一区二区三区视频免费| 国产一区二区美女| 亚洲欧美偷拍卡通变态| 欧美日韩国产另类不卡| 黄色成人免费在线| 亚洲欧美日韩在线不卡| 欧美一级国产精品| 成人的网站免费观看| 香港成人在线视频| 欧美国产日本视频| 欧美高清视频在线高清观看mv色露露十八| 玖玖九九国产精品| 亚洲欧美激情视频在线观看一区二区三区 | 91麻豆精品国产自产在线观看一区 | 一个色综合av| 久久久亚洲高清| 在线观看亚洲精品| 精品中文字幕一区二区| 亚洲欧美日本韩国| 亚洲精品一区在线观看| 91蜜桃婷婷狠狠久久综合9色| 蜜臀av一区二区在线观看| 亚洲欧洲日韩在线| 日韩欧美国产小视频| av成人动漫在线观看| 麻豆91精品视频| 亚洲综合一区二区三区| 国产精品网站在线| 在线成人高清不卡| 色欧美片视频在线观看在线视频| 美女诱惑一区二区|