Instead of just ignoring default values in the generated
model constructors, we modify the generator code in Java.
The template checks for null before outputting a default value.
Superagent does not always produce a `body`. See
http://visionmedia.github.io/superagent/ for details. When it
doesn't, we should deserialize the raw `response.text` rather
than returning `null`. Currently, the JS client always returns
`null` when the return type is String! This commit fixes
that.
by fixing the logic of enum Boolean checking.
Other changes:
* Remove the `true &&` prefix from the `equals` method in models.
* Apply some changes of Java-default to Java-okhttp-gson, i.e. adding
`this` and parent model handling.
* Some improvements on spaces and blank lines.
This change adds `this` to field names in `equals` within `pojo.mustache` so that an incorrect `equals` method is not generated in cases where a class has an internal field that is the same as the `classVarName` of the class.
The `constructFromObject` factory methods should be class methods
(or "static" methods), not instance methods.
With this commit, ApiClient no longer calls the model constructors
directly. Instead, it calls the new static factory method to get the
new instance. If there is no data on the top level, null is returned.
It is still possible for users to call the model constructors
directly, of course.
jackson-jaxrs-json-provider & com.brsanthu:migbase64 are missing from the build.gradle mustache template (but the pom.xml one has them)
PS: Why are there no automated tests that detect this?
Fixes#2103.
In the constructFromObject methods, we were always setting all the
parameters, including optional ones that were missing in the `data`
object. Because of the `convertToType` calls, this had the effect
of producing the *strings* `"undefined"` or `"null"` as property
values on the constructed object! This obviously leads to difficult
bugs.
This commit makes sure that we first check that the data field
exists in the data object. Note that both `null` and `undefined`
values will be skipped.