Skip to content

Commit

Permalink
Refactor: item compilation details should be encapsulated within the …
Browse files Browse the repository at this point in the history
…object
  • Loading branch information
isimluk committed Oct 30, 2020
1 parent f163c65 commit d40f256
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 23 deletions.
13 changes: 13 additions & 0 deletions metaschema/parser/assembly.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,16 @@ func (a *Assembly) XmlGroupping() string {
func (a *Assembly) XmlAnnotation() string {
return a.XmlGroupping() + a.XmlName() + ",omitempty"
}

func (a *Assembly) compile(metaschema *Metaschema) error {
if a.Ref != "" {
var err error
a.Metaschema = metaschema
a.Def, err = a.Metaschema.GetDefineAssembly(a.Ref)
if err != nil {
return err
}
a.Metaschema.registerDependency(a.Ref, a.Def)
}
return nil
}
13 changes: 13 additions & 0 deletions metaschema/parser/field.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,16 @@ func (f *Field) XmlAnnotation() string {
return f.XmlName() + ",omitempty"

}

func (f *Field) compile(metaschema *Metaschema) error {
if f.Ref != "" {
var err error
f.Metaschema = metaschema
f.Def, err = f.Metaschema.GetDefineField(f.Ref)
if err != nil {
return err
}
f.Metaschema.registerDependency(f.Ref, f.Def)
}
return nil
}
9 changes: 9 additions & 0 deletions metaschema/parser/flag.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,12 @@ func (f *Flag) XmlName() string {
}
return f.Def.Name
}

func (f *Flag) compile(metaschema *Metaschema) error {
var err error
if f.Ref != "" {
f.Metaschema = metaschema
f.Def, err = f.Metaschema.GetDefineFlag(f.Ref)
}
return err
}
1 change: 1 addition & 0 deletions metaschema/parser/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ type GoStructItem interface {
GoTypeNameMultiplexed() string
JsonName() string
XmlAnnotation() string
compile(*Metaschema) error
}

// Metaschema is the root metaschema element
Expand Down
32 changes: 9 additions & 23 deletions metaschema/parser/metaschema_compile.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,47 +25,33 @@ func (metaschema *Metaschema) registerDependency(name string, dependency GoType)
}

func (metaschema *Metaschema) linkAssemblies(list []Assembly) error {
var err error
for i, _ := range list {
a := &list[i]
if a.Ref != "" {
a.Def, err = metaschema.GetDefineAssembly(a.Ref)
if err != nil {
return err
}
a.Metaschema = metaschema
metaschema.registerDependency(a.Ref, a.Def)
err := a.compile(metaschema)
if err != nil {
return err
}
}
return nil
}

func (metaschema *Metaschema) linkFields(list []Field) error {
var err error
for i, _ := range list {
f := &list[i]
if f.Ref != "" {
f.Def, err = metaschema.GetDefineField(f.Ref)
if err != nil {
return err
}
f.Metaschema = metaschema
metaschema.registerDependency(f.Ref, f.Def)
err := f.compile(metaschema)
if err != nil {
return err
}
}
return nil
}

func (metaschema *Metaschema) linkFlags(list []Flag) error {
var err error
for i, _ := range list {
f := &list[i]
if f.Ref != "" {
f.Def, err = metaschema.GetDefineFlag(f.Ref)
if err != nil {
return err
}
f.Metaschema = metaschema
err := f.compile(metaschema)
if err != nil {
return err
}
}
return nil
Expand Down

0 comments on commit d40f256

Please sign in to comment.