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 19 public class StructureTypeImplementationGenerator extends BracketGenerator { 20 21 StructureType[] input; 22 23 ModFactLogger logger; 24 25 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 38 public void setLogger(ModFactLogger log) { 39 logger = log; 40 } 41 42 45 public void generate() { 46 int t = 0; 47 DataType type = input[t]; 48 49 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 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 (int i = 0; i<fields.length ; i++) { 74 75 String 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 |