github.com/unionj-cloud/go-doudou/v2@v2.3.5/toolkit/gormgen/helper/object.go (about) 1 package helper 2 3 import ( 4 "errors" 5 "fmt" 6 7 "github.com/unionj-cloud/go-doudou/v2/toolkit/gormgen/field" 8 ) 9 10 // Object an object interface 11 type Object interface { 12 // TableName return table name 13 TableName() string 14 // StructName return struct name 15 StructName() string 16 // FileName return field name 17 FileName() string 18 // ImportPkgPaths return need import package path 19 ImportPkgPaths() []string 20 21 // Fields return field array 22 Fields() []Field 23 } 24 25 // Field a field interface 26 type Field interface { 27 // Name return field name 28 Name() string 29 // Type return field type 30 Type() string 31 32 // ColumnName return column name 33 ColumnName() string 34 // GORMTag return gorm tag 35 GORMTag() string 36 // JSONTag return json tag 37 JSONTag() string 38 // Tag return field tag 39 Tag() field.Tag 40 41 // Comment return comment 42 Comment() string 43 } 44 45 // CheckObject check ojbect 46 func CheckObject(obj Object) error { 47 if obj.StructName() == "" { 48 return errors.New("Object's StructName() cannot be empty") 49 } 50 51 for _, field := range obj.Fields() { 52 switch "" { 53 case field.Name(): 54 return fmt.Errorf("Object %s's Field.Name() cannot be empty", obj.StructName()) 55 case field.Type(): 56 return fmt.Errorf("Object %s's Field.Type() cannot be empty", obj.StructName()) 57 } 58 } 59 return nil 60 }