OSDN Git Service

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