OSDN Git Service

ワーキングセットをXMLで出力できるようにした。(読み込みは未対応)
[charactermanaj/CharacterManaJ.git] / src / charactermanaj / model / CharacterData.java
index 657c0ff..31c717e 100644 (file)
@@ -400,6 +400,60 @@ public class CharacterData implements Serializable, PartsSpecResolver {
        }\r
        \r
        /**\r
+        * キャラクターデータの構造を表す文字列を返す.<br>\r
+        * カテゴリ、レイヤー、色グループのみで構成される.<br>\r
+        * id, revなどは含まない.<br>\r
+        * @return キャラクターデータの構造を表す文字列\r
+        */\r
+       public String toStructureString() {\r
+               // カラーグループ\r
+               StringBuilder buf = new StringBuilder();\r
+               buf.append("{colorGroup:[");\r
+               for (ColorGroup colorGroup : getColorGroups()) {\r
+                       buf.append(colorGroup.getId());\r
+                       buf.append(",");\r
+               }\r
+               buf.append("],");\r
+               \r
+               // カテゴリ\r
+               buf.append("category:[");\r
+               for (PartsCategory category : getPartsCategories()) {\r
+                       buf.append("{id:");\r
+                       buf.append(category.getCategoryId());\r
+\r
+                       buf.append(",layer:[");\r
+                       for (Layer layer : category.getLayers()) {\r
+                               buf.append("{id:");\r
+                               buf.append(layer.getId());\r
+                               buf.append(",dir:");\r
+                               buf.append(layer.getDir());\r
+                               buf.append("},");\r
+                       }\r
+                       buf.append("]},");\r
+               }\r
+               buf.append("]}");\r
+               \r
+               return buf.toString();\r
+       }\r
+\r
+       /**\r
+        * キャラクターデータのID, REVと構造を識別するシグネチャの文字列を返す.<br>\r
+        * (構造はカテゴリ、レイヤー、色グループのみ).<br>\r
+        * @return シグネチャの文字列\r
+        */\r
+       public String toSignatureString() {\r
+               StringBuilder buf = new StringBuilder();\r
+               buf.append("{id:");\r
+               buf.append(getId());\r
+               buf.append(",rev:");\r
+               buf.append(getRev());\r
+               buf.append(",structure:");\r
+               buf.append(toStructureString());\r
+               buf.append("}");\r
+               return buf.toString();\r
+       }\r
+       \r
+       /**\r
         * デシリアライズする.\r
         * @param stream 入力もと\r
         * @throws IOException 失敗\r