1 package charactermanaj.model;
\r
3 import java.awt.Color;
\r
4 import java.io.Serializable;
\r
5 import java.util.HashMap;
\r
6 import java.util.List;
\r
7 import java.util.Map;
\r
8 import java.util.logging.Level;
\r
9 import java.util.logging.Logger;
\r
13 * レイヤーやカテゴリなどのリレーションシップがない、<br>
\r
14 * 特定のキャラクターデータモデルのツリーの一部には組み込まれていない状態のもの.<br>
\r
16 public class IndependentPartsSetInfo implements Serializable {
\r
21 private static final long serialVersionUID = 7280485045920860407L;
\r
26 private static final Logger logger = Logger
\r
27 .getLogger(IndependentPartsSetInfo.class.getName());
\r
37 private String displayName;
\r
42 private Color backgroundColor;
\r
45 * アフィン変換パラメータ、未設定であればnull
\r
47 private double[] affineTransformParameter;
\r
50 * カテゴリIDをキーとし、パーツ名をキーとしカラー情報のリストを値とするマップを値とする.
\r
52 private Map<String, Map<String, List<IndependentPartsColorInfo>>> partsMap = new HashMap<String, Map<String, List<IndependentPartsColorInfo>>>();
\r
54 public String getId() {
\r
58 public void setId(String id) {
\r
62 public String getDisplayName() {
\r
66 public void setDisplayName(String displayName) {
\r
67 this.displayName = displayName;
\r
70 public Color getBackgroundColor() {
\r
71 return backgroundColor;
\r
74 public void setBackgroundColor(Color backgroundColor) {
\r
75 this.backgroundColor = backgroundColor;
\r
78 public double[] getAffineTransformParameter() {
\r
79 return affineTransformParameter;
\r
82 public void setAffineTransformParameter(
\r
83 double[] affineTransformParameter) {
\r
84 this.affineTransformParameter = affineTransformParameter;
\r
88 * カテゴリIDをキーとし、パーツ名をキーとしカラー情報のリストを値とするマップを値とする.
\r
90 * @return カテゴリIDをキーとし、パーツ名をキーとしカラー情報のリストを値とするマップを値とする.
\r
92 public Map<String, Map<String, List<IndependentPartsColorInfo>>> getPartsMap() {
\r
96 public void setPartsMap(
\r
97 Map<String, Map<String, List<IndependentPartsColorInfo>>> partsMap) {
\r
98 if (partsMap == null) {
\r
99 throw new IllegalArgumentException();
\r
101 this.partsMap = partsMap;
\r
105 * インスタンス独立のパーツセット情報から、指定されたキャラクターデータに関連づけられた パーツ情報に変換して返す.<br>
\r
107 * @param partsSetInfo
\r
108 * インスタンス独立のパーツセット情報
\r
109 * @param characterData
\r
111 * @param presetParts
\r
113 * @return キャラクターデータに関連づけられたパーツセットインスタンス
\r
115 public static PartsSet convertPartsSet(
\r
116 IndependentPartsSetInfo partsSetInfo, CharacterData characterData,
\r
117 boolean presetParts) {
\r
118 if (partsSetInfo == null || characterData == null) {
\r
119 throw new IllegalArgumentException();
\r
121 PartsSet partsSet = new PartsSet();
\r
122 partsSet.setPartsSetId(partsSetInfo.getId());
\r
123 partsSet.setLocalizedName(partsSetInfo.getDisplayName());
\r
124 partsSet.setPresetParts(presetParts);
\r
126 Color backgroundColor = partsSetInfo.getBackgroundColor();
\r
127 if (backgroundColor != null) {
\r
128 partsSet.setBgColor(backgroundColor);
\r
131 double[] affineTrans = partsSetInfo.getAffineTransformParameter();
\r
132 if (affineTrans != null) {
\r
133 partsSet.setAffineTransformParameter(affineTrans);
\r
136 Map<String, Map<String, List<IndependentPartsColorInfo>>> partsMap = partsSetInfo
\r
138 for (Map.Entry<String, Map<String, List<IndependentPartsColorInfo>>> categoryEntry : partsMap
\r
140 String categoryId = categoryEntry.getKey();
\r
141 Map<String, List<IndependentPartsColorInfo>> categoryPartsMap = categoryEntry
\r
144 PartsCategory partsCategory = characterData
\r
145 .getPartsCategory(categoryId);
\r
146 if (partsCategory == null) {
\r
147 logger.log(Level.WARNING, "undefined category-id: "
\r
152 for (Map.Entry<String, List<IndependentPartsColorInfo>> partsEntry : categoryPartsMap
\r
154 String partsName = partsEntry.getKey();
\r
155 List<IndependentPartsColorInfo> colorInfoList = partsEntry
\r
158 PartsIdentifier partsIdentifier = new PartsIdentifier(
\r
159 partsCategory, partsName, partsName);
\r
161 PartsColorInfo partsColorInfo = IndependentPartsColorInfo
\r
162 .buildPartsColorInfo(characterData, partsCategory,
\r
165 partsSet.appendParts(partsCategory, partsIdentifier,
\r