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

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

?? resourcelocator.java

?? 關(guān)于 RFID 讀寫器的相關(guān)內(nèi)容
?? JAVA
字號(hào):
/**
 * This class locates resources (configuration files, images) for the fosstrak
 * reader proxy. It searches for user resources in the user directory (current
 * application directory) and for default resources in the library if no user
 * resources found.
 */
package org.fosstrak.reader.rp.proxy.util;

import java.io.File;
import java.net.URI;
import java.net.URL;

import org.apache.log4j.Logger;

/**
 * @author hallerj
 *
 */
public final class ResourceLocator {

   /**
    * The logger.
    */
   private static Logger log = Logger.getLogger(ResourceLocator.class);

   /**
    * Suffix for default resource file name if no name given.
    */
   private static final String DEFAULT_SUFFIX = "_default";

   /**
    * Get the URL of the resourceFileName.
    * 
    * @param resourceFileName
    *          path and name of the resource file (e.g. '/path/file.ext')
    * @param defaultResourceFileName
    *          path and name of the default resource file (e.g. '/path/file_default.ext')
    * @param caller
    *          the caller class
    * @return URL of the file or null if not found
    */
   public static URL getURL(String resourceFileName,
         String defaultResourceFileName, final Class caller) {
      // check arguments
   	if ((resourceFileName == null) && (defaultResourceFileName != null)) {
   		resourceFileName = defaultResourceFileName;
   	}
      if (!resourceFileName.startsWith("/")) {
         resourceFileName = "/" + resourceFileName;
      }
      if (defaultResourceFileName == null) {
         defaultResourceFileName = resourceFileName.substring(0,
            resourceFileName.lastIndexOf(".")) + DEFAULT_SUFFIX
            + resourceFileName.substring(resourceFileName.lastIndexOf("."));
      }

      URL url = null;
      ClassLoader loader = getBestClassLoader(caller);

      // try user directory (current application directory)
      if (url == null) { 
         try {
            String userdirectorypath = "file:/" + System.getProperty("user.dir")
            .replace(System.getProperty("file.separator").charAt(0), '/')
            + resourceFileName;
            url = locateAbsolute(userdirectorypath);
         } catch (Exception e) {
         }
      }

      // try standard locate
      if (url == null) {
         url = locate(resourceFileName, loader, caller);
      }

      // try absolute file path
      if (url == null) {
         url = locateAbsolute("file:/" + resourceFileName.replace(
            System.getProperty("file.separator").charAt(0), '/'));
      }
      if (url == null) {
         // if adding leading slash was not appropriate
         url = locateAbsolute("file:/" + resourceFileName.substring(1).replace(
               System.getProperty("file.separator").charAt(0), '/'));
      }

      // try locate default
      if (url == null) {
         url = locateDefault(defaultResourceFileName, resourceFileName, caller);
      }

      // try standard locate of default config
      if (url == null) {
         url = locate(defaultResourceFileName, loader, caller);
      }

      if (url != null) {
         log.debug("Resource URL is: " + url.toString());
      } else {
         log.debug("Resource '" + resourceFileName + "' and '"
            + defaultResourceFileName + "' not found.");
      }

      return url;
   }

   /**
    * Tries to find the best ClassLoader for the caller Class.
    * 
    * @param caller
    *          the caller Class
    * @return
    *          ClassLoader found
    */
   private static ClassLoader getBestClassLoader(Class caller) {
      ClassLoader loader;
      
      // get possible class loaders
      final ClassLoader callerLoader = caller.getClassLoader();
      final ClassLoader contextLoader = Thread.currentThread()
         .getContextClassLoader();
      final ClassLoader systemLoader = ClassLoader.getSystemClassLoader();

      // choose best class loader
      if (isChild(contextLoader, callerLoader)) {
         loader = callerLoader;
      } else if (isChild(callerLoader, contextLoader)) {
         loader = contextLoader;
      } else {
         // the ambiguous case
         loader = contextLoader;
      }
      if ((loader != systemLoader) && isChild(loader, systemLoader)) {
         loader = systemLoader;
      }

      return loader;
   }

   /**
    * Test if 'child' is a delegation child of 'parent'.
    * This works only for classloaders that set their parent pointers correctly.
    * 'null' is interpreted as the primordial loader (everybody's parent).
    * 
    * @param parent
    *          the parent ClassLoader in question
    * @param child
    *          the child ClassLoader in question
    * @return
    *          true if 'child' is a delegation child of 'parent' (or if
    *          'parent'=='child')
    */
   private static boolean isChild (final ClassLoader parent, ClassLoader child)
   {
       if (parent == child) return true;
       if (child == null) return false;
       if (parent == null) return true;

       for ( ; child != null; child = child.getParent ())
       {
           if (child == parent) return true;
       }

       return false;
   }

