gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/reflectx/ref-desc-type-class.go (about) 1 package reflectx 2 3 import ( 4 "gitee.com/zhongguo168a/gocodes/datax/schemax" 5 ) 6 7 type ClassTypeRef struct { 8 } 9 10 func (f *ClassTypeRef) RefHas(field string) bool { 11 switch field { 12 case "Decl": 13 return true 14 } 15 return false 16 } 17 18 func (f *ClassTypeRef) RefGet(target IRefObject, ClassType string) (val interface{}, isNil bool) { 19 obj := target.(*schemax.ClassType) 20 21 switch ClassType { 22 case "Decl": 23 return obj.Decl, false 24 } 25 return nil, true 26 } 27 28 func (f *ClassTypeRef) RefSet(target IRefObject, ClassType string, val interface{}) { 29 obj := target.(*schemax.ClassType) 30 switch ClassType { 31 case "Decl": 32 obj.Decl = val.(string) 33 } 34 return 35 } 36 37 func (f *ClassTypeRef) RefNew() IRefObject { 38 return &schemax.ClassType{} 39 } 40 41 func (f *ClassTypeRef) RefType() string { 42 return "class" 43 }