OSDN Git Service

アクセサリーの順番が読み込み時に壊れる不具合の修正
authorseraphy <seraphy@users.osdn.me>
Thu, 8 Nov 2018 14:13:16 +0000 (23:13 +0900)
committerseraphy <seraphy@users.osdn.me>
Thu, 8 Nov 2018 14:13:16 +0000 (23:13 +0900)
https://osdn.net/projects/charactermanaj/ticket/38481

src/main/java/charactermanaj/model/io/CharacterDataXMLReader.java

index dd477f8..40106f3 100644 (file)
@@ -1,9 +1,6 @@
 package charactermanaj.model.io;\r
 \r
-import static charactermanaj.util.XMLUtilities.getChildElements;\r
-import static charactermanaj.util.XMLUtilities.getElementText;\r
-import static charactermanaj.util.XMLUtilities.getFirstChildElement;\r
-import static charactermanaj.util.XMLUtilities.getLocalizedElementText;\r
+import static charactermanaj.util.XMLUtilities.*;\r
 \r
 import java.awt.Color;\r
 import java.awt.Dimension;\r
@@ -12,7 +9,7 @@ import java.io.InputStream;
 import java.net.URI;\r
 import java.net.URL;\r
 import java.util.ArrayList;\r
-import java.util.HashMap;\r
+import java.util.LinkedHashMap;\r
 import java.util.List;\r
 import java.util.Locale;\r
 import java.util.Map;\r
@@ -38,7 +35,7 @@ import charactermanaj.util.XMLUtilities;
 \r
 /**\r
  * キャラクターデータを格納したXMLを読み込むためのクラス.\r
- * \r
+ *\r
  * @author seraphy\r
  */\r
 public class CharacterDataXMLReader {\r
@@ -62,7 +59,7 @@ public class CharacterDataXMLReader {
 \r
        /**\r
         * キャラクター定義(プロファイル)をロードする.\r
-        * \r
+        *\r
         * @param docBase\r
         *            対象xml\r
         * @return キャラクターデータ\r
@@ -91,7 +88,7 @@ public class CharacterDataXMLReader {
         * docbaseはXMLファイルの位置を示すものであり、XMLデータ中には含まれず、キャラクターデータのロード時にセットされる.<br>\r
         * そのため引数としてdocbaseを引き渡す.<br>\r
         * 読み取りは現在のデフォルトロケールで行われる.<br>\r
-        * \r
+        *\r
         * @param is\r
         *            入力ストリーム\r
         * @param docBase\r
@@ -113,7 +110,7 @@ public class CharacterDataXMLReader {
         * そのため引数としてdocbaseを引き渡す.<br>\r
         * 設定ファイル中の表示文字列にロケール指定がある場合、引数に指定したロケールに合致する言語の情報を取得する.<br>\r
         * 合致するものがなければ最初のものを使用する.<br>\r
-        * \r
+        *\r
         * @param is\r
         *            入力ストリーム\r
         * @param docBase\r
@@ -377,7 +374,7 @@ public class CharacterDataXMLReader {
 \r
        /**\r
         * 入力ストリームからパーツセット定義(Favorites.xml)を読み込んで、 characterDataに追加登録する.<br>\r
-        * \r
+        *\r
         * @param characterData\r
         *            お気に入りを登録されるキャラクターデータ\r
         * @param inpstm\r
@@ -412,7 +409,7 @@ public class CharacterDataXMLReader {
 \r
        /**\r
         * CharacterDataのプリセットまたはFavoritesのパーツセットのXMLからパーツセットを読み取って登録する.<br>\r
-        * \r
+        *\r
         * @param characterData\r
         *            キャラクターデータ\r
         * @param nodePartssets\r
@@ -442,7 +439,7 @@ public class CharacterDataXMLReader {
 \r
        /**\r
         * CharacterDataのプリセットまたはFavoritesのパーツセットのXMLからパーツセットを読み取って登録する.<br>\r
-        * \r
+        *\r
         * @param nodePartssets\r
         *            パーツセットのノード、プリセットまたはパーツセットノード\r
         * @param lang\r
@@ -488,7 +485,7 @@ public class CharacterDataXMLReader {
 \r
        /**\r
         * CharacterDataのプリセットまたはFavoritesのパーツセットのXMLからパーツセットを読み取る.<br>\r
-        * \r
+        *\r
         * @param nodePartssets\r
         *            パーツセットのノード、プリセットまたはパーツセットノード\r
         * @param lang\r
@@ -577,7 +574,8 @@ public class CharacterDataXMLReader {
                        Map<String, List<IndependentPartsColorInfo>> categoryPartsMap = partsMap\r
                                        .get(categoryId);\r
                        if (categoryPartsMap == null) {\r
-                               categoryPartsMap = new HashMap<String, List<IndependentPartsColorInfo>>();\r
+                               // ※ パーツの出現順を維持する必要があるためLinkedHashMapを用いる\r
+                               categoryPartsMap = new LinkedHashMap<String, List<IndependentPartsColorInfo>>();\r
                                partsMap.put(categoryId, categoryPartsMap);\r
                        }\r
 \r
@@ -608,7 +606,7 @@ public class CharacterDataXMLReader {
         * パーツごとのカラー情報のXMLを読み込んで返す.<br>\r
         * パーツは複数のレイヤーから構成されるので、複数レイヤーのカラー情報のリストとして返される.<br>\r
         * (パーツは複数レイヤーをまとめる1つのカテゴリになるので、カテゴリ単位の情報となる.)<br>\r
-        * \r
+        *\r
         * @param colorElm\r
         *            カラーのXML要素\r
         * @return 素のカラー情報\r