import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.Properties;
import javax.imageio.ImageIO;
import javax.swing.Icon;
*/
public final class ResourceManager {
- /** リソース名セパレータ文字。 */
- public static final char RES_SEPCHAR = '/';
- /** パッケージ名セパレータ文字。 */
- public static final char PKG_SEPCHAR = '.';
-
- /** リソース名セパレータ文字列。 */
- public static final String RES_SEPARATOR =
- Character.toString(RES_SEPCHAR);
- /** パッケージ名セパレータ文字列。 */
- public static final String PKG_SEPARATOR =
- Character.toString(PKG_SEPCHAR);
-
/**
* デフォルトで用いられるルートパッケージ。
- * 相対リソース名の起点となる。
+ *
+ * <p>相対リソース名の起点となる。
*/
public static final Package DEF_ROOT_PACKAGE;
/** デフォルトで用いられるクラスローダ。 */
- public static final ClassLoader DEF_LOADER;
+ private static final ClassLoader DEF_LOADER;
+
+ /** リソース名セパレータ文字。 */
+ private static final char RES_SEPCHAR = '/';
+ /** パッケージ名セパレータ文字。 */
+ private static final char PKG_SEPCHAR = '.';
+
+ /** リソース名セパレータ文字列。 */
+ private static final String RES_SEPARATOR =
+ Character.toString(RES_SEPCHAR);
- private static final Charset CS_UTF8 = Charset.forName("UTF-8");
+ private static final Charset CS_UTF8 = StandardCharsets.UTF_8;
private static final int BTN_SZ = 24;
* @return 絶対パスならtrueを返す。
* @see java.lang.Class#getResource
*/
- public static boolean isAbsoluteResourcePath(String resPath){
+ private static boolean isAbsoluteResourcePath(String resPath){
if (resPath.startsWith(RES_SEPARATOR)) return true;
return false;
}
* @return リソース名前置詞。無名パッケージの場合は空文字列が返る。
* @see java.lang.Class#getResource
*/
- public static String getResourcePrefix(Package pkg){
+ private static String getResourcePrefix(Package pkg){
if(pkg == null) return ""; // 無名パッケージ
String pkgName = pkg.getName();
String result = pkgName.replace(PKG_SEPCHAR, RES_SEPCHAR);
- if(result.length() > 0){
+ if( ! result.isEmpty() ){
result += RES_SEPARATOR;
}
* リソース名を用いて、
* デフォルトのクラスローダとデフォルトのルートパッケージから
* リソースのURLを取得する。
+ *
* @param resPath リソース名
* @return リソースのURL。リソースが見つからなければnull。
*/
/**
* 任意のルートパッケージと相対リソース名を用いて、
* デフォルトのクラスローダからリソースのURLを取得する。
+ *
* @param rootPkg ルートパッケージ情報。
* 「/」で始まる絶対リソース名が指定された場合は無視される。
* @param resPath リソース名
* @return リソースのURL。リソースが見つからなければnull。
*/
- public static URL getResource(Package rootPkg, String resPath){
+ private static URL getResource(Package rootPkg, String resPath){
return getResource(DEF_LOADER, rootPkg, resPath);
}
/**
* 任意のルートパッケージと相対リソース名を用いて、
* 任意のクラスローダからリソースのURLを取得する。
+ *
* @param loader クラスローダ
* @param rootPkg ルートパッケージ情報。
* 「/」で始まる絶対リソース名が指定された場合は無視される。
* @param resPath リソース名
* @return リソースのURL。リソースが見つからなければnull。
*/
- public static URL getResource(ClassLoader loader,
- Package rootPkg,
- String resPath ){
+ private static URL getResource(ClassLoader loader,
+ Package rootPkg,
+ String resPath ){
String fullName;
if(isAbsoluteResourcePath(resPath)){
- fullName = resPath.substring(1); // chop '/' heading
+ // chop '/' heading
+ fullName = resPath.substring(1);
}else{
String pfx = getResourcePrefix(rootPkg);
fullName = pfx + resPath;
* リソース名を用いて、
* デフォルトのクラスローダとデフォルトのルートパッケージから
* リソースの入力ストリームを取得する。
+ *
* @param resPath リソース名
* @return リソースの入力ストリーム。リソースが見つからなければnull。
*/
/**
* 任意のルートパッケージと相対リソース名を用いて、
* デフォルトのクラスローダからリソースの入力ストリームを取得する。
+ *
* @param rootPkg ルートパッケージ情報。
* 「/」で始まる絶対リソース名が指定された場合は無視される。
* @param resPath リソース名
* @return リソースの入力ストリーム。リソースが見つからなければnull。
*/
- public static InputStream getResourceAsStream(Package rootPkg,
- String resPath ){
+ private static InputStream getResourceAsStream(Package rootPkg,
+ String resPath ){
return getResourceAsStream(DEF_LOADER, rootPkg, resPath);
}
/**
* 任意のルートパッケージと相対リソース名を用いて、
* 任意のクラスローダからリソースの入力ストリームを取得する。
+ *
* @param loader クラスローダ
* @param rootPkg ルートパッケージ情報。
* 「/」で始まる絶対リソース名が指定された場合は無視される。
* @param resPath リソース名
* @return リソースの入力ストリーム。リソースが見つからなければnull。
*/
- public static InputStream getResourceAsStream(ClassLoader loader,
- Package rootPkg,
- String resPath ){
+ private static InputStream getResourceAsStream(ClassLoader loader,
+ Package rootPkg,
+ String resPath ){
URL url = getResource(loader, rootPkg, resPath);
if(url == null) return null;
/**
* リソース名を用いてイメージ画像を取得する。
+ *
* @param resPath 画像リソース名
* @return イメージ画像。リソースが見つからなければnull。
*/
/**
* リソース名を用いてアイコン画像を取得する。
+ *
* @param resPath アイコン画像リソース名
* @return アイコン画像。リソースが見つからなければnull。
*/
/**
* リソース名を用いてプロパティを取得する。
+ *
* @param resPath プロパティファイルのリソース名
* @return プロパティ。リソースが読み込めなければnull。
*/