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

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

?? beanadapterfactory.java

?? java屬性邦定的(JSR-295)的一個(gè)實(shí)現(xiàn)
?? JAVA
字號:
/* * Copyright (C) 2006-2007 Sun Microsystems, Inc. All rights reserved. Use is * subject to license terms. */package org.jdesktop.beansbinding.ext;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.lang.ref.WeakReference;import java.net.URL;import java.util.ArrayList;import java.util.Collections;import java.util.Enumeration;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import java.util.WeakHashMap;import java.beans.*;public final class BeanAdapterFactory {    private static final BeanAdapterFactory INSTANCE =  new BeanAdapterFactory();    private final Map<Object, List<VendedAdapter>> vendedAdapters;    private final List<BeanAdapterProvider> providers;    private final Set<ClassLoader> classLoaders;    private final Set<URL> serviceURLs;    public static Object getAdapter(Object source, String property) {        return INSTANCE.getAdapter0(source, property);    }    public static List<PropertyDescriptor> getAdapterPropertyDescriptors(Class<?> type) {        return INSTANCE.getAdapterPropertyDescriptors0(type);    }    public BeanAdapterFactory() {        this.providers = new ArrayList<BeanAdapterProvider>();        classLoaders = new HashSet<ClassLoader>();        serviceURLs = new HashSet<URL>();        vendedAdapters = new WeakHashMap<Object, List<VendedAdapter>>();    }    private void loadProvidersIfNecessary() {        ClassLoader currentLoader = Thread.currentThread().getContextClassLoader();        if (!classLoaders.contains(currentLoader)) {            classLoaders.add(currentLoader);            loadProviders(currentLoader);        }    }        private void loadProviders(ClassLoader classLoader) {        // PENDING: this needs to be rewriten in terms of ServiceLoader        String serviceName = "META-INF/services/" +                 BeanAdapterProvider.class.getName();        try {            Enumeration<URL> urls = classLoader.getResources(serviceName);            while (urls.hasMoreElements()) {                URL url = urls.nextElement();                if (!serviceURLs.contains(url)) {                    serviceURLs.add(url);                    addProviders(url);                }            }        } catch (IOException ex) {        }    }        private void addProviders(URL url) {        InputStream inputStream = null;        BufferedReader reader = null;        try {            inputStream = url.openStream();            reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));            String line;            while ((line = reader.readLine()) != null) {                try {                    providers.add((BeanAdapterProvider)Class.forName(line).newInstance());                } catch (IllegalAccessException ex) {                } catch (InstantiationException ex) {                } catch (ClassNotFoundException ex) {                }            }        } catch (UnsupportedEncodingException ex) {        } catch (IOException ex) {        }        if (reader != null) {            try {                reader.close();            } catch (IOException ex) {            }        }    }    public Object getAdapter0(Object source, String property) {        if (source == null || property == null) {            throw new IllegalArgumentException();        }        loadProvidersIfNecessary();        property = property.intern();        BeanAdapterProvider provider = getProvider(source, property);        if (provider != null) {            List<VendedAdapter> adapters = vendedAdapters.get(source);            if (adapters != null) {                for (int i = adapters.size() - 1; i >= 0; i--) {                    VendedAdapter vendedAdapter = adapters.get(i);                    Object adapter = vendedAdapter.getAdapter();                    if (adapter == null) {                        vendedAdapters.remove(i);                    } else if (vendedAdapter.getProvider() == provider && vendedAdapter.getProperty() == property) {                        return adapter;                    }                }            } else {                adapters = new ArrayList<VendedAdapter>(1);                vendedAdapters.put(source, adapters);            }            Object adapter = provider.createAdapter(source, property);            adapters.add(new VendedAdapter(property, provider, adapter));            return adapter;        }        return null;    }        private BeanAdapterProvider getProvider(Object source, String property) {        Class<?> type = source.getClass();        for (BeanAdapterProvider provider : providers) {            if (provider.providesAdapter(type, property)) {                return provider;            }        }        return null;    }        private List<FeatureDescriptor> getDescriptors(Class<?> type) {            BeanInfo info = null;            try {                info = Introspector.getBeanInfo(type);            } catch (Exception ex) {            }            if (info == null) {                return Collections.emptyList();            }            ArrayList<FeatureDescriptor> list = new ArrayList<FeatureDescriptor>(                    info.getPropertyDescriptors().length);            for (PropertyDescriptor pd: info.getPropertyDescriptors()) {                // PENDING: The following properties come from EL, are they                // needed?                if (pd.getPropertyType() != null) {                    pd.setValue("type", pd.getPropertyType());                }                pd.setValue("resolvableAtDesignTime", Boolean.TRUE);                list.add(pd);            }            return list;        }    private static BeanInfo getBeanInfo(Class<?> type) {        try {            return Introspector.getBeanInfo(type);        } catch (IntrospectionException ie) {            return null;        }    }    private List<PropertyDescriptor> getAdapterPropertyDescriptors0(Class<?> type) {        if (type == null) {            throw new IllegalArgumentException("Type must be non-null");        }        loadProvidersIfNecessary();                ArrayList<PropertyDescriptor> des = new ArrayList<PropertyDescriptor>();        for (BeanAdapterProvider provider : providers) {            Class<?> pdType = provider.getAdapterClass(type);            if (pdType != null) {                BeanInfo info = getBeanInfo(pdType);                if (info != null) {                    PropertyDescriptor[] pds = info.getPropertyDescriptors();                    if (pds != null) {                        for (PropertyDescriptor pd : pds) {                            if (provider.providesAdapter(type, pd.getName())) {                                des.add(pd);                            }                        }                    }                }            }        }                return des;    }        private static final class VendedAdapter {        private final BeanAdapterProvider provider;        private final String property;        private final WeakReference<Object> adapter;        public VendedAdapter(String property, BeanAdapterProvider provider, Object adapter) {            this.property = property;            this.adapter = new WeakReference<Object>(adapter);            this.provider = provider;        }        public Object getAdapter() {            return adapter.get();        }        public String getProperty() {            return property;        }                public BeanAdapterProvider getProvider() {            return provider;        }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合自拍亚洲综合图不卡区| 国产成人精品免费在线| 久久久久久**毛片大全| 日本高清无吗v一区| www.日本不卡| 国产成都精品91一区二区三| 韩国精品免费视频| 免费人成黄页网站在线一区二区| 综合久久一区二区三区| 中文字幕一区视频| 一区免费观看视频| 亚洲欧美一区二区在线观看| 1024成人网色www| 一区av在线播放| 亚洲成人激情av| 黑人巨大精品欧美一区| 国产成人av资源| 一本大道久久精品懂色aⅴ| 在线亚洲免费视频| 欧美一级一级性生活免费录像| 日韩精品一区二区三区在线观看| 精品噜噜噜噜久久久久久久久试看| 精品999久久久| 亚洲人成7777| 日韩高清一级片| 国产精品中文有码| 国产suv精品一区二区6| 国产精品69久久久久水密桃| 久久99精品国产| 91碰在线视频| 色天使久久综合网天天| 日本韩国精品在线| 欧美日本免费一区二区三区| 欧美日韩精品一区二区在线播放 | 精品久久久久久久久久久久久久久久久| 色哟哟一区二区三区| 秋霞国产午夜精品免费视频| 日本午夜一本久久久综合| 久久国产生活片100| 亚洲免费资源在线播放| 欧美在线综合视频| 日韩你懂的电影在线观看| 日韩免费看的电影| 亚洲人成在线观看一区二区| 图片区小说区区亚洲影院| 视频一区视频二区中文字幕| 国产精品免费视频观看| 久久成人麻豆午夜电影| 国产高清久久久| 色婷婷久久99综合精品jk白丝| 日韩欧美第一区| 国产日韩欧美制服另类| 国产精品电影一区二区| 一区二区三区中文字幕精品精品 | 国精产品一区一区三区mba桃花| 国产成人综合视频| voyeur盗摄精品| 337p亚洲精品色噜噜| 日韩午夜在线观看视频| 91精品欧美久久久久久动漫| 国产日韩欧美一区二区三区乱码| 一区二区在线观看视频| 亚洲成人1区2区| 成人一区二区视频| 欧美日韩国产色站一区二区三区| 日韩女优av电影在线观看| 欧洲一区二区三区在线| 久久日韩精品一区二区五区| 亚洲欧美电影院| 人人超碰91尤物精品国产| 波多野结衣中文字幕一区二区三区| 久久综合久久99| 一区二区三区在线高清| 成人综合婷婷国产精品久久蜜臀| 欧美成人一区二区三区| 一区二区成人在线| 成人h动漫精品| 26uuuu精品一区二区| 麻豆精品国产91久久久久久| 91老司机福利 在线| 国产日韩精品视频一区| 国产女人aaa级久久久级| 国产精品久久久99| 久久91精品久久久久久秒播| 欧美精品三级日韩久久| 亚洲综合一区二区精品导航| 不卡电影免费在线播放一区| 国产三级精品在线| 日韩avvvv在线播放| 精品国产乱码久久| 另类专区欧美蜜桃臀第一页| 欧美羞羞免费网站| 亚洲精品写真福利| 日韩精品一级二级| 91精品久久久久久久99蜜桃| 国内一区二区在线| 日韩写真欧美这视频| 美腿丝袜亚洲综合| 日本一区二区三区四区在线视频| 久久99国产精品麻豆| 精品毛片乱码1区2区3区| 国产一区二区主播在线| 日韩欧美另类在线| 久久精品99国产精品日本| 在线播放欧美女士性生活| 日日欢夜夜爽一区| 在线电影欧美成精品| 欧美国产精品专区| 国产成人综合网站| 日韩欧美亚洲国产精品字幕久久久 | 国产成人精品亚洲777人妖| 6080午夜不卡| 美女在线观看视频一区二区| 欧美一区二区三区爱爱| 午夜亚洲福利老司机| 欧美精品乱人伦久久久久久| 三级不卡在线观看| 久久精品亚洲麻豆av一区二区 | 欧美经典一区二区| 不卡电影免费在线播放一区| 中文字幕日韩一区二区| 精品欧美一区二区三区精品久久| 国产在线一区观看| 国产精品久久久久一区二区三区共| 欧美丰满少妇xxxxx高潮对白| 日本不卡高清视频| 国产日产欧美一区| 成人精品鲁一区一区二区| 日韩精品五月天| 国产偷国产偷精品高清尤物 | 国产精品一区二区男女羞羞无遮挡| 久久女同精品一区二区| 成人动漫一区二区在线| 激情亚洲综合在线| 中文字幕字幕中文在线中不卡视频| 日本韩国欧美国产| 久色婷婷小香蕉久久| 亚洲综合色噜噜狠狠| 欧美xxxxxxxxx| 色婷婷综合中文久久一本| 成人性生交大片免费看中文网站| 亚洲伊人色欲综合网| 国产日韩欧美综合在线| 久久综合久久鬼色中文字| 欧美性感一区二区三区| 国产大陆精品国产| 高清shemale亚洲人妖| 香蕉乱码成人久久天堂爱免费| 国产欧美日韩在线| 久久久www免费人成精品| 欧美日韩综合一区| 一区二区三区在线免费| 91在线观看污| 成人午夜短视频| 蜜桃av噜噜一区| 免费高清不卡av| 一区二区三区精品视频在线| 亚洲国产成人午夜在线一区| 欧美日韩成人在线| 欧美怡红院视频| 成人蜜臀av电影| 韩国av一区二区三区四区 | 色综合一区二区| 国产高清不卡一区| 日韩中文字幕区一区有砖一区| 欧美理论电影在线| 日本韩国欧美一区| eeuss国产一区二区三区| 国内精品免费在线观看| 亚洲欧美综合色| 亚洲精品你懂的| 一区二区三国产精华液| 精品国产一区二区三区久久影院| 国产网站一区二区三区| 精品粉嫩超白一线天av| 中文字幕国产一区| 亚洲自拍偷拍网站| 一区二区三区在线观看动漫| 亚洲成人一区二区在线观看| 中文字幕一区在线| 中文字幕一区二区三区精华液| 国产欧美日韩精品一区| 一区二区三区在线观看欧美| 亚洲欧美福利一区二区| 亚洲最新在线观看| 五月天国产精品| 美国av一区二区| 国内精品免费**视频| 日韩精品91亚洲二区在线观看| 久久99国产精品尤物| 国产精品一区二区男女羞羞无遮挡 | 国产盗摄视频一区二区三区| 久久精品免费观看| 国产精品亚洲综合一区在线观看| 国产91富婆露脸刺激对白| 欧美精品乱码久久久久久| 日韩免费观看高清完整版 | 精品国产91乱码一区二区三区 | 国产精品原创巨作av| www.一区二区|