}\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