1 20 package org.objectweb.modfact.jmi.impl.tayloredBased; 21 22 import org.objectweb.modfact.jmi.helper.*; 23 import org.objectweb.modfact.jmi.logging.ModFactLogger; 24 25 import javax.jmi.model.*; 26 27 import org.objectweb.modfact.jmi.generator.PrintGenerator; 28 29 30 34 public class StructureTypeImplementationGenerator extends PrintGenerator { 35 36 StructureType[] input; 37 38 39 ModFactLogger logger; 40 41 44 public void setInput(ModelElement[] elt) { 45 input = new StructureType[elt.length]; 46 for (int i = 0; i < input.length; i++) { 47 input[i] = (StructureType) elt[i]; 48 } 49 } 50 51 54 public void setLogger(ModFactLogger log) { 55 logger = log; 56 } 57 58 61 public void generate() { 62 int t = 0; 63 DataType type = input[t]; 64 65 71 72 out.println("package " +ImplHelper.implPrefix + JMIProvider.shortQualifierOf(type) + ";"); 73 out.println("import " + JMIProvider.qualifierOf(type) + ".*;"); 74 75 out.println("import org.objectweb.modfact.jmi.reflect.*;"); 76 77 out.println( 80 "public class " 81 + type.getName() 82 + "Impl extends RefStructImpl" 83 + " implements " 84 + JMIProvider.jmiDataTypeQualifiedName(type) 85 +" {"); 86 87 StructureField[] fields = MofHelper.structureFieldsOf((StructureType)type); 88 for (int i = 0; i<fields.length ; i++) { 90 91 String accessorName = JMIProvider.jmiAccessorName(fields[i]); 92 93 out.println( 94 "\tpublic " 95 + JMIProvider.typeTemplate(fields[i]) 96 + " " 97 + accessorName 98 + "() throws javax.jmi.reflect.JmiException {"); 99 out.println("\t\treturn " 100 +"("+ JMIProvider.typeTemplate(fields[i]) +")" 101 + ImplHelper.unwrap( 102 fields[i] 103 ,"refGetValue(\"" +fields[i].getName() +"\")" 104 ) 105 +";" 106 ); 107 out.println("\t}"); 108 } 109 110 111 out.println("}"); 112 out.flush(); 113 } 114 115 } 116 | Popular Tags |