Class Types.JavaMapper

java.lang.Object
eu.bandm.tools.umod.UMod.Visitor
eu.bandm.tools.umod.Types.JavaMapper
Enclosing class:
Types

public static class Types.JavaMapper extends UMod.Visitor
Central class for relating umod type definitions to Java type constructs. "new JavaMapper(..).match(Umod.Type t)" is called from several points in UMod.java.
On success, all type info necessary for compilation is stored destructively into the UMod.Type objects as followed:
    +--------------+
    | Umod.Type    |
    +--------------+
    | javaDecl:MetaClass  for generating all decl.s of java instances of this type.
                          == null only if type resolution FAILED!
    | javaImpl:MetaClass  for calling a constructor for this type.
    +--------------+
 
    +--------------+
    |Umod.TypeBasic|
    +--------------+
    | boxed:MetaClass     if javaDecl=javaImpl=(some prime, scalar class)
                          then this field is !=null and 
    |                        contains the boxed class.
    +--------------+
 
    +--------------+
    | Umod.T_reference
    +--------------+
    | isExternal:boolean   iff the reference is to an ExtDeclaration
    +--------------+