1 18 package org.apache.geronimo.interop.rmi.iiop.compiler; 19 20 import java.lang.reflect.Modifier ; 21 import java.util.HashMap ; 22 23 import org.apache.geronimo.interop.generator.JClass; 24 import org.apache.geronimo.interop.generator.JCodeStatement; 25 import org.apache.geronimo.interop.generator.JExpression; 26 import org.apache.geronimo.interop.generator.JField; 27 import org.apache.geronimo.interop.generator.JVariable; 28 29 30 public class ValueTypeContext { 31 protected int _vTypeId = 0; 32 protected HashMap _vTypeMap = new HashMap (20); 33 34 public ValueTypeContext() { 35 clear(); 36 } 37 38 public void clear() { 39 _vTypeId = 0; 40 _vTypeMap.clear(); 41 } 42 43 protected String getValueTypeVarName(JClass jc, JVariable jv) { 44 String rc = null; 45 46 rc = (String ) _vTypeMap.get(jv.getTypeDecl()); 47 48 if (rc == null) { 49 rc = "vt$" + _vTypeId++; 50 _vTypeMap.put(jv.getTypeDecl(), rc); 51 52 JField vtField = jc.newField(org.apache.geronimo.interop.rmi.iiop.ValueType.class, rc, new JExpression(new JCodeStatement("org.apache.geronimo.interop.rmi.iiop.ValueType.getInstance( " + jv.getTypeDecl() + ".class )"))); 53 vtField.setModifiers(Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL); 54 } 55 56 return rc; 57 } 58 } 59 | Popular Tags |