OSDN Git Service

import
[luz/luz.git] / lacoder / jsp / domain / Enums.jsp
1 <!-- $Id: Enums.jsp 466 2011-08-16 13:56:56Z dobashi $ -->\r
2 <!doctype html public "-//w3c//dtd html 4.0 transitional//en"\r
3    "http://www.w3.org/tr/rec-html40/loose.dtd">\r
4 <%@ page contentType="text/html; charset=UTF-8" %>\r
5 <%@ include file="../common/common.jsp" %>\r
6 <%@ page import="java.util.*" %>\r
7 <%@ page import="java.text.*" %>\r
8 <%@ page import="com.lavans.lacoder.model.Package" %>\r
9 <%@ page import="com.lavans.lacoder.model.*" %>\r
10 <%@page import="com.lavans.luz2.commons.StringUtils"%>\r
11 <%!\r
12         /**\r
13          * 基本方針\r
14          * とりあえずプロバイス用に手っ取り早く。\r
15          * 最終的にはjspをやめてファイルに直接書き出す。\r
16          * これをベースクラスとしてインクリメンタルな開発に耐えられるように。\r
17          */\r
18         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");\r
19 %>\r
20 <%\r
21         Package pkg = (Package)request.getAttribute("lacoder.package");\r
22         EnumClass enumClass = (EnumClass)request.getAttribute("lacoder.enum");\r
23         String className = enumClass.getClassName();\r
24         List<String> valueList = enumClass.getValueList();\r
25         List<String> booleanList = enumClass.getBooleanList();%>\r
26 <html lang="ja">\r
27 <head>\r
28 <title>ソース</title>\r
29 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
30 <LINK href="red.css" rel="stylesheet" type="text/css">\r
31 </head>\r
32 <body text="#000000" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10">\r
33 <pre>\r
34 /* $Id: Enums.jsp 466 2011-08-16 13:56:56Z dobashi $\r
35  * 作成日: <%= sdf.format(new Date()) %>\r
36  *\r
37  *\r
38  * This is generated by lacoder.\r
39  * @see http://www.lavans.com/soft/lacoder/\r
40  */\r
41 package <%= pkg.getDomainSubPackagePath() %>;\r
42 \r
43 import java.io.Serializable;\r
44 import java.util.ArrayList;\r
45 import java.util.HashMap;\r
46 import java.util.List;\r
47 import java.util.Map;\r
48 \r
49 import com.lavans.luz2.util.IEnum;\r
50 import com.lavans.luz2.commons.JapaneseTextUtil;\r
51 \r
52 /**\r
53  * <%= enumClass.getTitle() %>クラス。\r
54  * @author dobashi\r
55  */\r
56 public class <%= className %> implements Serializable, IEnum{\r
57         private static final long serialVersionUID = 1L;\r
58         public static final String _ID  = "<%= enumClass.getName() %>";\r
59 <%      if(valueList.size()>0){\r
60 %>      // リスト名定義\r
61 <%      }\r
62         for(int i=0; i<valueList.size(); i++){\r
63                 String listName = (String)enumClass.getValueList().get(i);\r
64 %>      public static final String _LIST_<%= listName.toUpperCase() %> =        "<%= listName %>";\r
65         // Enumメンバー\r
66 <%      }\r
67 //      logger.info("static定義");\r
68         for(int i=0; i<enumClass.size(); i++){\r
69 //logger.info("static"+i);\r
70                 EnumMember member = enumClass.get(i);\r
71 %>      public static final <%= className %> <%= member.getConstName() %>       = new <%= className %>(\r
72                 "<%= member.getName() %>"       // id\r
73                 ,"<%= member.getTitle() %>"     // Title\r
74 <%              // valueList\r
75                 for(int j=0; j<valueList.size(); j++){\r
76                         String listName = (String)valueList.get(j);\r
77                         if(listName.equals("int")){\r
78 %>              ,<%= member.getValue(listName) %>       // <%= listName %>\r
79 <%                      }else if(member.getValue(listName)==null){\r
80 %>              ,null   // <%= listName %>\r
81 <%                      }else{\r
82 %>              ,"<%= member.getValue(listName) %>"     // <%= listName %>\r
83 <%                      }\r
84                 }\r
85                 // booleanList\r
86                 for(int j=0; j<booleanList.size(); j++){\r
87                         String listName = (String)booleanList.get(j);\r
88                         if(member.getBoolean(listName)){\r
89 %>              ,true   // <%= listName %>\r
90 <%                      }else{\r
91 %>              ,false  // <%= listName %>\r
92 <%                      }\r
93                 }\r
94 %>      );\r
95 <%\r
96         }\r
97         // Map\r
98         valueList.add(0,"all");\r
99         for(int i=0; i<valueList.size(); i++){\r
100                 String listName = (String)enumClass.getValueList().get(i);\r
101 %>      /** <%= listName %>格納用 */\r
102 <%              if(listName.equals("int")){\r
103 %>      private static Map&lt;Integer, <%= className %>&gt; <%= listName %>Map = new HashMap&lt;Integer, <%= className %>&gt;(<%= enumClass.size() %>);\r
104 <%              }else{ %>\r
105         private static Map&lt;String, <%= className %>&gt; <%= listName %>Map = new HashMap&lt;String, <%= className %>&gt;(<%= enumClass.size() %>);\r
106 <%              }\r
107 %>      private static List&lt;<%= className %>&gt; <%= listName %>List = new ArrayList&lt;<%= className %>&gt;(<%= enumClass.size() %>);\r
108 <%      }       %>      /**\r
109          * 初期化\r
110          * <%-- 最終的にはタイトルはResourceBundleから取得?\r
111          * 動的に言語を切り替えられるようにするか? --%>\r
112          */\r
113         static{\r
114 <%\r
115         for(int i=0; i<valueList.size(); i++){\r
116                 String listName = (String)enumClass.getValueList().get(i);\r
117                 for(int j=0; j<enumClass.size(); j++){\r
118                         EnumMember member = enumClass.get(j);\r
119                         // 除外登録されていたら次へ\r
120                         if(member.isExclude(listName)){\r
121                                 continue;\r
122                         }\r
123                         String key = "";\r
124                         if(listName.equals("all")){\r
125                                 key = "\""+member.getName()+"\"";\r
126                         }else if(listName.equals("int")){\r
127                                 key = "new Integer("+member.getValue(listName)+")";\r
128                         }else{\r
129                                 key = "\""+member.getValue(listName)+"\"";\r
130                         }\r
131 %>              <%= listName %>Map.put(<%= key %>,<%= member.getConstName() %>);\r
132                 <%= listName %>List.add(<%= member.getConstName() %>);\r
133 <%              }\r
134         }\r
135 %>      }\r
136 \r
137         /**\r
138          * IDからインスタンス取得。\r
139          * @param id\r
140          * @return\r
141          */\r
142         public static <%= className %> getInstance(String id){\r
143                 return (<%= className %>)allMap.get(id);\r
144         }\r
145 \r
146         /**\r
147          * IDから表示名を取得。\r
148          * @param id\r
149          * @return\r
150          */\r
151         public static String getTitle(String id){\r
152                 return getTitle(id, "");\r
153         }\r
154         public static String getTitle(String id, String defaultStr){\r
155                 if(allMap.get(id)!=null){\r
156                         allMap.get(id).getTitle();\r
157                 }\r
158                 return defaultStr;\r
159         }\r
160 \r
161         /**\r
162          * IDから半角かなで表示名を取得。\r
163          * @param id\r
164          * @return\r
165          */\r
166         public static String getTitleHankana(String id){\r
167                 return getTitleHankana(id, "");\r
168         }\r
169         public static String getTitleHankana(String id, String defaultStr){\r
170                 if(allMap.get(id)!=null){\r
171                         allMap.get(id).getTitleHankana();\r
172                 }\r
173                 return defaultStr;\r
174         }\r
175 <%\r
176         for(int i=0; i<valueList.size(); i++){\r
177                 String listName = (String)enumClass.getValueList().get(i);\r
178                 if(listName.equals("int")){\r
179 %>      /**\r
180          * <%= listName %>からインスタンス取得。\r
181          * @param id\r
182          * @return\r
183          */\r
184         public static <%= className %> getInstanceBy<%= StringUtils.capitalize(listName) %>(int id){\r
185                 return (<%= className %>)<%= listName %>Map.get(new Integer(id));\r
186         }\r
187 <%              }else{\r
188 %>\r
189         /**\r
190          * IDからインスタンス取得。\r
191          * @param id\r
192          * @return\r
193          */\r
194         public static <%= className %> getInstanceBy<%= StringUtils.capitalize(listName) %>(String id){\r
195                 return (<%= className %>)<%= listName %>Map.get(id);\r
196         }\r
197 <%\r
198                 }\r
199         }\r
200 %>\r
201         /**\r
202          * デフォルトのインスタンスを返す。\r
203          * @param id\r
204          * @return\r
205          */\r
206         public static <%= className %> getDefault(){\r
207 <%\r
208         if(enumClass.getDefaultMember()!=null){\r
209 %>              return <%= enumClass.getDefaultMember().getConstName() %>;\r
210 <%      }else{\r
211 %>              return null;\r
212 <%      }       %>\r
213         }\r
214 \r
215         /**\r
216          * デフォルトのIDを返す。\r
217          * @param id\r
218          * @return\r
219          */\r
220         public static String getDefaultId(){\r
221 <%\r
222         if(enumClass.getDefaultMember()!=null){\r
223 %>              return <%= enumClass.getDefaultMember().getConstName() %>.getId();\r
224 <%      }else{\r
225 %>              return "";\r
226 <%      }       %>\r
227         }\r
228 \r
229 <%      for(int i=0; i<valueList.size(); i++){\r
230                 String listName = (String)enumClass.getValueList().get(i);\r
231 %>      /**\r
232          * <%= listName %>インスタンス一覧を返す。\r
233          */\r
234         public static List&lt;<%= className %>&gt; get<%= StringUtils.capitalize(listName) %>List(){\r
235                 return <%= listName %>List;\r
236         }\r
237 <%      }       %>\r
238         private String id = null;\r
239         private String title = null;\r
240 <%      // value_list\r
241         valueList.remove("all");\r
242         for(int i=0; i<valueList.size(); i++){\r
243                 String listName = (String)enumClass.getValueList().get(i);\r
244                 if(listName.equals("int")){\r
245 %>      private int intValue = 0;\r
246 <%              }else{\r
247 %>      private String <%= listName %>Value = null;\r
248 <%              }\r
249         }\r
250         // boolean_list\r
251         for(int i=0; i<booleanList.size(); i++){\r
252                 String listName = (String)enumClass.getBooleanList().get(i);\r
253 %>      private boolean is<%= StringUtils.capitalize(listName) %> = false;\r
254 <%      }       %>\r
255         /**\r
256          * コンストラクタ。\r
257          */\r
258         private <%= className %>(\r
259                 String id\r
260                 ,String title\r
261 <%      // value_list\r
262         for(int i=0; i<valueList.size(); i++){\r
263                 String listName = (String)enumClass.getValueList().get(i);\r
264                 if(listName.equals("int")){\r
265 %>              ,int intValue\r
266 <%              }else{\r
267 %>              ,String <%= listName %>Value\r
268 <%              }\r
269         }\r
270         // boolean_list\r
271         for(int i=0; i<booleanList.size(); i++){\r
272                 String listName = (String)enumClass.getBooleanList().get(i);\r
273 %>              ,boolean is<%= StringUtils.capitalize(listName) %>\r
274 <%      }\r
275 %>      ){\r
276                 this.id = id;\r
277                 this.title = title;\r
278 <%      for(int i=0; i<valueList.size(); i++){\r
279                 String listName = (String)enumClass.getValueList().get(i);\r
280 %>              this.<%= listName %>Value = <%= listName %>Value;\r
281 <%      }\r
282         // boolean_list\r
283         for(int i=0; i<booleanList.size(); i++){\r
284                 String listName = (String)enumClass.getBooleanList().get(i);\r
285 %>              this.is<%= StringUtils.capitalize(listName) %> = is<%= StringUtils.capitalize(listName) %>;\r
286 <%      }\r
287 %>      }\r
288         public String getId(){\r
289                 return id;\r
290         }\r
291         public String getTitle(){\r
292                 return title;\r
293         }\r
294         public String getTitleHankana(){\r
295                 return JapaneseTextUtil.toHankana(title);\r
296         }\r
297 <%      for(int i=0; i<valueList.size(); i++){\r
298                 String listName = (String)enumClass.getValueList().get(i);\r
299                 if(listName.equals("int")){\r
300 %>      public int getInt(){\r
301                 return <%= listName %>Value;\r
302         }\r
303 <%              }else{\r
304 %>      public String get<%= StringUtils.capitalize(listName) %>(){\r
305                 return <%= listName %>Value;\r
306         }\r
307 <%              }\r
308         }\r
309 %>\r
310 <%\r
311         // boolean_list\r
312         for(int i=0; i<booleanList.size(); i++){\r
313                 String listName = (String)enumClass.getBooleanList().get(i);\r
314 %>      public boolean is<%= StringUtils.capitalize(listName) %>(){\r
315                 return is<%= StringUtils.capitalize(listName) %>;\r
316         }\r
317 <%      }\r
318 %>\r
319         /**\r
320          * 同じenumかを比較するメソッド。\r
321          * @see java.lang.Object#equals(java.lang.Object)\r
322          */\r
323         public boolean equals(Object obj) {\r
324                 if(this==obj) return true;\r
325                 if(obj instanceof <%= className %>){\r
326                         if(id.equals(((<%= className %>)obj).getId())){\r
327                                 return true;\r
328                         }\r
329                 }\r
330                 return false;\r
331         }\r
332 \r
333         @Override\r
334         public String toString(){\r
335                 return "<%= className %>:"+id;\r
336         }\r
337 }\r
338 </pre>\r
339 <!--\r
340 <%= debugStr %>\r
341 -->\r
342 </body>\r
343 \r
344 <%--    //public static final String <%= member.getConstName() %>       = "<%= member.getName() %>"; --%>