1 //
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 26 Dec 05 Brian Frank Creation
7 // 19 Aug 06 Brian Frank Ported from Java to Fan
8 //
9
10 **
11 ** FField is the read/write fcode representation of sys::Field.
12 **
13 class FField : FSlot, CField
14 {
15
16 //////////////////////////////////////////////////////////////////////////
17 // Constructor
18 //////////////////////////////////////////////////////////////////////////
19
20 new make(FType fparent)
21 : super(fparent)
22 {
23 }
24
25 //////////////////////////////////////////////////////////////////////////
26 // IO
27 //////////////////////////////////////////////////////////////////////////
28
29 Void write(OutStream out)
30 {
31 super.writeCommon(out)
32 out.writeI2(typeRef)
33 super.writeAttrs(out)
34 }
35
36 FField read(InStream in)
37 {
38 super.readCommon(in)
39 typeRef = in.readU2
40 super.readAttrs(in)
41 return this
42 }
43
44 //////////////////////////////////////////////////////////////////////////
45 // CField
46 //////////////////////////////////////////////////////////////////////////
47
48 override Str signature()
49 {
50 return "$fieldType $name"
51 }
52
53 override CType fieldType()
54 {
55 return fparent.fpod.toType(typeRef)
56 }
57
58 override CType inheritedReturnType()
59 {
60 if (!isOverride || getter == null) return fieldType
61 else return getter.inheritedReturnType
62 }
63
64 //////////////////////////////////////////////////////////////////////////
65 // Fields
66 //////////////////////////////////////////////////////////////////////////
67
68 Int typeRef // typeRef index
69 override CMethod getter
70 override CMethod setter
71
72 }
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 26 Dec 05 Brian Frank Creation
7 // 19 Aug 06 Brian Frank Ported from Java to Fan
8 //
9
10 **
11 ** FField is the read/write fcode representation of sys::Field.
12 **
13 class FField : FSlot, CField
14 {
15
16 //////////////////////////////////////////////////////////////////////////
17 // Constructor
18 //////////////////////////////////////////////////////////////////////////
19
20 new make(FType fparent)
21 : super(fparent)
22 {
23 }
24
25 //////////////////////////////////////////////////////////////////////////
26 // IO
27 //////////////////////////////////////////////////////////////////////////
28
29 Void write(OutStream out)
30 {
31 super.writeCommon(out)
32 out.writeI2(typeRef)
33 super.writeAttrs(out)
34 }
35
36 FField read(InStream in)
37 {
38 super.readCommon(in)
39 typeRef = in.readU2
40 super.readAttrs(in)
41 return this
42 }
43
44 //////////////////////////////////////////////////////////////////////////
45 // CField
46 //////////////////////////////////////////////////////////////////////////
47
48 override Str signature()
49 {
50 return "$fieldType $name"
51 }
52
53 override CType fieldType()
54 {
55 return fparent.fpod.toType(typeRef)
56 }
57
58 override CType inheritedReturnType()
59 {
60 if (!isOverride || getter == null) return fieldType
61 else return getter.inheritedReturnType
62 }
63
64 //////////////////////////////////////////////////////////////////////////
65 // Fields
66 //////////////////////////////////////////////////////////////////////////
67
68 Int typeRef // typeRef index
69 override CMethod getter
70 override CMethod setter
71
72 }