OSDN Git Service

use JRE1.6 runtime static members topic/jre17
authorOlyutorskii <olyutorskii@users.osdn.me>
Sun, 27 May 2018 14:51:33 +0000 (23:51 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Sun, 27 May 2018 14:51:33 +0000 (23:51 +0900)
src/main/java/jp/sfjp/jindolf/config/OptionInfo.java
src/main/java/jp/sfjp/jindolf/glyph/FontEnv.java
src/main/java/jp/sfjp/jindolf/glyph/FontInfo.java
src/main/java/jp/sfjp/jindolf/util/Monodizer.java

index 9f265e7..bef7def 100644 (file)
@@ -19,7 +19,8 @@ import java.util.regex.Pattern;
 
 /**
  * コマンドラインオプション情報。
- * public static void main()の引数から展開される。
+ *
+ * <p>public static void main()の引数から展開される。
  */
 public class OptionInfo{
 
@@ -74,21 +75,20 @@ public class OptionInfo{
     /**
      * 文字列が可変引数のいずれかと英字大小無視で等しいか判定する。
      *
-     * <p>※ JRE1.6のString#equalsIgnoreCase の代替も兼ねる。
-     *
      * @param text 文字列
      * @param names 文字列の可変引数
      * @return 等しい物があればtrue
      */
     private static boolean equalsIgnoreCase(String text, String ... names){
         for(String name : names){
-            if(text.compareToIgnoreCase(name) == 0) return true;
+            if(text.equalsIgnoreCase(name)) return true;
         }
         return false;
     }
 
     /**
      * 真偽二値をとるオプション解析の下請け。
+     *
      * @param info オプション情報格納先
      * @param option オプション種別
      * @param optTxt オプション名文字列
@@ -168,6 +168,7 @@ public class OptionInfo{
 
     /**
      * 引数付きオプションを解析する。
+     *
      * @param info オプション情報
      * @param optTxt オプション文字列
      * @param option オプション種別
@@ -203,6 +204,7 @@ public class OptionInfo{
 
     /**
      * オプション文字列を解析する。
+     *
      * @param args main()に渡されるオプション文字列
      * @return 解析済みのオプション情報。
      * @throws IllegalArgumentException 構文エラー
@@ -238,6 +240,7 @@ public class OptionInfo{
 
     /**
      * 全引数のリストを返す。
+     *
      * @return 全引数のリスト
      */
     public List<String> getInvokeArgList(){
@@ -246,6 +249,7 @@ public class OptionInfo{
 
     /**
      * オプションが指定されていたか否か判定する。
+     *
      * @param option オプション
      * @return 指定されていたらtrue
      */
@@ -256,7 +260,9 @@ public class OptionInfo{
 
     /**
      * 真偽値をとるオプション値を返す。
-     * 複数回指定された場合は最後の値。
+     *
+     * <p>複数回指定された場合は最後の値。
+     *
      * @param option オプション
      * @return 真偽値。オプション指定がなかった場合はnull
      * @throws IllegalArgumentException 真偽値を取るオプションではない。
@@ -274,7 +280,9 @@ public class OptionInfo{
 
     /**
      * 文字列引数をとるオプション値を返す。
-     * 複数回指定された場合は最後の値。
+     *
+     * <p>複数回指定された場合は最後の値。
+     *
      * @param option オプション
      * @return 文字列。オプション指定がなかった場合はnull
      */
@@ -285,7 +293,9 @@ public class OptionInfo{
 
     /**
      * 排他的オプションのいずれかが指定されたか判定する。
-     * 後から指定された方が有効となる。
+     *
+     * <p>後から指定された方が有効となる。
+     *
      * @param options 排他的オプション群
      * @return いずれかのオプション。どれも指定されなければnull
      */
@@ -304,6 +314,7 @@ public class OptionInfo{
 
     /**
      * 初期のフレーム幅を返す。
+     *
      * @return 初期のフレーム幅。オプション指定されてなければnull
      */
     public Integer initialFrameWidth(){
@@ -312,6 +323,7 @@ public class OptionInfo{
 
     /**
      * 初期のフレーム高を返す。
+     *
      * @return 初期のフレーム高。オプション指定されてなければnull
      */
     public Integer initialFrameHeight(){
@@ -320,6 +332,7 @@ public class OptionInfo{
 
     /**
      * 初期のフレーム位置のX座標を返す。
+     *
      * @return 初期のフレーム位置のX座標。オプション指定されてなければnull
      */
     public Integer initialFrameXpos(){
@@ -328,6 +341,7 @@ public class OptionInfo{
 
     /**
      * 初期のフレーム位置のY座標を返す。
+     *
      * @return 初期のフレーム位置のY座標。オプション指定されてなければnull
      */
     public Integer initialFrameYpos(){
index ddf348b..2a51110 100644 (file)
@@ -30,13 +30,9 @@ import java.util.concurrent.Future;
  * <li>任意の文字列を表示可能な全フォントを列挙すること
  * </ul>
  *
- * <p>
- * この二つをバックグラウンドで非同期に収集する。
- * </p>
+ * <p>この二つをバックグラウンドで非同期に収集する。
  *
- * <p>
- * 各種フォント環境収集メソッドの遅さをカバーするのが実装目的。
- * </p>
+ * <p>各種フォント環境収集メソッドの遅さをカバーするのが実装目的。
  */
 public class FontEnv {
 
@@ -45,9 +41,6 @@ public class FontEnv {
      */
     public static final FontEnv DEFAULT;
 
-    /** {@link java.awt.Font#DIALOG} 代替品。 */
-    private static final String FAMILY_DIALOG = "Dialog";
-
     /** フォントファミリ選択肢。 */
     private static final String[] INIT_FAMILY_NAMES = {
         "Hiragino Kaku Gothic Pro",  // for MacOS X
@@ -62,9 +55,6 @@ public class FontEnv {
     /** JIS X0208:1990 表示確認用文字列。 */
     private static final String JPCHECK_CODE = "あ凜熙峠ゑアアヴヰ┼ЖΩ9A";
 
-    /** {@link java.util.Locale#ROOT} 代替品。 */
-    private static final Locale LOCALE_ROOT = new Locale("", "", "");
-
     private static final int POOL_SZ = 2;
     private static final int STRIDE = 15;
 
@@ -82,7 +72,9 @@ public class FontEnv {
 
     /**
      * コンストラクタ。
-     * 完了と同時に裏でフォント情報収集タスクが走る。
+     *
+     * <p>完了と同時に裏でフォント情報収集タスクが走る。
+     *
      * @param proveChars 表示判定用文字列
      * @param fontFamilyList フォント候補
      * @throws NullPointerException 引数がnull
@@ -113,7 +105,9 @@ public class FontEnv {
 
     /**
      * コンストラクタ。
-     * 完了と同時に裏でフォント情報収集タスクが走る。
+     *
+     * <p>完了と同時に裏でフォント情報収集タスクが走る。
+     *
      * @param proveChars 表示判定用文字列
      * @param fontFamilyList フォント候補
      * @throws NullPointerException 引数がnull
@@ -166,6 +160,7 @@ public class FontEnv {
 
     /**
      * システムに存在する有効なファミリ名か判定する。
+     *
      * @param familyName フォントファミリ名。
      * @return 存在する有効なファミリ名ならtrue
      */
@@ -174,7 +169,7 @@ public class FontEnv {
         int size = 1;
         Font dummyFont = new Font(familyName, style, size);
 
-        String dummyFamilyName = dummyFont.getFamily(LOCALE_ROOT);
+        String dummyFamilyName = dummyFont.getFamily(Locale.ROOT);
         if(dummyFamilyName.equals(familyName)) return true;
 
         String dummyLocalFamilyName = dummyFont.getFamily();
@@ -185,12 +180,14 @@ public class FontEnv {
 
     /**
      * 複数の候補から利用可能なフォントを一つ選び、生成する。
-     * 候補から適当なファミリが見つからなかったら"Dialog"が選択される。
+     *
+     * <p>候補から適当なファミリが見つからなかったら"Dialog"が選択される。
+     *
      * @param fontList フォントファミリ名候補
      * @return フォント
      */
     protected static String availableFontFamily(Iterable<String> fontList){
-        String defaultFamilyName = FAMILY_DIALOG;
+        String defaultFamilyName = Font.DIALOG;
         for(String familyName : fontList){
             if(isValidFamilyName(familyName)){
                 defaultFamilyName = familyName;
@@ -204,6 +201,7 @@ public class FontEnv {
 
     /**
      * フォントファミリー名のリストを返す。
+     *
      * @return フォントファミリー名のリスト
      * @throws IllegalStateException 収集タスクに異常が発生
      */
@@ -212,9 +210,7 @@ public class FontEnv {
 
         try{
             result = this.listLoadFuture.get();
-        }catch(ExecutionException e){
-            throw new IllegalStateException(e);
-        }catch(InterruptedException e){
+        }catch(ExecutionException | InterruptedException e){
             throw new IllegalStateException(e);
         }
 
@@ -223,6 +219,7 @@ public class FontEnv {
 
     /**
      * 利用可能なフォントファミリ名を返す。
+     *
      * @return フォントファミリー名
      * @throws IllegalStateException 収集タスクに異常が発生
      */
@@ -231,9 +228,7 @@ public class FontEnv {
 
         try{
             result = this.fontSelectFuture.get();
-        }catch(ExecutionException e){
-            throw new IllegalStateException(e);
-        }catch(InterruptedException e){
+        }catch(ExecutionException | InterruptedException e){
             throw new IllegalStateException(e);
         }
 
@@ -256,6 +251,7 @@ public class FontEnv {
 
         /**
          * {@inheritDoc}
+         *
          * @return {@inheritDoc}
          */
         @Override
@@ -289,6 +285,7 @@ public class FontEnv {
 
         /**
          * {@inheritDoc}
+         *
          * @return {@inheritDoc}
          */
         @Override
index 293e274..e457832 100644 (file)
@@ -31,8 +31,6 @@ public class FontInfo{
     /** デフォルトのフォントスタイル。 */
     public static final int DEF_STYLE = 0x00 | Font.PLAIN;
 
-    /** {@link java.util.Locale#ROOT}代替品。 */
-    private static final Locale LOCALE_ROOT = new Locale("", "", "");
     /** MSリコー系日本語ベクトルフォント下限ポイントサイズ。 */
     private static final int MS_VEC_LIMIT = 24;
     /** 二重引用符。 */
@@ -53,7 +51,8 @@ public class FontInfo{
 
     /**
      * コンストラクタ。
-     * デフォルトフォントとそれに適した描画属性が指定される。
+     *
+     * <p>デフォルトフォントとそれに適した描画属性が指定される。
      */
     public FontInfo(){
         this((Font) null, (FontRenderContext) null);
@@ -62,6 +61,7 @@ public class FontInfo{
 
     /**
      * コンストラクタ。
+     *
      * @param font フォント
      * @param context 描画設定
      */
@@ -86,7 +86,7 @@ public class FontInfo{
      * @return 見当が付けばtrue
      */
     protected static boolean isMsRicohJpFont(Font font){
-        String rootFamilyName = font.getFamily(LOCALE_ROOT);
+        String rootFamilyName = font.getFamily(Locale.ROOT);
         if(rootFamilyName.startsWith("MS")){
             if(rootFamilyName.contains("Gothic")) return true;
             if(rootFamilyName.contains("Mincho")) return true;
@@ -145,6 +145,7 @@ public class FontInfo{
 
     /**
      * ファミリ名を返す。
+     *
      * @return ファミリ名
      */
     private String getFamilyName(){
@@ -161,6 +162,7 @@ public class FontInfo{
 
     /**
      * フォントを返す。
+     *
      * @return フォント
      */
     public Font getFont(){
@@ -173,6 +175,7 @@ public class FontInfo{
 
     /**
      * 描画属性を返す。
+     *
      * @return 描画属性
      */
     public FontRenderContext getFontRenderContext(){
@@ -185,6 +188,7 @@ public class FontInfo{
 
     /**
      * アンチエイリアス機能を使うか判定する。
+     *
      * @return アンチエイリアス機能を使うならtrue
      */
     public boolean isAntiAliased(){
@@ -195,6 +199,7 @@ public class FontInfo{
 
     /**
      * サブピクセル精度を使うか判定する。
+     *
      * @return サブピクセル精度を使うならtrue
      */
     public boolean usesFractionalMetrics(){
@@ -205,6 +210,7 @@ public class FontInfo{
 
     /**
      * フォントの最大寸法を返す。
+     *
      * @return 最大寸法
      * @see java.awt.Font#getMaxCharBounds(FontRenderContext)
      */
@@ -218,6 +224,7 @@ public class FontInfo{
 
     /**
      * フォントのみ異なる設定を派生させる。
+     *
      * @param newFont 新フォント
      * @return 新設定
      */
@@ -228,6 +235,7 @@ public class FontInfo{
 
     /**
      * 描画属性のみ異なる設定を派生させる。
+     *
      * @param newContext 新描画設定
      * @return 新設定
      */
@@ -238,6 +246,7 @@ public class FontInfo{
 
     /**
      * 描画属性のみ異なる設定を派生させる。
+     *
      * @param isAntiAliases アンチエイリアス設定
      * @param useFractional サブピクセル精度設定
      * @return 新設定
@@ -257,6 +266,7 @@ public class FontInfo{
 
     /**
      * 文字列からグリフ集合を生成する。
+     *
      * @param iterator 文字列
      * @return グリフ集合
      */
@@ -269,19 +279,23 @@ public class FontInfo{
 
     /**
      * ロケール中立なフォントファミリ名を返す。
-     * JRE1.5対策
+     *
+     * <p>JRE1.5対策
+     *
      * @return ファミリ名
      * @see Font#getFamily(Locale)
      */
     public String getRootFamilyName(){
         Font thisFont = getFont();
-        String result = thisFont.getFamily(LOCALE_ROOT);
+        String result = thisFont.getFamily(Locale.ROOT);
         return result;
     }
 
     /**
      * Font#decode()用の名前を返す。
-     * 空白が含まれる場合は二重引用符で囲まれる。
+     *
+     * <p>空白が含まれる場合は二重引用符で囲まれる。
+     *
      * @return {@link java.awt.Font#decode(String)}用の名前
      * @see java.awt.Font#decode(String)
      */
@@ -312,6 +326,7 @@ public class FontInfo{
 
     /**
      * {@inheritDoc}
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -337,6 +352,7 @@ public class FontInfo{
 
     /**
      * {@inheritDoc}
+     *
      * @return {@inheritDoc}
      */
     @Override
index 1dced96..d54633a 100644 (file)
@@ -21,7 +21,8 @@ import javax.swing.text.JTextComponent;
 
 /**
  * Swingコンポーネントのフォント等幅化。
- * L&amp;F変更にも対処。
+ *
+ * <p>L&amp;F変更にも対処。
  */
 public final class Monodizer implements PropertyChangeListener{
 
@@ -29,11 +30,9 @@ public final class Monodizer implements PropertyChangeListener{
     public static final String PROPNAME_FONT = "font";
     /** L&amp;F変更時のプロパティ名。 */
     public static final String PROPNAME_UI = "UI";
-    /** Font.MONOSPACED代替品。 */
-    public static final String FAMILY_MONO = "Monospaced";
 
     private static final Map<TextAttribute, String> TEXTATTR_MONO =
-            Collections.singletonMap(TextAttribute.FAMILY, FAMILY_MONO);
+            Collections.singletonMap(TextAttribute.FAMILY, Font.MONOSPACED);
 
     private static final Monodizer CHANGER = new Monodizer();
 
@@ -49,6 +48,7 @@ public final class Monodizer implements PropertyChangeListener{
 
     /**
      * 等幅フォントか否か判定する。
+     *
      * @param font フォント
      * @return 等幅フォントならtrue
      */
@@ -59,14 +59,16 @@ public final class Monodizer implements PropertyChangeListener{
         if( ! (attr instanceof String) ) return false;
 
         String family = (String) attr;
-        if(family.equals(FAMILY_MONO)) return true;
+        if(family.equals(Font.MONOSPACED)) return true;
 
         return false;
     }
 
     /**
      * 任意のフォントの等幅化を行う。
-     * 等幅以外の属性は可能な限り保持する。
+     *
+     * <p>等幅以外の属性は可能な限り保持する。
+     *
      * @param font 任意のフォント
      * @return 等幅フォント
      */
@@ -77,7 +79,9 @@ public final class Monodizer implements PropertyChangeListener{
 
     /**
      * 任意のコンポーネントをフォント等幅化する。
-     * L&amp;F変更に対処するためのリスナ組み込みも行われる。
+     *
+     * <p>L&amp;F変更に対処するためのリスナ組み込みも行われる。
+     *
      * @param comp コンポーネント
      */
     public static void monodize(JComponent comp){
@@ -97,6 +101,7 @@ public final class Monodizer implements PropertyChangeListener{
 
     /**
      * コンポーネントに微修正を加える。
+     *
      * @param comp コンポーネント
      */
     private static void modifyComponent(JComponent comp){
@@ -113,6 +118,7 @@ public final class Monodizer implements PropertyChangeListener{
 
     /**
      * テキストコンポーネントへの微修正を行う。
+     *
      * @param textComp テキストコンポーネント
      */
     private static void modifyTextComponent(JTextComponent textComp){
@@ -126,6 +132,7 @@ public final class Monodizer implements PropertyChangeListener{
 
     /**
      * コンボボックスのエディタを等幅化する。
+     *
      * @param comboBox コンボボックス
      */
     private static void modifyComboBox(JComboBox<?> comboBox){
@@ -147,6 +154,7 @@ public final class Monodizer implements PropertyChangeListener{
 
     /**
      * フォント変更イベントの受信。
+     *
      * @param event フォント変更イベント
      */
     @Override