OSDN Git Service

改行コード指定
[jindolf/JinCore.git] / src / main / java / jp / sourceforge / jindolf / corelib / VillageTag.java
index eedfee4..d5beb28 100644 (file)
-/*\r
- * village tag-name\r
- *\r
- * License : The MIT License\r
- * Copyright(c) 2009 olyutorskii\r
- */\r
-\r
-package jp.sourceforge.jindolf.corelib;\r
-\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-import java.util.regex.Matcher;\r
-import java.util.regex.Pattern;\r
-\r
-/**\r
- * 村名一覧。\r
- */\r
-public enum VillageTag{\r
-\r
-    /** 平凡な村。 */\r
-    HEIBON        ("平凡な村"),\r
-    /** 星狩りの村。 */\r
-    HOSHIKARI     ("星狩りの村"),\r
-    /** 日の差さぬ村。 */\r
-    HINOSASANU    ("日の差さぬ村"),\r
-    /** 隠された村。 */\r
-    KAKUSARETA    ("隠された村"),\r
-    /** 日の沈まぬ村。 */\r
-    HINOSHIZUMANU ("日の沈まぬ村"),\r
-    /** 消え行く村。 */\r
-    KIEYUKU       ("消え行く村"),\r
-    /** 怪しげな村。 */\r
-    AYASHIGE      ("怪しげな村"),\r
-    /** 山影の村。 */\r
-    YAMAKAGE      ("山影の村"),\r
-    /** 平和な村。 */\r
-    HEIWA         ("平和な村"),\r
-    /** 嘘つきの村。 */\r
-    USOTSUKI      ("嘘つきの村"),\r
-    /** 悲しみの村。 */\r
-    KANASHIMI     ("悲しみの村"),\r
-    /** 恐ろしい村。 */\r
-    OSOROSHII     ("恐ろしい村"),\r
-    /** 盆地の村。 */\r
-    BONCHI        ("盆地の村"),\r
-    /** 幻の村。 */\r
-    MABOROSHI     ("幻の村"),\r
-    /** 謀略の村。 */\r
-    BOURYAKU      ("謀略の村"),\r
-    /** 最果ての村。 */\r
-    SAIHATE       ("最果ての村"),\r
-    /** 封印の村。 */\r
-    HUUIN         ("封印の村"),\r
-    /** 海辺の村。 */\r
-    UMIBE         ("海辺の村"),\r
-    /** 開拓者の村。 */\r
-    KAITAKUSHA    ("開拓者の村"),\r
-    /** 断崖の村。 */\r
-    DANGAI        ("断崖の村"),\r
-    /** 出会いの村。 */\r
-    DEAI          ("出会いの村"),\r
-    /** ふもとの村。 */\r
-    HUMOTO        ("ふもとの村"),\r
-    /** 峠の村。 */\r
-    TOUGE         ("峠の村"),\r
-    /** 血塗られた村。 */\r
-    CHINURARETA   ("血塗られた村"),\r
-    /** 僻地の村。 */\r
-    HEKICHI       ("僻地の村"),\r
-    /** 安らぎの村。 */\r
-    YASURAGI      ("安らぎの村"),\r
-    /** 最後の村。 */\r
-    SAIGO         ("最後の村"),\r
-    /** 疑心暗鬼の村。 */\r
-    GISHINANKI    ("疑心暗鬼の村"),\r
-    /** 呪われた村。 */\r
-    NOROWARETA    ("呪われた村"),\r
-    /** 新緑の村。 */\r
-    SHINRYOKU     ("新緑の村"),\r
-    /** 荒地の村。 */\r
-    ARECHI        ("荒地の村"),\r
-    /** 残された村。 */\r
-    NOKOSARETA    ("残された村"),\r
-    /** 小さな村。 */\r
-    CHIISANA      ("小さな村"),\r
-    /** 極寒の村。 */\r
-    GOKUKAN       ("極寒の村"),\r
-    /** 見捨てられた村。 */\r
-    MISUTERARETA  ("見捨てられた村"),\r
-    /** 希望の村。 */\r
-    KIBOU         ("希望の村"),\r
-    /** 裏切りの村。 */\r
-    URAGIRI       ("裏切りの村"),\r
-    /** 沈黙の村。 */\r
-    CHINMOKU      ("沈黙の村"),\r
-    /** 雨の止まぬ村。 */\r
-    AMENOYAMANU   ("雨の止まぬ村"),\r
-    /** 辺境の村。 */\r
-    HENKYOU       ("辺境の村"),\r
-    /** 忘れられた村。 */\r
-    WASURERARETA  ("忘れられた村"),\r
-    /** 谷底の村。 */\r
-    TANIZOKO      ("谷底の村"),\r
-    ;\r
-\r
-    private static final Map<String, VillageTag> TAGMAP =\r
-            new HashMap<String, VillageTag>();\r
-    private static final VillageTag[] VALUES = values();\r
-    private static final int VALUE_NUM = values().length;\r
-    private static final Pattern VTAG_PATTERN;\r
-\r
-    static{\r
-        for(VillageTag vtag : VALUES){\r
-            String tagName = vtag.getTagName();\r
-            TAGMAP.put(tagName, vtag);\r
-        }\r
-\r
-        StringBuilder vtagRegex = new StringBuilder();\r
-        for(VillageTag tag : values()){\r
-            if(vtagRegex.length() > 0){\r
-                vtagRegex.append('|');\r
-            }\r
-            vtagRegex.append('(')\r
-                     .append(Pattern.quote(tag.getTagName()))\r
-                     .append(')');\r
-        }\r
-        VTAG_PATTERN = Pattern.compile(vtagRegex.toString());\r
-    }\r
-\r
-\r
-    private final String tagName;\r
-\r
-\r
-    /**\r
-     * 隠しコンストラクタ。\r
-     * @param tagName 村名\r
-     */\r
-    private VillageTag(String tagName){\r
-        this.tagName = tagName.intern();\r
-        return;\r
-    }\r
-\r
-\r
-    /**\r
-     * 村名からEnumメンバを得る。\r
-     * @param tagName 村名\r
-     * @return Enumメンバ\r
-     */\r
-    public static VillageTag tagNameToVillageTag(String tagName){\r
-        VillageTag result = TAGMAP.get(tagName);\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * 与えられたマッチャ先頭がいずれかの村名に一致しないか調べる。\r
-     * @param matcher マッチャ\r
-     * @return 一致した村名。どれにも一致しなければnull。\r
-     */\r
-    public static VillageTag lookingAtVillageTag(Matcher matcher){\r
-        matcher.usePattern(VTAG_PATTERN);\r
-\r
-        if( ! matcher.lookingAt() ) return null;\r
-        int groupCt = matcher.groupCount();\r
-        for(int group = 1; group <= groupCt; group++){\r
-            if(matcher.start(group) >= 0){\r
-                VillageTag tag = values()[group - 1];\r
-                return tag;\r
-            }\r
-        }\r
-\r
-        return null;\r
-    }\r
-\r
-\r
-    /**\r
-     * 村名を得る。\r
-     * @return 村名\r
-     */\r
-    public String getTagName(){\r
-        return this.tagName;\r
-    }\r
-\r
-    /**\r
-     * 次のEnumメンバを得る。\r
-     * 先頭と末尾は循環する。\r
-     * @return 次のEnumメンバ\r
-     */\r
-    public VillageTag getNextVillageTag(){\r
-        int ordinal = ordinal();\r
-        ordinal = (ordinal+1) % VALUE_NUM;\r
-        VillageTag result = VALUES[ordinal];\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * 前のEnumメンバを得る。\r
-     * 先頭と末尾は循環する。\r
-     * @return 前のEnumメンバ\r
-     */\r
-    public VillageTag getPrevVillageTag(){\r
-        int ordinal = ordinal();\r
-        ordinal--;\r
-        if(ordinal < 0) ordinal += VALUE_NUM;\r
-        VillageTag result = VALUES[ordinal];\r
-        return result;\r
-    }\r
-\r
-}\r
+/*
+ * village tag-name
+ *
+ * License : The MIT License
+ * Copyright(c) 2009 olyutorskii
+ */
+
+package jp.sourceforge.jindolf.corelib;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 村名一覧。
+ */
+public enum VillageTag{
+
+    /** 平凡な村。 */
+    HEIBON        ("平凡な村"),
+    /** 星狩りの村。 */
+    HOSHIKARI     ("星狩りの村"),
+    /** 日の差さぬ村。 */
+    HINOSASANU    ("日の差さぬ村"),
+    /** 隠された村。 */
+    KAKUSARETA    ("隠された村"),
+    /** 日の沈まぬ村。 */
+    HINOSHIZUMANU ("日の沈まぬ村"),
+    /** 消え行く村。 */
+    KIEYUKU       ("消え行く村"),
+    /** 怪しげな村。 */
+    AYASHIGE      ("怪しげな村"),
+    /** 山影の村。 */
+    YAMAKAGE      ("山影の村"),
+    /** 平和な村。 */
+    HEIWA         ("平和な村"),
+    /** 嘘つきの村。 */
+    USOTSUKI      ("嘘つきの村"),
+    /** 悲しみの村。 */
+    KANASHIMI     ("悲しみの村"),
+    /** 恐ろしい村。 */
+    OSOROSHII     ("恐ろしい村"),
+    /** 盆地の村。 */
+    BONCHI        ("盆地の村"),
+    /** 幻の村。 */
+    MABOROSHI     ("幻の村"),
+    /** 謀略の村。 */
+    BOURYAKU      ("謀略の村"),
+    /** 最果ての村。 */
+    SAIHATE       ("最果ての村"),
+    /** 封印の村。 */
+    HUUIN         ("封印の村"),
+    /** 海辺の村。 */
+    UMIBE         ("海辺の村"),
+    /** 開拓者の村。 */
+    KAITAKUSHA    ("開拓者の村"),
+    /** 断崖の村。 */
+    DANGAI        ("断崖の村"),
+    /** 出会いの村。 */
+    DEAI          ("出会いの村"),
+    /** ふもとの村。 */
+    HUMOTO        ("ふもとの村"),
+    /** 峠の村。 */
+    TOUGE         ("峠の村"),
+    /** 血塗られた村。 */
+    CHINURARETA   ("血塗られた村"),
+    /** 僻地の村。 */
+    HEKICHI       ("僻地の村"),
+    /** 安らぎの村。 */
+    YASURAGI      ("安らぎの村"),
+    /** 最後の村。 */
+    SAIGO         ("最後の村"),
+    /** 疑心暗鬼の村。 */
+    GISHINANKI    ("疑心暗鬼の村"),
+    /** 呪われた村。 */
+    NOROWARETA    ("呪われた村"),
+    /** 新緑の村。 */
+    SHINRYOKU     ("新緑の村"),
+    /** 荒地の村。 */
+    ARECHI        ("荒地の村"),
+    /** 残された村。 */
+    NOKOSARETA    ("残された村"),
+    /** 小さな村。 */
+    CHIISANA      ("小さな村"),
+    /** 極寒の村。 */
+    GOKUKAN       ("極寒の村"),
+    /** 見捨てられた村。 */
+    MISUTERARETA  ("見捨てられた村"),
+    /** 希望の村。 */
+    KIBOU         ("希望の村"),
+    /** 裏切りの村。 */
+    URAGIRI       ("裏切りの村"),
+    /** 沈黙の村。 */
+    CHINMOKU      ("沈黙の村"),
+    /** 雨の止まぬ村。 */
+    AMENOYAMANU   ("雨の止まぬ村"),
+    /** 辺境の村。 */
+    HENKYOU       ("辺境の村"),
+    /** 忘れられた村。 */
+    WASURERARETA  ("忘れられた村"),
+    /** 谷底の村。 */
+    TANIZOKO      ("谷底の村"),
+    ;
+
+    private static final Map<String, VillageTag> TAGMAP =
+            new HashMap<String, VillageTag>();
+    private static final VillageTag[] VALUES = values();
+    private static final int VALUE_NUM = values().length;
+    private static final Pattern VTAG_PATTERN;
+
+    static{
+        for(VillageTag vtag : VALUES){
+            String tagName = vtag.getTagName();
+            TAGMAP.put(tagName, vtag);
+        }
+
+        StringBuilder vtagRegex = new StringBuilder();
+        for(VillageTag tag : values()){
+            if(vtagRegex.length() > 0){
+                vtagRegex.append('|');
+            }
+            vtagRegex.append('(')
+                     .append(Pattern.quote(tag.getTagName()))
+                     .append(')');
+        }
+        VTAG_PATTERN = Pattern.compile(vtagRegex.toString());
+    }
+
+
+    private final String tagName;
+
+
+    /**
+     * 隠しコンストラクタ。
+     * @param tagName 村名
+     */
+    private VillageTag(String tagName){
+        this.tagName = tagName.intern();
+        return;
+    }
+
+
+    /**
+     * 村名からEnumメンバを得る。
+     * @param tagName 村名
+     * @return Enumメンバ
+     */
+    public static VillageTag tagNameToVillageTag(String tagName){
+        VillageTag result = TAGMAP.get(tagName);
+        return result;
+    }
+
+    /**
+     * 与えられたマッチャ先頭がいずれかの村名に一致しないか調べる。
+     * @param matcher マッチャ
+     * @return 一致した村名。どれにも一致しなければnull。
+     */
+    public static VillageTag lookingAtVillageTag(Matcher matcher){
+        matcher.usePattern(VTAG_PATTERN);
+
+        if( ! matcher.lookingAt() ) return null;
+        int groupCt = matcher.groupCount();
+        for(int group = 1; group <= groupCt; group++){
+            if(matcher.start(group) >= 0){
+                VillageTag tag = values()[group - 1];
+                return tag;
+            }
+        }
+
+        return null;
+    }
+
+
+    /**
+     * 村名を得る。
+     * @return 村名
+     */
+    public String getTagName(){
+        return this.tagName;
+    }
+
+    /**
+     * 次のEnumメンバを得る。
+     * 先頭と末尾は循環する。
+     * @return 次のEnumメンバ
+     */
+    public VillageTag getNextVillageTag(){
+        int ordinal = ordinal();
+        ordinal = (ordinal+1) % VALUE_NUM;
+        VillageTag result = VALUES[ordinal];
+        return result;
+    }
+
+    /**
+     * 前のEnumメンバを得る。
+     * 先頭と末尾は循環する。
+     * @return 前のEnumメンバ
+     */
+    public VillageTag getPrevVillageTag(){
+        int ordinal = ordinal();
+        ordinal--;
+        if(ordinal < 0) ordinal += VALUE_NUM;
+        VillageTag result = VALUES[ordinal];
+        return result;
+    }
+
+}