   /**
    * Locate resource with help of a ClassLoader and caller Class.
    * 
    * @param resourceFileName
    *          the name of the resource file (e.g. '/path/name.ext')
    * @param loader
    *          a ClassLoader
    * @param caller
    *          the caller Class
    * @return
    *          URL of the file or null if not found
    */
   private static URL locate(String resourceFileName, ClassLoader loader,
         Class caller) {
      if (!resourceFileName.startsWith("/")) {
         resourceFileName = "/" + resourceFileName;
      }
      String shortResourceFileName = resourceFileName.substring(1,
            resourceFileName.length()); 
      URL url = null;
      
      // try to load resource
      if (loader != null) {
         url = loader.getResource(shortResourceFileName);
      }

      // try using caller class (can load from paths relative to caller package)
      if ((url == null) && (caller != null)) {
         url = caller.getResource(resourceFileName);
      }
      if ((url == null) && (caller != null)) {
         url = caller.getResource(shortResourceFileName);
      }

      // try getting as system resource from ClassLoader
      if (url == null) {
         url = ClassLoader.getSystemResource(shortResourceFileName);
      }

      return url;
   }

   /**
    * Locate resource on absolute path.
    * 
    * @param resourceFileName
    *          the path and file name of the resource
    * @return
    *          URL of the file or null if not found
    */
   private static URL locateAbsolute(String resourceFile) {
      URL url = null;

      boolean exists;
      try {
         exists = (new File(new URI(resourceFile))).exists();
      } catch (Exception e) {
         exists = false;
      }

      if (exists) {
         try {
            url = new URL(resourceFile);
         } catch (Exception e) {
            url = null;
         }
      }

      return url;
   }

