@@ -2,14 +2,15 @@ package model
2
2
3
3
import (
4
4
"github.com/ahmetb/go-linq"
5
+ "github.com/davyxu/tabtoy/v3/table"
5
6
"strconv"
6
7
)
7
8
8
9
type SymbolTable struct {
9
- typeFields []* TypeField // 不是具体的类型
10
+ typeFields []* table. TypeField // 不是具体的类型
10
11
}
11
12
12
- func (self * SymbolTable ) AddField (tf * TypeField ) {
13
+ func (self * SymbolTable ) AddField (tf * table. TypeField ) {
13
14
self .typeFields = append (self .typeFields , tf )
14
15
}
15
16
@@ -24,12 +25,12 @@ func (self *SymbolTable) IsEnumKind(tableName, objectType string) bool {
24
25
// 匹配枚举值
25
26
func (self * SymbolTable ) ResolveEnumValue (tableName , objectType , value string ) (ret string ) {
26
27
27
- linq .From (self .typeFields ).WhereT (func (tf * TypeField ) bool {
28
+ linq .From (self .typeFields ).WhereT (func (tf * table. TypeField ) bool {
28
29
29
30
return tf .Table == tableName &&
30
31
tf .ObjectType == objectType &&
31
32
(tf .Name == value || tf .FieldName == value )
32
- }).ForEachT (func (types * TypeField ) {
33
+ }).ForEachT (func (types * table. TypeField ) {
33
34
34
35
ret = types .DefaultValue
35
36
@@ -41,10 +42,10 @@ func (self *SymbolTable) ResolveEnumValue(tableName, objectType, value string) (
41
42
// 获取所有的结构体名
42
43
func (self * SymbolTable ) StructNames () (ret []string ) {
43
44
44
- linq .From (self .typeFields ).WhereT (func (tf * TypeField ) bool {
45
+ linq .From (self .typeFields ).WhereT (func (tf * table. TypeField ) bool {
45
46
46
47
return tf .DefaultValue == ""
47
- }).SelectT (func (tf * TypeField ) string {
48
+ }).SelectT (func (tf * table. TypeField ) string {
48
49
49
50
return tf .ObjectType
50
51
}).Distinct ().ToSlice (& ret )
@@ -55,10 +56,10 @@ func (self *SymbolTable) StructNames() (ret []string) {
55
56
// 获取所有的枚举名
56
57
func (self * SymbolTable ) EnumNames () (ret []string ) {
57
58
58
- linq .From (self .typeFields ).WhereT (func (tf * TypeField ) bool {
59
+ linq .From (self .typeFields ).WhereT (func (tf * table. TypeField ) bool {
59
60
60
61
return tf .FieldType == "int32" && isNumber (tf .DefaultValue )
61
- }).SelectT (func (tf * TypeField ) string {
62
+ }).SelectT (func (tf * table. TypeField ) string {
62
63
63
64
return tf .ObjectType
64
65
}).Distinct ().ToSlice (& ret )
@@ -69,10 +70,10 @@ func (self *SymbolTable) EnumNames() (ret []string) {
69
70
// 对象在的表名
70
71
func (self * SymbolTable ) ObjectAtTable (objName string ) (ret string ) {
71
72
72
- linq .From (self .typeFields ).WhereT (func (tf * TypeField ) bool {
73
+ linq .From (self .typeFields ).WhereT (func (tf * table. TypeField ) bool {
73
74
74
75
return tf .ObjectType == objName
75
- }).SelectT (func (tf * TypeField ) string {
76
+ }).SelectT (func (tf * table. TypeField ) string {
76
77
77
78
return tf .Table
78
79
}).Distinct ().ForEachT (func (name string ) {
@@ -85,9 +86,9 @@ func (self *SymbolTable) ObjectAtTable(objName string) (ret string) {
85
86
}
86
87
87
88
// 对象的所有字段
88
- func (self * SymbolTable ) Fields (objectType string ) (ret []* TypeField ) {
89
+ func (self * SymbolTable ) Fields (objectType string ) (ret []* table. TypeField ) {
89
90
90
- linq .From (self .typeFields ).WhereT (func (tf * TypeField ) bool {
91
+ linq .From (self .typeFields ).WhereT (func (tf * table. TypeField ) bool {
91
92
92
93
return tf .ObjectType == objectType
93
94
}).ToSlice (& ret )
@@ -96,14 +97,14 @@ func (self *SymbolTable) Fields(objectType string) (ret []*TypeField) {
96
97
}
97
98
98
99
// 数据表中表头对应类型表
99
- func (self * SymbolTable ) QueryType (tableName , headerName string ) (ret * TypeField ) {
100
+ func (self * SymbolTable ) QueryType (tableName , headerName string ) (ret * table. TypeField ) {
100
101
101
- linq .From (self .typeFields ).WhereT (func (tf * TypeField ) bool {
102
+ linq .From (self .typeFields ).WhereT (func (tf * table. TypeField ) bool {
102
103
103
104
return tf .Table == tableName &&
104
105
tf .ObjectType == tableName &&
105
106
(tf .Name == headerName || tf .FieldName == headerName )
106
- }).ForEachT (func (types * TypeField ) {
107
+ }).ForEachT (func (types * table. TypeField ) {
107
108
108
109
ret = types
109
110
0 commit comments