--- /dev/null
+/* $Id: Package.java 421 2011-07-29 09:55:09Z dobashi $\r
+ * create: 2004/12/28\r
+ * (c)2004 Lavans Networks Inc. All Rights Reserved.\r
+ */\r
+package com.lavans.lacoder.model;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+/**\r
+ * @author dobashi\r
+ * @version 1.00\r
+ */\r
+public class Package {\r
+ private static final String PRESENTATION = "presentation";\r
+ private static final String DOMAIN = "domain";\r
+ private static final String SERVICE = "service";\r
+ private static List<Package> allList = new ArrayList<Package>();\r
+ public static boolean addPackage(Package p) {\r
+ return allList.add(p);\r
+ }\r
+ public static List<Package> getAllList(){\r
+ return allList;\r
+ }\r
+ public static Package getPackage(String name){\r
+ Package result = null;\r
+ for(int i=0; i<allList.size(); i++){\r
+ Package pkg = allList.get(i);\r
+ if(pkg.getName().equals(name)){\r
+ result=pkg;\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ private String fqdn = null;\r
+ private String project = null;\r
+ private String subname=null;\r
+\r
+ private List<Entity> entityList = new ArrayList<Entity>();\r
+ private List<EnumClass> enumList= new ArrayList<EnumClass>();\r
+ private List<Service> serviceList= new ArrayList<Service>();\r
+\r
+ public Entity getEntity(String name){\r
+ Entity result = null;\r
+ for(int i=0; i<entityList.size(); i++){\r
+ Entity table = entityList.get(i);\r
+ if(table.getName().equals(name)){\r
+ result=table;\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+ public EnumClass getEnum(String name){\r
+ EnumClass result = null;\r
+ for(int i=0; i<enumList.size(); i++){\r
+ EnumClass enums = enumList.get(i);\r
+ if(enums.getName().equals(name)){\r
+ result=enums;\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+ public Service getService(String name){\r
+ Service result = null;\r
+ for(int i=0; i<serviceList.size(); i++){\r
+ Service service = serviceList.get(i);\r
+ if(service.getName().equals(name)){\r
+ result=service;\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ *\r
+ * @return fullname(domain.project.package) を戻します。\r
+ * パッケージを特定するためのキーとしてのみ利用します。\r
+ * lacoderが生成するクラスではこの組み合わせ(projectの次にsubname)のjavaパッケージは存在しません。\r
+ *\r
+ */\r
+ public String getName() {\r
+ return fqdn+"."+project+"."+subname;\r
+ }\r
+ /**\r
+ * @return fullname(domain.project.package) を戻します。\r
+ */\r
+ public String getDomainPath() {\r
+ return fqdn+"."+project+"."+DOMAIN ;\r
+ }\r
+\r
+ public String getDomainSubPackagePath() {\r
+ return fqdn+"."+project+"."+DOMAIN +"."+ subname;\r
+ }\r
+ public String getServiceSubPackagePath() {\r
+ return fqdn+"."+project+"."+SERVICE +"."+ subname;\r
+ }\r
+ public String getPresentationPath() {\r
+ return fqdn+"."+project+"."+PRESENTATION;\r
+ }\r
+ /**\r
+ * Actionのpathを取得します。Actionはroleの下にあるので引数でroleをとります。\r
+ * @return\r
+ */\r
+ public String getActionPath(String role) {\r
+ return getPresentationPath()+"."+ role +"."+ subname +".action";\r
+ }\r
+ /**\r
+ * jspのpathを取得します。Actionはroleの下にあるので引数でroleをとります。\r
+ * @return\r
+ */\r
+ public String getJspPath(String role) {\r
+ return getPresentationPath()+"."+ role +"."+ subname +".jsp";\r
+ }\r
+\r
+ /**\r
+ * @return package名のみを戻します。\r
+ */\r
+ public String getSubPackageName() {\r
+ return subname;\r
+ }\r
+\r
+ /**\r
+ * @param name name を設定。\r
+ */\r
+ public void setName(String fqdn, String project, String name) {\r
+ this.subname = name;\r
+ this.fqdn = fqdn;\r
+ this.project = project;\r
+ }\r
+ /**\r
+ * @param arg0\r
+ * @return\r
+ */\r
+ public boolean addEntity(Entity entity) {\r
+ entity.setParentPackage(this);\r
+ return entityList.add(entity);\r
+ }\r
+ /**\r
+ * @param arg0\r
+ * @return\r
+ */\r
+ public Entity getEntity(int arg0) {\r
+ return entityList.get(arg0);\r
+ }\r
+ /**\r
+ * @param arg0\r
+ * @return\r
+ */\r
+ public boolean removeEntity(Object arg0) {\r
+ return entityList.remove(arg0);\r
+ }\r
+ /**\r
+ * @return\r
+ */\r
+ public int entitySize() {\r
+ return entityList.size();\r
+ }\r
+\r
+ /**\r
+ * @param arg0\r
+ * @return\r
+ */\r
+ public boolean addEnum(EnumClass arg0) {\r
+ return enumList.add(arg0);\r
+ }\r
+ /**\r
+ * @param arg0\r
+ * @return\r
+ */\r
+ public EnumClass getEnum(int arg0) {\r
+ return enumList.get(arg0);\r
+ }\r
+ /**\r
+ * @param arg0\r
+ * @return\r
+ */\r
+ public boolean removeEnum(Object arg0) {\r
+ return enumList.remove(arg0);\r
+ }\r
+ /**\r
+ * @return\r
+ */\r
+ public int enumSize() {\r
+ return enumList.size();\r
+ }\r
+\r
+ public boolean addService(Service arg0) {\r
+ return serviceList.add(arg0);\r
+ }\r
+ public Service getService(int arg0) {\r
+ return serviceList.get(arg0);\r
+ }\r
+ public Service removeService(int arg0) {\r
+ return serviceList.remove(arg0);\r
+ }\r
+ /**\r
+ * @return\r
+ */\r
+ public int serviceSize() {\r
+ return serviceList.size();\r
+ }\r
+\r
+ /**\r
+ * @return domain を戻します。\r
+ */\r
+ public String getFqdn() {\r
+ return fqdn;\r
+ }\r
+ /**\r
+ * @param domain domain を設定。\r
+ */\r
+ public void setFqdn(String domain) {\r
+ this.fqdn = domain;\r
+ }\r
+ /**\r
+ * @return project を戻します。\r
+ */\r
+ public String getProject() {\r
+ return project;\r
+ }\r
+ /**\r
+ * @param project project を設定。\r
+ */\r
+ public void setProject(String project) {\r
+ this.project = project;\r
+ }\r
+}\r