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. Only after a successful run, all fields of the »Type« elements in a umod meta-model are valid. The applications are idempotent.

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 declarations 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
    +--------------+