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