View Javadoc

1   /*
2    * joey-gen and its relative products are published under the terms
3    * of the Apache Software License.
4    * 
5    * Created on 2004/10/27 2:38:38
6    */
7   package org.asyrinx.joey.gen.command.rdb2java.standard;
8   
9   import java.util.Iterator;
10  
11  import org.apache.commons.lang.StringUtils;
12  import org.asyrinx.joey.gen.command.rdb.CopyPackageNames;
13  import org.asyrinx.joey.gen.model.Element;
14  import org.asyrinx.joey.gen.model.java.Entity;
15  import org.asyrinx.joey.gen.model.java.JavaEnumeration;
16  import org.asyrinx.joey.gen.model.java.PackageType;
17  import org.asyrinx.joey.gen.model.rdb.RdbEnumeration;
18  import org.asyrinx.joey.gen.model.rdb.Table;
19  
20  /***
21   * @author takeshi
22   */
23  public class BasicPackaging implements PackagingStrategy {
24  
25      /***
26       *  
27       */
28      public BasicPackaging() {
29          super();
30      }
31  
32      private CopyPackageNames copyPackageNames = new CopyPackageNames();
33  
34      /*
35       * (non-Javadoc)
36       * 
37       * @see org.asyrinx.joey.gen.command.rdb2java.standard.PackagingStrategy#toPackageName(org.apache.commons.lang.enum.Enum)
38       */
39      public String toPackageName(RdbEnumeration enum) {
40          return copyPackageNames.toPackageName(enum);
41      }
42  
43      /*
44       * (non-Javadoc)
45       * 
46       * @see org.asyrinx.joey.gen.command.rdb2java.standard.PackagingStrategy#getPackageName(org.asyrinx.joey.gen.model.Element)
47       */
48      public String getPackageName(Element element) {
49          return copyPackageNames.getPackage(element.getOptions());
50      }
51  
52      /*
53       * (non-Javadoc)
54       * 
55       * @see org.asyrinx.joey.gen.command.rdb2java.standard.PackagingStrategy#toPackageName(org.asyrinx.joey.gen.model.rdb.Table)
56       */
57      public String toPackageName(Table table) {
58          return copyPackageNames.toPackageName(table);
59      }
60  
61      public static final String PACKAGE_TEMPLATE_SYMBOL = "${packageType}";
62  
63      /*
64       * (non-Javadoc)
65       * 
66       * @see org.asyrinx.joey.gen.command.rdb2java.standard.PackagingStrategy#preparePackageNames(org.asyrinx.joey.gen.model.java.Entity)
67       */
68      public void preparePackageNames(Entity entity) {
69          final String template = entity.getPackageTemplate();
70          for (Iterator i = PackageType.getElements().iterator(); i.hasNext();) {
71              fiPackageType packageType = (PackageType) i/next()/package-summary.html">nal PackageType packageType = (PackageType) i.next();
72              entity.setPackage(packageType.getName(), genPackageName(template, packageType));
73          }
74      }
75  
76      /***
77       * @param template
78       * @param packageType
79       * @return
80       */
81      privatePackageType packageType) {/package-summary.html">ong> String genPackageName(final String template, final PackageType packageType) {
82          final</strong> String packageName = StringUtils.replace(template, PACKAGE_TEMPLATE_SYMBOL, packageType.getName());
83          return</strong> packageName;
84      }
85  
86      /*
87       * (non-Javadoc)
88       * 
89       * @see org.asyrinx.joey.gen.command.rdb2java.standard.PackagingStrategy#preparePackageName(org.asyrinx.joey.gen.model.java.JavaEnumeration)
90       */
91      public void preparePackageName(JavaEnumeration enum) {
92          enum.setPackageName(genPackageName(enum.getPackageName(), PackageType.ENTITY));
93      }
94  
95  }