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  }