- Upgrade Quarkus and OpenAPI generator versions in pom.xml. - Introduce CharacterService and ScenarioService for managing character and scenario templates. - Implement CharacterEntity and ScenarioEntity JPA entities with corresponding repositories. - Add RESTful APIs for listing and retrieving characters and scenarios. - Create JSON converter for persisting lists of strings in the database. - Update OpenAPI specification to include new endpoints for character and scenario management. - Add Liquibase migration scripts for character and scenario tables. - Configure application settings for Hibernate ORM and database generation.
57 lines
2.4 KiB
Plaintext
57 lines
2.4 KiB
Plaintext
{{#withXml}}
|
|
@XmlType(name="{{datatypeWithEnum}}")
|
|
@XmlEnum({{dataType}}.class)
|
|
{{/withXml}}
|
|
{{>additionalEnumTypeAnnotations}}public enum {{datatypeWithEnum}} {
|
|
|
|
{{#allowableValues}}
|
|
{{#enumVars}}{{#withXml}}@XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}){{/withXml}}{{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}
|
|
{{/allowableValues}}
|
|
|
|
|
|
private {{dataType}} value;
|
|
|
|
{{datatypeWithEnum}} ({{dataType}} v) {
|
|
value = v;
|
|
}
|
|
|
|
public {{dataType}} value() {
|
|
return value;
|
|
}
|
|
|
|
@Override
|
|
{{#jackson}}
|
|
@JsonValue
|
|
{{/jackson}}
|
|
public String toString() {
|
|
return String.valueOf(value);
|
|
}
|
|
|
|
/**
|
|
* Convert a String into {{dataType}}, as specified in the
|
|
* See JAX RS 2.0 Specification, section 3.2, p. 12
|
|
*/
|
|
public static {{datatypeWithEnum}} fromString(String s) {
|
|
for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) {
|
|
// using Objects.toString() to be safe if value type non-object type
|
|
// because types like 'int' etc. will be auto-boxed
|
|
if (java.util.Objects.toString(b.value).equals(s)) {
|
|
return b;
|
|
}
|
|
}
|
|
{{#isNullable}}return null;{{/isNullable}}{{^isNullable}}throw new IllegalArgumentException("Unexpected string value '" + s + "'");{{/isNullable}}
|
|
}
|
|
|
|
{{#jackson}}
|
|
@JsonCreator
|
|
public static {{datatypeWithEnum}} fromValue({{dataType}} value) {
|
|
for ({{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) {
|
|
if (b.value.{{^isString}}equals{{/isString}}{{#isString}}{{#useEnumCaseInsensitive}}equalsIgnoreCase{{/useEnumCaseInsensitive}}{{^useEnumCaseInsensitive}}equals{{/useEnumCaseInsensitive}}{{/isString}}(value)) {
|
|
return b;
|
|
}
|
|
}
|
|
{{#isNullable}}return null;{{/isNullable}}{{^isNullable}}{{#enumUnknownDefaultCase}}{{#allowableValues}}{{#enumVars}}{{#-last}}return {{{name}}};{{/-last}}{{/enumVars}}{{/allowableValues}}{{/enumUnknownDefaultCase}}{{^enumUnknownDefaultCase}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/enumUnknownDefaultCase}}{{/isNullable}}
|
|
}
|
|
{{/jackson}}
|
|
}
|