From 3a49fff6bb59f73d26679ef4974444c6f6319efb Mon Sep 17 00:00:00 2001 From: Cory Slep Date: Sat, 5 Jan 2019 17:02:03 +0100 Subject: [PATCH] Add serialization and comparison for xsd:string --- tools/exp/rdf/xsd/ontology.go | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/exp/rdf/xsd/ontology.go b/tools/exp/rdf/xsd/ontology.go index 0f31dc1..4df2265 100644 --- a/tools/exp/rdf/xsd/ontology.go +++ b/tools/exp/rdf/xsd/ontology.go @@ -476,21 +476,45 @@ func (s *xmlString) Apply(key string, value interface{}, ctx *rdf.ParsingContext stringSpec, jen.Id("string"), []jen.Code{ - // TODO + jen.Return( + jen.Id(codegen.This()), + jen.Nil(), + ), }), DeserializeFn: rdf.DeserializeValueFunction( s.pkg, stringSpec, jen.Id("string"), []jen.Code{ - // TODO + jen.If( + jen.List( + jen.Id("s"), + jen.Id("ok"), + ).Op(":=").Id(codegen.This()).Assert(jen.String()), + jen.Id("ok"), + ).Block( + jen.Return( + jen.Id("s"), + jen.Nil(), + ), + ).Else().Block( + jen.Return( + jen.Lit(""), + jen.Qual("fmt", "Errorf").Call( + jen.Lit("%v cannot be interpreted as a string for xsd:string"), + jen.Id(codegen.This()), + ), + ), + ), }), LessFn: rdf.LessFunction( s.pkg, stringSpec, jen.Id("string"), []jen.Code{ - // TODO + jen.Return( + jen.Id("lhs").Op("<").Id("rhs"), + ), }), } if err = v.SetValue(stringSpec, val); err != nil {