   /**
    * Locate default resource where caller (library) is located.
    * 
    * @param defaultResourceFileName
    *          the name of the default resource
    * @param resourceFileName
    *          the name of the resource
    * @param caller
    *          the caller Class
    * @return
    *          URL of the file or null if not found
    */
   private static URL locateDefault(String defaultResourceFileName,
         String resourceFileName, Class caller) {
      if (!defaultResourceFileName.startsWith("/")) {
         defaultResourceFileName = "/" + defaultResourceFileName;
      }
      if (!resourceFileName.startsWith("/")) {
         resourceFileName = "/" + resourceFileName;
      }
      URL url = null;
      String urlstring;
      
      String codesourcelocation = caller.getProtectionDomain()
         .getCodeSource().getLocation().toString();
      if (codesourcelocation.endsWith("jar")) {
         // try beside or in jar containing the caller class
         urlstring = codesourcelocation.substring(0, codesourcelocation
            .lastIndexOf("/")) + resourceFileName;
         url = locateAbsolute(urlstring);
         if (url == null) {
            urlstring = codesourcelocation.substring(0, codesourcelocation
               .lastIndexOf("/")) + defaultResourceFileName;
            url = locateAbsolute(urlstring);
         }
         if (url == null) {
            urlstring = "jar:" + codesourcelocation + "!" + defaultResourceFileName;
            boolean exists;
            try {
               exists = (new File(new URI(urlstring))).exists();
            } catch (Exception e) {
               exists = false;
            }
            if (exists) {
               try {
                  url = new URL(urlstring);
               } catch (Exception e) {
                  url = null;
               }
            }
         }
      } else {
         // try path containing the caller class
         urlstring = codesourcelocation.substring(0, codesourcelocation
            .lastIndexOf("/")) + resourceFileName;
         url = locateAbsolute(urlstring);
         if (url == null) {
            urlstring = codesourcelocation.substring(0, codesourcelocation
               .lastIndexOf("/")) + defaultResourceFileName;
            url = locateAbsolute(urlstring);
         }
      }
      
      return url;
   }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频.com| 欧美顶级少妇做爰| 男人的j进女人的j一区| 欧美三级电影一区| 国产精品欧美久久久久一区二区| 色欧美88888久久久久久影院| 99国产精品国产精品久久| 成人黄页在线观看| 不卡av在线免费观看| 成人免费视频视频在线观看免费| 成人免费av在线| 91免费版在线| 91国偷自产一区二区开放时间| 91电影在线观看| 欧美色欧美亚洲另类二区| 欧美乱妇一区二区三区不卡视频| 91.xcao| 欧美日韩高清一区二区不卡| 欧美精品xxxxbbbb| 日韩一二三区不卡| 久久久精品欧美丰满| 国产欧美一区二区精品仙草咪| 国产精品久久久久aaaa| 亚洲同性gay激情无套| 自拍偷拍亚洲激情| 首页欧美精品中文字幕| 蜜臀久久久99精品久久久久久| 久久精品国产精品亚洲精品| 国产精品一区2区| 91在线精品一区二区| 欧美老肥妇做.爰bbww| 欧美年轻男男videosbes| 欧美一区二区三区视频免费| 国产日韩欧美激情| 亚洲高清视频在线| 国产一区美女在线| 91视视频在线观看入口直接观看www| 在线观看一区二区精品视频| 欧美成人一区二区三区在线观看| 国产精品久久久久久久久久免费看 | 91丨porny丨国产| 久久蜜桃av一区二区天堂| 色偷偷久久一区二区三区| 夫妻av一区二区| hitomi一区二区三区精品| 色婷婷亚洲综合| 久久先锋影音av鲁色资源| 国产精品国产三级国产普通话99| 911精品国产一区二区在线| 麻豆成人在线观看| 国产一区二区中文字幕| 在线一区二区三区四区五区| 精品91自产拍在线观看一区| 亚洲成a人v欧美综合天堂 | 色噜噜狠狠色综合欧洲selulu| 欧美疯狂做受xxxx富婆| 国产蜜臀97一区二区三区| 午夜伦欧美伦电影理论片| 成人综合婷婷国产精品久久蜜臀| 欧美一二三区精品| 亚洲午夜视频在线| 91蜜桃在线免费视频| 亚洲精品在线观| 日韩精品午夜视频| 在线免费观看不卡av| 国产精品久久久久久亚洲伦 | 国产一区在线观看麻豆| 欧美群妇大交群中文字幕| 最新国产成人在线观看| 国产一区二区视频在线| 欧美一区二区三级| 午夜精品久久一牛影视| 欧美在线观看一区二区| 亚洲女子a中天字幕| 成人18精品视频| 欧美经典一区二区| 高清成人免费视频| 久久久久久久一区| 国产精品99久久久久| 精品久久一二三区| 精品在线你懂的| 日韩精品一区二区三区三区免费 | 一本色道a无线码一区v| 久久久国产午夜精品| 久久国产精品99久久久久久老狼 | 亚洲成av人片| 欧美精品丝袜久久久中文字幕| 亚洲高清久久久| 欧美日韩另类国产亚洲欧美一级| 亚洲国产日日夜夜| 欧美精品少妇一区二区三区| 久久精品国产久精国产| 精品少妇一区二区三区日产乱码| 激情深爱一区二区| 国产欧美日韩亚州综合 | 久久9热精品视频| 久久综合国产精品| av在线播放不卡| 亚洲精品ww久久久久久p站| 欧洲精品中文字幕| 美腿丝袜亚洲色图| 久久久99精品久久| 日本高清不卡在线观看| 日韩不卡手机在线v区| 久久在线观看免费| 91免费版在线看| 蜜桃视频在线观看一区二区| 国产日本欧美一区二区| 在线观看视频91| 蜜臀久久99精品久久久久久9 | 欧美一区二区三区视频免费播放| 国内成人自拍视频| 亚洲美女在线国产| 日韩精品资源二区在线| kk眼镜猥琐国模调教系列一区二区| 亚洲综合色婷婷| 久久这里只有精品6| 欧美三级资源在线| 国产精品亚洲专一区二区三区| 一区二区免费在线| 国产亚洲综合性久久久影院| 色爱区综合激月婷婷| 久久99精品久久久久| 亚洲精品高清在线| 91在线看国产| 亚洲精品欧美激情| 日本一区二区三区在线不卡| 在线精品亚洲一区二区不卡| 国产精品456| 日韩高清电影一区| 亚洲欧美欧美一区二区三区| 精品福利一区二区三区| 欧美三级乱人伦电影| 成人av资源网站| 美女视频一区二区| 亚洲高清免费视频| 亚洲视频你懂的| 欧美激情在线看| 欧美大片在线观看| 欧美日韩日日摸| 欧美亚洲高清一区| 95精品视频在线| 粉嫩一区二区三区在线看| 青青草原综合久久大伊人精品 | 欧美伊人精品成人久久综合97| 国产99精品国产| 精品在线播放午夜| 日本欧美韩国一区三区| 亚洲成av人片一区二区三区| 尤物av一区二区| 亚洲欧美日本在线| 亚洲精品美腿丝袜| 又紧又大又爽精品一区二区| 亚洲免费观看在线观看| 日韩伦理免费电影| ...中文天堂在线一区| 国产精品美女久久福利网站| 国产清纯在线一区二区www| 久久欧美一区二区| 国产午夜精品久久久久久久 | 国产精品久久久久久久久快鸭 | 成人激情综合网站| 成人av免费网站| 91丨九色丨国产丨porny| av一区二区久久| 国产+成+人+亚洲欧洲自线| 国产高清不卡二三区| 国产成人一级电影| 成人三级在线视频| 色哟哟一区二区在线观看| 色香蕉成人二区免费| 欧美日韩一区二区三区免费看| 欧美三级日韩三级国产三级| 在线电影一区二区三区| 欧美白人最猛性xxxxx69交| 久久综合色天天久久综合图片| 国产日韩欧美一区二区三区综合| 中文字幕第一区二区| 亚洲狠狠丁香婷婷综合久久久| 午夜免费久久看| 国产又粗又猛又爽又黄91精品| 国产91清纯白嫩初高中在线观看| 成人av电影免费观看| 欧美三级电影在线观看| 日韩女同互慰一区二区| 国产精品天天看| 午夜精品一区在线观看| 久久av资源网| 91福利在线免费观看| 欧美男人的天堂一二区| 亚洲精品一区二区三区99| 一区在线观看免费| 人妖欧美一区二区| www.久久久久久久久| 欧美日韩国产乱码电影| 日本一区二区免费在线| 亚洲午夜久久久久久久久久久| 国产乱人伦偷精品视频免下载| 91麻豆精东视频| 精品国产区一区|