KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > modfact > jmi > impl > StructureTypeImplementationGenerator


1 package org.objectweb.modfact.jmi.impl;
2
3 import javax.jmi.model.DataType;
4 import javax.jmi.model.ModelElement;
5 import javax.jmi.model.StructureField;
6 import javax.jmi.model.StructureType;
7
8 import org.objectweb.modfact.jmi.generator.BracketGenerator;
9 import org.objectweb.modfact.jmi.helper.ImplHelper;
10 import org.objectweb.modfact.jmi.helper.JMIProvider;
11 import org.objectweb.modfact.jmi.helper.MofHelper;
12 import org.objectweb.modfact.jmi.logging.ModFactLogger;
13
14
15 /**
16  * @author Xavier
17  *
18  */

19 public class StructureTypeImplementationGenerator extends BracketGenerator {
20
21     StructureType[] input;
22
23     ModFactLogger logger;
24
25     /**
26      * Set Input
27      */

28     public void setInput(ModelElement[] elt) {
29         input = new StructureType[elt.length];
30         for (int i = 0; i < input.length; i++) {
31             input[i] = (StructureType) elt[i];
32         }
33     }
34
35     /**
36      * Set Trace
37      */

38     public void setLogger(ModFactLogger log) {
39         logger = log;
40     }
41
42     /**
43      * @see org.objectweb.modfact.generation.Generator#generate()
44      */

45     public void generate() {
46         int t = 0;
47         DataType type = input[t];
48
49         // Package _package = MofHelper.outermostPackageOfModelElement(input[t]);
50
// String packagePrefix = MofHelper.jmiPrefixForPackage(_package);
51
// if (packagePrefix.compareTo("") != 0) {
52
// outputln("package " + packagePrefix + ";");
53
// }
54

55
56         outputln("package " +ImplHelper.implPrefix + JMIProvider.shortQualifierOf(type) + ";");
57         outputln("import " + JMIProvider.qualifierOf(type) + ".*;");
58         
59         outputln("import org.objectweb.modfact.jmi.reflect.*;");
60
61         //
62
//<<ANNOTATION TEMPLATE >>
63
outputln(
64             "public class "
65                 + type.getName()
66                 + "Impl extends RefStructImpl"
67                 + " implements "
68                 + JMIProvider.jmiDataTypeQualifiedName(type)
69                 +" {");
70                 
71         StructureField[] fields = MofHelper.structureFieldsOf((StructureType)type);
72         //for each attribute
73
for (int i = 0; i<fields.length ; i++) {
74             
75             String JavaDoc accessorName = JMIProvider.jmiAccessorName(fields[i]);
76             
77             outputln(
78                 "public "
79                     + JMIProvider.typeTemplate(fields[i])
80                     + " "
81                     + accessorName
82                     + "() throws javax.jmi.reflect.JmiException {");
83             outputln("return "
84                 +"("+ JMIProvider.typeTemplate(fields[i]) +")"
85                 + ImplHelper.unwrap(
86                     fields[i]
87                     ,"refGetValue(\"" +fields[i].getName() +"\")"
88                   )
89                 +";"
90             );
91             outputln("}");
92         }
93         
94         
95         outputln("}");
96         flushFile();
97     }
98
99 }
100
Popular Tags