Skip to content

Commit

Permalink
support adding validation annotation to list of object in query param…
Browse files Browse the repository at this point in the history
…eter (#70)
  • Loading branch information
hankting authored and chinkong83 committed May 24, 2019
1 parent 03c210d commit 9e51fdf
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion cmd/rdl-gen-parsec-java-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -1038,7 +1038,14 @@ func (gen *javaServerGenerator) handlerSignature(r *rdl.Resource) string {
} else {
pdecl = gen.extendedValueAnnotation(v.Annotations)
}
ptype := gen.javaType(reg, v.Type, true, "", "")

ptype := ""
bt := reg.FindType(v.Type)
if v.QueryParam != "" && reg.BaseType(bt) == rdl.BaseTypeArray {
ptype = gen.generateStructFieldType(v.Type, r)
} else {
ptype = gen.javaType(reg, v.Type, true, "", "")
}
params = append(params, "\n "+pdecl+ptype+" "+javaName(k))
}
spec := ""
Expand Down Expand Up @@ -1292,3 +1299,14 @@ func javaName(name rdl.Identifier) string {
return string(name)
}
}

func (gen *javaServerGenerator) generateStructFieldType(rdlType rdl.TypeRef, r *rdl.Resource) string {
t := gen.registry.FindType(rdlType)
subItems := t.ArrayTypeDef.Items
annotations := utils.GetUserDefinedTypeAnnotations(subItems, gen.schema.Types)
pdecl := ""
if len(annotations) > 0 {
pdecl = gen.extendedValueAnnotation(annotations)
}
return "List<" + pdecl + gen.javaType(gen.registry, subItems, true, "", "") + ">"
}

0 comments on commit 9e51fdf

Please sign in to comment.