MCPcopy
hub / github.com/davyxu/tabtoy / ExportLocalType

Method ExportLocalType

v2/file.go:39–113  ·  view source on GitHub ↗
(mainFile *File)

Source from the content-addressed store, hash-verified

37}
38
39func (self *File) ExportLocalType(mainFile *File) bool {
40
41 var sheetCount int
42
43 var typeSheet *TypeSheet
44 // 解析类型表
45 for _, rawSheet := range self.coreFile.Sheets {
46
47 if isTypeSheet(rawSheet.Name) {
48 if sheetCount > 0 {
49 log.Errorf("%s", i18n.String(i18n.File_TypeSheetKeepSingleton))
50 return false
51 }
52
53 typeSheet = newTypeSheet(NewSheet(self, rawSheet))
54
55 // 从cell添加类型
56 if !typeSheet.Parse(self.LocalFD, self.GlobalFD) {
57 return false
58 }
59
60 sheetCount++
61
62 }
63 }
64
65 if typeSheet == nil {
66 log.Errorf("%s", i18n.String(i18n.File_TypeSheetNotFound))
67 return false
68 }
69
70 // 解析表头
71 for _, rawSheet := range self.coreFile.Sheets {
72
73 // 是数据表
74 if !isTypeSheet(rawSheet.Name) {
75 dSheet := newDataSheet(NewSheet(self, rawSheet))
76
77 if !dSheet.Valid() {
78 continue
79 }
80
81 log.Infof(" %s", rawSheet.Name)
82
83 dataHeader := newDataHeadSheet()
84
85 // 检查引导头
86 if !dataHeader.ParseProtoField(len(self.dataSheets), dSheet.Sheet, self.LocalFD, self.GlobalFD) {
87 return false
88 }
89
90 if mainFile != nil {
91
92 if fieldName, ok := dataHeader.AsymmetricEqual(mainFile.Header); !ok {
93 log.Errorf("%s main: %s child: %s field: %s", i18n.String(i18n.DataHeader_NotMatchInMultiTableMode), mainFile.FileName, self.FileName, fieldName)
94 return false
95 }
96

Callers 1

RunFunction · 0.80

Calls 10

ParseMethod · 0.95
StringFunction · 0.92
isTypeSheetFunction · 0.85
newTypeSheetFunction · 0.85
NewSheetFunction · 0.85
newDataSheetFunction · 0.85
newDataHeadSheetFunction · 0.85
ValidMethod · 0.80
ParseProtoFieldMethod · 0.80
AsymmetricEqualMethod · 0.80

Tested by

no test coverage detected