Skip to content

Commit 35bace7

Browse files
committed
Plug in open_class template (template for classes with parents)
1 parent 414ef78 commit 35bace7

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

gradle-plugin/plugin/src/main/resources/kotlin/model.mustache

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ package {{modelPackage}}
44
{{/-first}}import {{import}}
55
{{/imports}}
66
{{#models}}{{#model}}
7-
{{#isAlias}}{{>type_alias}}{{/isAlias}}{{^isAlias}}{{#isEnum}}{{>enum_class}}{{/isEnum}}{{^isEnum}}{{>data_class}}{{/isEnum}}{{/isAlias}}{{/model}}{{/models}}
7+
{{#hasChildren}}{{>open_class}}{{/hasChildren}}{{^hasChildren}}{{#isAlias}}{{>type_alias}}{{/isAlias}}{{^isAlias}}{{#isEnum}}{{>enum_class}}{{/isEnum}}{{^isEnum}}{{>data_class}}{{/isEnum}}{{/isAlias}}{{/hasChildren}}{{/model}}
8+
{{/models}}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/**{{#description}}
2+
* {{{description}}}{{/description}}
3+
{{#allVars}}
4+
* @property {{{name}}}{{#description}} {{description}}{{/description}}
5+
{{/allVars}}
6+
*/
7+
@JsonClass(generateAdapter = true)
8+
{{#hasChildren}}
9+
@Polymorphic(
10+
discriminatorField = "{{discriminator}}",
11+
discriminatedValues = [{{#children}}"{{title}}"{{^-last}}, {{/-last}}{{/children}}],
12+
discriminatedClasses = [{{#children}}{{classname}}::class{{^-last}}, {{/-last}}{{/children}}]
13+
)
14+
{{/hasChildren}}
15+
open class {{classname}}(
16+
{{#requiredVars}}
17+
{{>data_class_req_var}}{{^-last}},
18+
{{/-last}}{{/requiredVars}}{{#hasRequired}}{{#hasOptional}},
19+
{{/hasOptional}}{{/hasRequired}}{{#optionalVars}}{{>data_class_opt_var}}{{^-last}},
20+
{{/-last}}{{/optionalVars}}
21+
) {
22+
override fun toString(): String {
23+
return "{{classname}}(" +{{#allVars}}
24+
"{{name}}=${{name}}{{^-last}},{{/-last}}" +{{/allVars}}
25+
")"
26+
}
27+
28+
override fun hashCode(): Int {
29+
var resultHashCode = 0{{#allVars}}
30+
resultHashCode = resultHashCode * 31 + this.{{name}}.optimisticHashCode(){{/allVars}}
31+
return resultHashCode
32+
}
33+
34+
override fun equals(other: Any?): Boolean {
35+
return if (this === other) {
36+
true
37+
} else {
38+
other is {{classname}}{{#allVars}} &&
39+
this.{{name}} == other.{{name}}{{/allVars}}
40+
}
41+
}
42+
43+
{{#vars}}
44+
{{#isEnum}}
45+
/**{{#description}}
46+
* {{{description}}}{{/description}}
47+
* Values:{{#allowableValues}} {{#enumVars}}{{&name}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}
48+
*/
49+
@JsonClass(generateAdapter = false)
50+
enum class {{enumName}}(val value: {{complexType}}) {
51+
{{#allowableValues}}{{#enumVars}} @Json(name = {{{value}}}) {{&name}}({{{value}}}){{^-last}},{{/-last}}{{{newline}}}{{/enumVars}}{{/allowableValues}} }
52+
{{/isEnum}}{{/vars}}}

0 commit comments

Comments
 (0)