C# Класс Fan.Sys.Type

Type models a static type definition for an Obj class. A Type lifecycle: 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 Java 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 Java class, the last stage is to bind the all the java.lang.reflect representations to the Slots for dynamic dispatch. We delay this until needed by Method or Field for a reflection invocation Type models sys::Type. Implementation classes are: - ClassType - GenericType (ListType, MapType, FuncType) - NullableType
Наследование: FanObj, Literal
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
@base ( ) : Type
@is ( Type type ) : bool
@params ( ) : Map
@typeof ( ) : Type
common ( object objs, int n ) : Type

Given a list of objects, compute the most specific type which they all share,or at worst return sys::Obj. This method does not take into account interfaces, only extends class inheritance.

doc ( ) : string
dotnetRepr ( ) : bool
emptyList ( ) : List
encode ( ObjEncoder @out ) : void
facet ( Type t ) : Facet
facet ( Type t, bool c ) : Facet
facets ( ) : List
field ( string name ) : Field
field ( string name, bool check ) : Field
fields ( ) : List
find ( string sig ) : Type
find ( string sig, bool check ) : Type
finish ( ) : void
fits ( Type type ) : bool
getRawType ( ) : Type

If this type is a generic parameter (V, L, etc), then return the actual type used in the Java method. For example V is Obj, and L is List. This is the type we actually use when constructing a signature for the invoke opcode.

hasFacet ( Type t ) : bool
inheritance ( ) : List
isAbstract ( ) : bool
isClass ( ) : bool
isConst ( ) : bool
isEnum ( ) : bool
isFacet ( ) : bool
isFinal ( ) : bool
isGeneric ( ) : bool
isGenericInstance ( ) : bool

A generic instance is a type which has "instantiated" a generic type and replaced all the generic parameter types with generic argument types. The type string[] is a generic instance of the generic type List (V is replaced with string). A generic instance always has a signature which different from the qname.

isGenericParameter ( ) : bool

Return if this type is a generic parameter (such as V or K) in a generic type (List, Map, or Method). Generic parameters serve as place holders for the parameterization of the generic type. Fantom has a predefined set of generic parameters which are always defined in the sys pod with a one character name.

isGenericType ( ) : bool

A generic type means that one or more of my slots contain signatures using a generic parameter (such as V or K). Fantom supports three built-in generic types: List, Map, and Method. A generic instance (such as string[]) is NOT a generic type (all of its generic parameters have been filled in). User defined generic types are not supported in Fan.

isInternal ( ) : bool
isMixin ( ) : bool
isNullable ( ) : bool
isPublic ( ) : bool
isSynthetic ( ) : bool
isVal ( ) : bool
make ( ) : object
make ( List args ) : object
method ( string name ) : Method
method ( string name, bool check ) : Method
methods ( ) : List
mixins ( ) : List
name ( ) : string
of ( object obj ) : Type
parameterize ( Map pars ) : Type
pod ( ) : Pod
qname ( ) : string
reflect ( ) : Type
signature ( ) : string
slot ( string name ) : Slot
slot ( string name, bool check ) : Slot
slots ( ) : List
toLocale ( ) : string
toNonNullable ( ) : Type
toNullable ( ) : Type
toStr ( ) : string
trap ( string name, List args ) : object

Приватные методы

Метод Описание
flags ( ) : int
toListOf ( ) : Type

Описание методов

@base() публичный абстрактный Метод

public abstract @base ( ) : Type
Результат Type

@is() публичный абстрактный Метод

public abstract @is ( Type type ) : bool
type Type
Результат bool

@params() публичный Метод

public @params ( ) : Map
Результат Map

@typeof() публичный Метод

public @typeof ( ) : Type
Результат Type

common() публичный статический Метод

Given a list of objects, compute the most specific type which they all share,or at worst return sys::Obj. This method does not take into account interfaces, only extends class inheritance.
public static common ( object objs, int n ) : Type
objs object
n int
Результат Type

doc() публичный абстрактный Метод

public abstract doc ( ) : string
Результат string

dotnetRepr() публичный абстрактный Метод

public abstract dotnetRepr ( ) : bool
Результат bool

emptyList() публичный Метод

public emptyList ( ) : List
Результат List

encode() публичный Метод

public encode ( ObjEncoder @out ) : void
@out Fanx.Serial.ObjEncoder
Результат void

facet() публичный Метод

public facet ( Type t ) : Facet
t Type
Результат Facet

facet() публичный абстрактный Метод

public abstract facet ( Type t, bool c ) : Facet
t Type
c bool
Результат Facet

facets() публичный абстрактный Метод

public abstract facets ( ) : List
Результат List

field() публичный Метод

public field ( string name ) : Field
name string
Результат Field

field() публичный Метод

