Make manager interface for type packages have unique methods

このコミットが含まれているのは:
Cory Slep 2019-01-05 23:19:50 +01:00
コミット 73d677460b
1個のファイルの変更7行の追加2行の削除

ファイルの表示

@ -117,12 +117,17 @@ func (t *TypePackageGenerator) PublicDefinitions(tgs []*TypeGenerator) *codegen.
// Precondition: The passed-in generators are the complete set of type // Precondition: The passed-in generators are the complete set of type
// generators within a package. // generators within a package.
func (t *TypePackageGenerator) PrivateDefinitions(tgs []*TypeGenerator) (*jen.Statement, *codegen.Interface, *codegen.Function) { func (t *TypePackageGenerator) PrivateDefinitions(tgs []*TypeGenerator) (*jen.Statement, *codegen.Interface, *codegen.Function) {
var fns []codegen.FunctionSignature fnsMap := make(map[string]codegen.FunctionSignature)
for _, tg := range tgs { for _, tg := range tgs {
for _, m := range tg.getAllManagerMethods() { for _, m := range tg.getAllManagerMethods() {
fns = append(fns, m.ToFunctionSignature()) v := m.ToFunctionSignature()
fnsMap[v.Name] = v
} }
} }
var fns []codegen.FunctionSignature
for _, v := range fnsMap {
fns = append(fns, v)
}
return jen.Var().Id(managerInitName()).Id(managerInterfaceName), return jen.Var().Id(managerInitName()).Id(managerInterfaceName),
codegen.NewInterface(tgs[0].PrivatePackage().Path(), codegen.NewInterface(tgs[0].PrivatePackage().Path(),
managerInterfaceName, managerInterfaceName,