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
14 * とりあえずプロバイス用に手っ取り早く。
\r
15 * 最終的にはjspをやめてファイルに直接書き出す。
\r
16 * これをベースクラスとしてインクリメンタルな開発に耐えられるように。
\r
18 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
\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
29 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
\r
30 <LINK href="red.css" rel="stylesheet" type="text/css">
\r
32 <body text="#000000" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10">
\r
34 /* $Id: Enums.jsp 466 2011-08-16 13:56:56Z dobashi $
\r
35 * 作成日: <%= sdf.format(new Date()) %>
\r
38 * This is generated by lacoder.
\r
39 * @see http://www.lavans.com/soft/lacoder/
\r
41 package <%= pkg.getDomainSubPackagePath() %>;
\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
49 import com.lavans.luz2.util.IEnum;
\r
50 import com.lavans.luz2.commons.JapaneseTextUtil;
\r
53 * <%= enumClass.getTitle() %>クラス。
\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
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
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
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
82 %> ,"<%= member.getValue(listName) %>" // <%= listName %>
\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
91 %> ,false // <%= listName %>
\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<Integer, <%= className %>> <%= listName %>Map = new HashMap<Integer, <%= className %>>(<%= enumClass.size() %>);
\r
105 private static Map<String, <%= className %>> <%= listName %>Map = new HashMap<String, <%= className %>>(<%= enumClass.size() %>);
\r
107 %> private static List<<%= className %>> <%= listName %>List = new ArrayList<<%= className %>>(<%= enumClass.size() %>);
\r
110 * <%-- 最終的にはタイトルはResourceBundleから取得?
\r
111 * 動的に言語を切り替えられるようにするか? --%>
\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
120 if(member.isExclude(listName)){
\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
129 key = "\""+member.getValue(listName)+"\"";
\r
131 %> <%= listName %>Map.put(<%= key %>,<%= member.getConstName() %>);
\r
132 <%= listName %>List.add(<%= member.getConstName() %>);
\r
142 public static <%= className %> getInstance(String id){
\r
143 return (<%= className %>)allMap.get(id);
\r
151 public static String getTitle(String id){
\r
152 return getTitle(id, "");
\r
154 public static String getTitle(String id, String defaultStr){
\r
155 if(allMap.get(id)!=null){
\r
156 allMap.get(id).getTitle();
\r
166 public static String getTitleHankana(String id){
\r
167 return getTitleHankana(id, "");
\r
169 public static String getTitleHankana(String id, String defaultStr){
\r
170 if(allMap.get(id)!=null){
\r
171 allMap.get(id).getTitleHankana();
\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
180 * <%= listName %>からインスタンス取得。
\r
184 public static <%= className %> getInstanceBy<%= StringUtils.capitalize(listName) %>(int id){
\r
185 return (<%= className %>)<%= listName %>Map.get(new Integer(id));
\r
194 public static <%= className %> getInstanceBy<%= StringUtils.capitalize(listName) %>(String id){
\r
195 return (<%= className %>)<%= listName %>Map.get(id);
\r
206 public static <%= className %> getDefault(){
\r
208 if(enumClass.getDefaultMember()!=null){
\r
209 %> return <%= enumClass.getDefaultMember().getConstName() %>;
\r
220 public static String getDefaultId(){
\r
222 if(enumClass.getDefaultMember()!=null){
\r
223 %> return <%= enumClass.getDefaultMember().getConstName() %>.getId();
\r
229 <% for(int i=0; i<valueList.size(); i++){
\r
230 String listName = (String)enumClass.getValueList().get(i);
\r
232 * <%= listName %>インスタンス一覧を返す。
\r
234 public static List<<%= className %>> get<%= StringUtils.capitalize(listName) %>List(){
\r
235 return <%= listName %>List;
\r
238 private String id = null;
\r
239 private String title = null;
\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
247 %> private String <%= listName %>Value = null;
\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
258 private <%= className %>(
\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
267 %> ,String <%= listName %>Value
\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
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
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
288 public String getId(){
\r
291 public String getTitle(){
\r
294 public String getTitleHankana(){
\r
295 return JapaneseTextUtil.toHankana(title);
\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
304 %> public String get<%= StringUtils.capitalize(listName) %>(){
\r
305 return <%= listName %>Value;
\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
320 * 同じenumかを比較するメソッド。
\r
321 * @see java.lang.Object#equals(java.lang.Object)
\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
334 public String toString(){
\r
335 return "<%= className %>:"+id;
\r
344 <%-- //public static final String <%= member.getConstName() %> = "<%= member.getName() %>"; --%>