public field ( string name, bool check ) : Field
name string
check bool
Результат Field

fields() публичный абстрактный Метод

public abstract fields ( ) : List
Результат List

find() публичный статический Метод

public static find ( string sig ) : Type
sig string
Результат Type

find() публичный статический Метод

public static find ( string sig, bool check ) : Type
sig string
check bool
Результат Type

finish() публичный Метод

public finish ( ) : void
Результат void

fits() публичный Метод

public fits ( Type type ) : bool
type Type
Результат bool

getRawType() публичный Метод

If this type is a generic parameter (V, L, etc), then return the actual type used in the Java method. For example V is Obj, and L is List. This is the type we actually use when constructing a signature for the invoke opcode.
public getRawType ( ) : Type
Результат Type

hasFacet() публичный Метод

public hasFacet ( Type t ) : bool
t Type
Результат bool

inheritance() публичный абстрактный Метод

public abstract inheritance ( ) : List
Результат List

isAbstract() публичный Метод

public isAbstract ( ) : bool
Результат bool

isClass() публичный Метод

public isClass ( ) : bool
Результат bool

isConst() публичный Метод

public isConst ( ) : bool
Результат bool

isEnum() публичный Метод

public isEnum ( ) : bool
Результат bool

isFacet() публичный Метод

public isFacet ( ) : bool
Результат bool

isFinal() публичный Метод

public isFinal ( ) : bool
Результат bool

isGeneric() публичный Метод

public isGeneric ( ) : bool
Результат bool

isGenericInstance() публичный Метод

A generic instance is a type which has "instantiated" a generic type and replaced all the generic parameter types with generic argument types. The type string[] is a generic instance of the generic type List (V is replaced with string). A generic instance always has a signature which different from the qname.
public isGenericInstance ( ) : bool
Результат bool

isGenericParameter() публичный Метод

Return if this type is a generic parameter (such as V or K) in a generic type (List, Map, or Method). Generic parameters serve as place holders for the parameterization of the generic type. Fantom has a predefined set of generic parameters which are always defined in the sys pod with a one character name.
public isGenericParameter ( ) : bool
Результат bool

isGenericType() публичный Метод

A generic type means that one or more of my slots contain signatures using a generic parameter (such as V or K). Fantom supports three built-in generic types: List, Map, and Method. A generic instance (such as string[]) is NOT a generic type (all of its generic parameters have been filled in). User defined generic types are not supported in Fan.
public isGenericType ( ) : bool
Результат bool

isInternal() публичный Метод

public isInternal ( ) : bool
Результат bool

isMixin() публичный Метод

public isMixin ( ) : bool
Результат bool

isNullable() публичный Метод

public isNullable ( ) : bool
Результат bool

isPublic() публичный Метод

public isPublic ( ) : bool
Результат bool

isSynthetic() публичный Метод

public isSynthetic ( ) : bool
Результат bool

isVal() публичный Метод

public isVal ( ) : bool
Результат bool

make() публичный Метод

public make ( ) : object
Результат object

make() публичный Метод

public make ( List args ) : object
args List
Результат object

method() публичный Метод

public method ( string name ) : Method
name string
Результат Method

method() публичный Метод

public method ( string name, bool check ) : Method
name string
check bool
Результат Method

methods() публичный абстрактный Метод

public abstract methods ( ) : List
Результат List

mixins() публичный абстрактный Метод

public abstract mixins ( ) : List
Результат List

name() публичный абстрактный Метод

public abstract name ( ) : string
Результат string

of() публичный статический Метод

public static of ( object obj ) : Type
obj object
Результат Type

parameterize() публичный Метод

public parameterize ( Map pars ) : Type
pars Map
Результат Type

pod() публичный абстрактный Метод

public abstract pod ( ) : Pod
Результат Pod

qname() публичный абстрактный Метод

public abstract qname ( ) : string
Результат string

reflect() публичный Метод

public reflect ( ) : Type
Результат Type

signature() публичный абстрактный Метод

public abstract signature ( ) : string
Результат string

slot() публичный Метод

public slot ( string name ) : Slot
name string
Результат Slot

slot() публичный абстрактный Метод

public abstract slot ( string name, bool check ) : Slot
name string
check bool
Результат Slot

slots() публичный абстрактный Метод

public abstract slots ( ) : List
Результат List

toLocale() публичный Метод

public toLocale ( ) : string
Результат string

toNonNullable() публичный Метод

public toNonNullable ( ) : Type
Результат Type

toNullable() публичный абстрактный Метод

public abstract toNullable ( ) : Type
Результат Type

toStr() публичный Метод

public toStr ( ) : string
Результат string

trap() публичный Метод

public trap ( string name, List args ) : object
name string
args List
Результат object