C# Class Fan.Sys.ClassType

ClassType models a static type definition for an Obj class: 1) Hollow: in this state we know basic identity of the type, and it's inheritance hierarchy. A type is setup to be hollow during Pod.load(). 2) Reflected: in this state we read all the slot definitions from the fcode to populate the slot tables used to for reflection. At this point clients can discover the signatures of the Type. 3) Emitted: the final state of loading a Type is to emit to a .NET class called "Fan.{pod}.{type}". Once emitted we can instantiate the type or call it's methods. 4) Finished: once we have reflected the slots into memory and emitted the .NET class, the last stage is to bind the all the System.Reflection representations to the Slots for dynamic dispatch. We delay this until needed by Method or Field for a reflection invocation
Inheritance: Type
ファイルを表示 Open project: xored/f4 Class Usage Examples

Public Properties

Property Type Description
m_doc string

Public Methods

Method Description
@base ( ) : Type
@is ( Type type ) : bool
ClassType ( Pod pod, string name, int flags, Facets facets ) : System
doc ( ) : string
dotnetRepr ( ) : bool
facet ( Type t, bool c ) : Facet
facets ( ) : List
fields ( ) : List
inheritance ( ) : List
make ( List args ) : object
methods ( ) : List
mixins ( ) : List
name ( ) : string
pod ( ) : Pod
qname ( ) : string
signature ( ) : string
slot ( string name, bool check ) : Slot
slots ( ) : List
toNullable ( ) : Type
trap ( string name, List args ) : object

Private Methods

Method Description
ClassType ( Pod pod, FType ftype ) : System
addInheritance ( Type t, List acc, Hashtable map ) : void
checkAllFan ( ParameterInfo pars ) : bool
doReflect ( ) : void
emit ( ) : Type
finish ( ) : void
finishField ( FieldInfo f ) : void
finishMethod ( MethodInfo m, bool staticOnly ) : void
finishSlots ( System type, bool staticOnly ) : void

Map the Java members of the specified class to my slots for reflection.

flags ( ) : int
map ( FPod fpod, FField f ) : Field

Map fcode field to a sys::Field.

map ( FPod fpod, FMethod m ) : Method

Map fcode method to a sys::Method.

merge ( Slot slot, List slots, Hashtable nameToSlot, Hashtable nameToIndex ) : void

Merge the inherited slot into my slot maps. Assume this slot trumps any previous definition (because we process inheritance and my slots in the right order) slots: Slot[] by order nameToSlot: String name -> Slot nameToIndex: String name -> Long index of slots

merge ( Type inheritedType, List slots, Hashtable nameToSlot, Hashtable nameToIndex ) : void

Merge the inherit's slots into my slot maps. slots: Slot[] by order nameToSlot: String name -> Slot nameToIndex: String name -> Long index of slots

reflect ( ) : Type

Method Details

@base() public method

public @base ( ) : Type
return Type

@is() public method

public @is ( Type type ) : bool
type Type
return bool

ClassType() public method

public ClassType ( Pod pod, string name, int flags, Facets facets ) : System
pod Pod
name string
flags int
facets Facets
return System

doc() public method

public doc ( ) : string
return string

dotnetRepr() public method

public dotnetRepr ( ) : bool
return bool

facet() public method

public facet ( Type t, bool c ) : Facet
t Type
c bool
return Facet

facets() public method

public facets ( ) : List
return List

fields() public final method

public final fields ( ) : List
return List

inheritance() public method

public inheritance ( ) : List
return List

make() public final method

public final make ( List args ) : object
args List
return object

methods() public final method

public final methods ( ) : List
return List

mixins() public method

public mixins ( ) : List
return List

name() public method

public name ( ) : string
return string

pod() public method

public pod ( ) : Pod
return Pod

qname() public method

public qname ( ) : string
return string

signature() public method

public signature ( ) : string
return string

slot() public final method

public final slot ( string name, bool check ) : Slot
name string
check bool
return Slot

slots() public final method

public final slots ( ) : List
return List

toNullable() public final method

public final toNullable ( ) : Type
return Type

trap() public method

public trap ( string name, List args ) : object
name string
args List
return object

Property Details

m_doc public_oe property

public string m_doc
return string