C# 클래스 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
상속: Type
파일 보기 프로젝트 열기: xored/f4 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
m_doc string

공개 메소드들

메소드 설명
@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

비공개 메소드들

메소드 설명
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

메소드 상세

@base() 공개 메소드

public @base ( ) : Type
리턴 Type

@is() 공개 메소드

public @is ( Type type ) : bool
type Type
리턴 bool

ClassType() 공개 메소드

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

doc() 공개 메소드

public doc ( ) : string
리턴 string

dotnetRepr() 공개 메소드

public dotnetRepr ( ) : bool
리턴 bool

facet() 공개 메소드

public facet ( Type t, bool c ) : Facet
t Type
c bool
리턴 Facet

facets() 공개 메소드

public facets ( ) : List
리턴 List

fields() 공개 최종 메소드

public final fields ( ) : List
리턴 List

inheritance() 공개 메소드

public inheritance ( ) : List
리턴 List

make() 공개 최종 메소드

public final make ( List args ) : object
args List
리턴 object

methods() 공개 최종 메소드

public final methods ( ) : List
리턴 List

mixins() 공개 메소드

public mixins ( ) : List
리턴 List

name() 공개 메소드

public name ( ) : string
리턴 string

pod() 공개 메소드

public pod ( ) : Pod
리턴 Pod

qname() 공개 메소드

public qname ( ) : string
리턴 string

signature() 공개 메소드

public signature ( ) : string
리턴 string

slot() 공개 최종 메소드

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

slots() 공개 최종 메소드

public final slots ( ) : List
리턴 List

toNullable() 공개 최종 메소드

public final toNullable ( ) : Type
리턴 Type

trap() 공개 메소드

public trap ( string name, List args ) : object
name string
args List
리턴 object

프로퍼티 상세

m_doc 공개적으로 프로퍼티

public string m_doc
리턴 string