di/registry/definition.go
crusader c6d6690cee ing
2017-12-08 19:32:59 +09:00

40 lines
674 B
Go

package registry
import (
"fmt"
"reflect"
cda "git.loafle.net/commons_go/di/annotation"
)
type TypeDefinition struct {
FullName string
PkgName string
TypeName string
Type reflect.Type
RealType reflect.Type
Fields []*FieldDefinition
}
type FieldDefinition struct {
FieldName string
PkgName string
TypeName string
Type reflect.Type
RealType reflect.Type
Annotations map[string]cda.Annotation
}
func (fd *FieldDefinition) GetAnnotation(name string) cda.Annotation {
if nil == fd.Annotations {
return nil
}
return fd.Annotations[name]
}
func FullName(pkgName, typeName string) string {
return fmt.Sprintf("%s/%s", pkgName, typeName)
}