Fix routine parameter code generation for types with a binding

This commit is contained in:
Vladimir Kulev 2015-07-28 01:06:59 +03:00
parent d89572c098
commit 7bf3afcafb

View File

@ -3443,16 +3443,15 @@ public class JavaGenerator extends AbstractGenerator {
final String paramName = parameter.getName();
final String paramComment = StringUtils.defaultString(parameter.getComment());
final String isDefaulted = parameter.isDefaulted() ? "true" : "false";
final String paramConverterType = out.ref(parameter.getType().getConverter());
final List<String> converters = out.ref(list(
parameter.getType().getConverter(),
parameter.getType().getBinding()
));
out.tab(1).javadoc("The parameter <code>%s</code>.%s", parameter.getQualifiedOutputName(), defaultIfBlank(" " + paramComment, ""));
if (paramConverterType != null)
out.tab(1).println("val %s : %s[%s] = %s.createParameter(\"%s\", %s, %s, new %s)",
paramId, Parameter.class, paramType, AbstractRoutine.class, paramName, paramTypeRef, isDefaulted, paramConverterType);
else
out.tab(1).println("val %s : %s[%s] = %s.createParameter(\"%s\", %s, %s)",
paramId, Parameter.class, paramType, AbstractRoutine.class, paramName, paramTypeRef, isDefaulted);
out.tab(1).println("val %s : %s[%s] = %s.createParameter(\"%s\", %s, %s[[before=, ][new %s]])",
paramId, Parameter.class, paramType, AbstractRoutine.class, paramName, paramTypeRef, isDefaulted, converters);
}
out.println("}");
@ -3478,16 +3477,15 @@ public class JavaGenerator extends AbstractGenerator {
final String paramName = parameter.getName();
final String paramComment = StringUtils.defaultString(parameter.getComment());
final String isDefaulted = parameter.isDefaulted() ? "true" : "false";
final String paramConverterType = out.ref(parameter.getType().getConverter());
final List<String> converters = out.ref(list(
parameter.getType().getConverter(),
parameter.getType().getBinding()
));
out.tab(1).javadoc("The parameter <code>%s</code>.%s", parameter.getQualifiedOutputName(), defaultIfBlank(" " + paramComment, ""));
if (paramConverterType != null)
out.tab(1).println("public static final %s<%s> %s = createParameter(\"%s\", %s, %s, new %s());",
Parameter.class, paramType, paramId, paramName, paramTypeRef, isDefaulted, paramConverterType);
else
out.tab(1).println("public static final %s<%s> %s = createParameter(\"%s\", %s, %s);",
Parameter.class, paramType, paramId, paramName, paramTypeRef, isDefaulted);
out.tab(1).println("public static final %s<%s> %s = createParameter(\"%s\", %s, %s[[before=, ][new %s()]]);",
Parameter.class, paramType, paramId, paramName, paramTypeRef, isDefaulted, converters);
}
}