holy toldeo... things might actually be working

This commit is contained in:
Andrew Gallant (Ocelot)
2012-05-03 01:00:01 -04:00
parent 39507f86ab
commit 5cdae5950c
18 changed files with 11831 additions and 265 deletions

View File

@@ -138,7 +138,7 @@ func (x *XMLEvent) Translate() *Event {
Fields: make([]Field, len(x.Fields)),
}
for i, field := range x.Fields {
ev.Fields[i] = field.Translate()
ev.Fields[i] = field.Translate(ev)
}
return ev
}
@@ -158,7 +158,7 @@ func (x *XMLError) Translate() *Error {
Fields: make([]Field, len(x.Fields)),
}
for i, field := range x.Fields {
err.Fields[i] = field.Translate()
err.Fields[i] = field.Translate(err)
}
return err
}
@@ -177,7 +177,7 @@ func (x *XMLStruct) Translate() *Struct {
Fields: make([]Field, len(x.Fields)),
}
for i, field := range x.Fields {
s.Fields[i] = field.Translate()
s.Fields[i] = field.Translate(s)
}
return s
}
@@ -188,7 +188,7 @@ func (x *XMLUnion) Translate() *Union {
Fields: make([]Field, len(x.Fields)),
}
for i, field := range x.Fields {
u.Fields[i] = field.Translate()
u.Fields[i] = field.Translate(u)
}
return u
}
@@ -202,7 +202,7 @@ func (x *XMLRequest) Translate() *Request {
Reply: x.Reply.Translate(),
}
for i, field := range x.Fields {
r.Fields[i] = field.Translate()
r.Fields[i] = field.Translate(r)
}
// Address bug (or legacy code) in QueryTextExtents.
@@ -230,7 +230,7 @@ func (x *XMLReply) Translate() *Reply {
Fields: make([]Field, len(x.Fields)),
}
for i, field := range x.Fields {
r.Fields[i] = field.Translate()
r.Fields[i] = field.Translate(r)
}
return r
}
@@ -309,7 +309,7 @@ func (x *XMLExpression) Translate() Expression {
panic("unreachable")
}
func (x *XMLField) Translate() Field {
func (x *XMLField) Translate(parent interface{}) Field {
switch x.XMLName.Local {
case "pad":
return &PadField{
@@ -339,6 +339,7 @@ func (x *XMLField) Translate() Field {
}
case "valueparam":
return &ValueField{
Parent: parent,
MaskType: newTranslation(x.ValueMaskType),
MaskName: x.ValueMaskName,
ListName: x.ValueListName,
@@ -365,7 +366,7 @@ func (x *XMLBitcase) Translate() *Bitcase {
Fields: make([]Field, len(x.Fields)),
}
for i, field := range x.Fields {
b.Fields[i] = field.Translate()
b.Fields[i] = field.Translate(b)
}
return b
}