OSDN Git Service

RCS風キーワード展開の抑止。
[jindolf/JinArchiver.git] / src / main / java / jp / sourceforge / jindolf / archiver / AvatarData.java
1 /*\r
2  * avatar model\r
3  *\r
4  * Copyright(c) 2008 olyutorskii\r
5  */\r
6 \r
7 package jp.sourceforge.jindolf.archiver;\r
8 \r
9 import java.io.IOException;\r
10 import java.io.Writer;\r
11 import java.util.List;\r
12 import javax.xml.parsers.DocumentBuilder;\r
13 import javax.xml.parsers.DocumentBuilderFactory;\r
14 import jp.sourceforge.jindolf.corelib.PreDefAvatar;\r
15 \r
16 /**\r
17  * Avatarモデル。\r
18  */\r
19 public class AvatarData{\r
20 \r
21     private static final List<PreDefAvatar> PREDEF_AVATAR_LIST;\r
22 \r
23     static{\r
24         DocumentBuilderFactory factory =\r
25                 DocumentBuilderFactory.newInstance();\r
26         try{\r
27             DocumentBuilder builder = factory.newDocumentBuilder();\r
28             PREDEF_AVATAR_LIST = PreDefAvatar.buildPreDefAvatarList(builder);\r
29         }catch(RuntimeException e){\r
30             throw e;\r
31         }catch(Exception e){\r
32             throw new ExceptionInInitializerError(e);\r
33         }\r
34     }\r
35 \r
36     /**\r
37      * プリセット済みAvatarをフルネームを用いて取得する。\r
38      * @param seq フルネーム\r
39      * @return 見つかったプリセット済みAvatar。見つからなければnull。\r
40      */\r
41     public static PreDefAvatar getPreDefAvatar(CharSequence seq){\r
42         for(PreDefAvatar avatar : PREDEF_AVATAR_LIST){\r
43             String fullName = avatar.getFullName();\r
44             if(fullName.contentEquals(seq)){\r
45                 return avatar;\r
46             }\r
47         }\r
48         return null;\r
49     }\r
50 \r
51     private String fullName;\r
52     private String shortName;\r
53     private String avatarId;\r
54     private String faceIconUri;\r
55 \r
56     /**\r
57      * コンストラクタ。\r
58      */\r
59     public AvatarData(){\r
60         super();\r
61         return;\r
62     }\r
63 \r
64     /**\r
65      * コンストラクタ。\r
66      * @param predefAvatar プリセット済みAvatar\r
67      */\r
68     public AvatarData(PreDefAvatar predefAvatar){\r
69         this();\r
70 \r
71         this.fullName = predefAvatar.getFullName();\r
72         this.shortName = predefAvatar.getShortName();\r
73         this.avatarId = predefAvatar.getAvatarId();\r
74         this.faceIconUri = null;\r
75 \r
76         return;\r
77     }\r
78 \r
79     /**\r
80      * フルネームを取得する。\r
81      * @return フルネーム\r
82      */\r
83     public String getFullName(){\r
84         return this.fullName;\r
85     }\r
86 \r
87     /**\r
88      * フルネームを設定する。\r
89      * @param fullName フルネーム\r
90      */\r
91     public void setFullName(String fullName){\r
92         this.fullName = fullName;\r
93         return;\r
94     }\r
95 \r
96     /**\r
97      * 短縮名を取得する。\r
98      * @return 短縮名\r
99      */\r
100     public String getShortName(){\r
101         return this.shortName;\r
102     }\r
103 \r
104     /**\r
105      * 短縮名を設定する。\r
106      * @param shortName 短縮名\r
107      */\r
108     public void setShortName(String shortName){\r
109         this.shortName = shortName;\r
110         return;\r
111     }\r
112 \r
113     /**\r
114      * Avatar識別子を取得する。\r
115      * @return Avatar識別子\r
116      */\r
117     public String getAvatarId(){\r
118         return this.avatarId;\r
119     }\r
120 \r
121     /**\r
122      * Avatar識別子を設定する。\r
123      * @param avatarId Avatar識別子\r
124      */\r
125     public void setAvatarId(String avatarId){\r
126         this.avatarId = avatarId;\r
127         return;\r
128     }\r
129 \r
130     /**\r
131      * 顔アイコンURI文字列を取得する。\r
132      * @return 顔アイコンURI文字列\r
133      */\r
134     public String getFaceIconUri(){\r
135         return this.faceIconUri;\r
136     }\r
137 \r
138     /**\r
139      * 顔アイコンURI文字列を設定する。\r
140      * @param faceIconUri 顔アイコンURI文字列\r
141      */\r
142     public void setFaceIconUri(String faceIconUri){\r
143         this.faceIconUri = faceIconUri;\r
144         return;\r
145     }\r
146 \r
147     /**\r
148      * avatar要素をXML出力する。\r
149      * @param writer 出力先\r
150      * @throws IOException 出力エラー\r
151      */\r
152     public void dumpXml(Writer writer) throws IOException{\r
153         writer.append("<avatar\n");\r
154 \r
155         XmlUtils.indent(writer, 1);\r
156         XmlUtils.attrOut(writer, "avatarId", this.avatarId);\r
157         writer.append('\n');\r
158 \r
159         XmlUtils.indent(writer, 1);\r
160         XmlUtils.attrOut(writer, "fullName", this.fullName);\r
161 \r
162         writer.append(' ');\r
163         XmlUtils.attrOut(writer, "shortName", this.shortName);\r
164         writer.append('\n');\r
165 \r
166         if(this.faceIconUri != null){\r
167             XmlUtils.indent(writer, 1);\r
168             XmlUtils.attrOut(writer, "faceIconURI", this.faceIconUri);\r
169             writer.append('\n');\r
170             // F1014対策\r
171         }\r
172 \r
173         writer.append("/>\n");\r
174         writer.flush();\r
175 \r
176         return;\r
177     }\r
178 \r
179 }\r