Skip to content

Commit 5aa1da7

Browse files
authored
Add utility methods for free-form objects (isFreeFormObject) (#1338)
* add utility methods for models * add isFreeFormObject tag * add object mapping for elixir client * minor fix to free form object check
1 parent 9be5b99 commit 5aa1da7

File tree

7 files changed

+281
-165
lines changed

7 files changed

+281
-165
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ public class CodegenParameter {
2727
isCookieParam, isBodyParam, hasMore, isContainer,
2828
secondaryParam, isCollectionFormatMulti, isPrimitiveType, isModel;
2929
public String baseName, paramName, dataType, datatypeWithEnum, dataFormat,
30-
collectionFormat, description, unescapedDescription, baseType, defaultValue, enumName;
30+
collectionFormat, description, unescapedDescription, baseType, defaultValue, enumName;
3131

3232
public String example; // example value (x-example)
3333
public String jsonSchema;
34-
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid, isEmail;
34+
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary,
35+
isBoolean, isDate, isDateTime, isUuid, isEmail, isFreeFormObject;
3536
public boolean isListContainer, isMapContainer;
3637
public boolean isFile;
3738
public boolean isEnum;
@@ -94,7 +95,7 @@ public class CodegenParameter {
9495
* See http://json-schema.org/latest/json-schema-validation.html#anchor14
9596
*/
9697
public Number multipleOf;
97-
98+
9899
public CodegenParameter copy() {
99100
CodegenParameter output = new CodegenParameter();
100101
output.isFile = this.isFile;
@@ -148,7 +149,7 @@ public CodegenParameter copy() {
148149
if (this.mostInnerItems != null) {
149150
output.mostInnerItems = this.mostInnerItems;
150151
}
151-
if(this.vendorExtensions != null){
152+
if (this.vendorExtensions != null) {
152153
output.vendorExtensions = new HashMap<String, Object>(this.vendorExtensions);
153154
}
154155
output.hasValidation = this.hasValidation;
@@ -167,6 +168,7 @@ public CodegenParameter copy() {
167168
output.isDateTime = this.isDateTime;
168169
output.isUuid = this.isUuid;
169170
output.isEmail = this.isEmail;
171+
output.isFreeFormObject = this.isFreeFormObject;
170172
output.isListContainer = this.isListContainer;
171173
output.isMapContainer = this.isMapContainer;
172174

@@ -259,6 +261,8 @@ public boolean equals(Object o) {
259261
return false;
260262
if (isEmail != that.isEmail)
261263
return false;
264+
if (isFreeFormObject != that.isFreeFormObject)
265+
return false;
262266
if (isListContainer != that.isListContainer)
263267
return false;
264268
if (isMapContainer != that.isMapContainer)
@@ -307,18 +311,18 @@ public boolean equals(Object o) {
307311

308312
@Override
309313
public int hashCode() {
310-
int result = isFormParam ? 13:31;
311-
result = 31 * result + (isQueryParam ? 13:31);
312-
result = 31 * result + (isPathParam ? 13:31);
313-
result = 31 * result + (isHeaderParam ? 13:31);
314-
result = 31 * result + (isCookieParam ? 13:31);
315-
result = 31 * result + (isBodyParam ? 13:31);
316-
result = 31 * result + (hasMore ? 13:31);
317-
result = 31 * result + (isContainer ? 13:31);
318-
result = 31 * result + (secondaryParam ? 13:31);
319-
result = 31 * result + (isCollectionFormatMulti ? 13:31);
320-
result = 31 * result + (isPrimitiveType ? 13:31);
321-
result = 31 * result + (isModel ? 13:31);
314+
int result = isFormParam ? 13 : 31;
315+
result = 31 * result + (isQueryParam ? 13 : 31);
316+
result = 31 * result + (isPathParam ? 13 : 31);
317+
result = 31 * result + (isHeaderParam ? 13 : 31);
318+
result = 31 * result + (isCookieParam ? 13 : 31);
319+
result = 31 * result + (isBodyParam ? 13 : 31);
320+
result = 31 * result + (hasMore ? 13 : 31);
321+
result = 31 * result + (isContainer ? 13 : 31);
322+
result = 31 * result + (secondaryParam ? 13 : 31);
323+
result = 31 * result + (isCollectionFormatMulti ? 13 : 31);
324+
result = 31 * result + (isPrimitiveType ? 13 : 31);
325+
result = 31 * result + (isModel ? 13 : 31);
322326
result = 31 * result + (baseName != null ? baseName.hashCode() : 0);
323327
result = 31 * result + (paramName != null ? paramName.hashCode() : 0);
324328
result = 31 * result + (dataType != null ? dataType.hashCode() : 0);
@@ -332,42 +336,43 @@ public int hashCode() {
332336
result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0);
333337
result = 31 * result + (example != null ? example.hashCode() : 0);
334338
result = 31 * result + (jsonSchema != null ? jsonSchema.hashCode() : 0);
335-
result = 31 * result + (isString ? 13:31);
336-
result = 31 * result + (isNumeric ? 13:31);
337-
result = 31 * result + (isInteger ? 13:31);
338-
result = 31 * result + (isLong ? 13:31);
339-
result = 31 * result + (isFloat ? 13:31);
340-
result = 31 * result + (isNumber ? 13:31);
341-
result = 31 * result + (isDouble ? 13:31);
342-
result = 31 * result + (isByteArray ? 13:31);
343-
result = 31 * result + (isBinary ? 13:31);
344-
result = 31 * result + (isBoolean ? 13:31);
345-
result = 31 * result + (isDate ? 13:31);
346-
result = 31 * result + (isDateTime ? 13:31);
347-
result = 31 * result + (isUuid ? 13:31);
348-
result = 31 * result + (isEmail ? 13:31);
349-
result = 31 * result + (isListContainer ? 13:31);
350-
result = 31 * result + (isMapContainer ? 13:31);
351-
result = 31 * result + (isFile ? 13:31);
339+
result = 31 * result + (isString ? 13 : 31);
340+
result = 31 * result + (isNumeric ? 13 : 31);
341+
result = 31 * result + (isInteger ? 13 : 31);
342+
result = 31 * result + (isLong ? 13 : 31);
343+
result = 31 * result + (isFloat ? 13 : 31);
344+
result = 31 * result + (isNumber ? 13 : 31);
345+
result = 31 * result + (isDouble ? 13 : 31);
346+
result = 31 * result + (isByteArray ? 13 : 31);
347+
result = 31 * result + (isBinary ? 13 : 31);
348+
result = 31 * result + (isBoolean ? 13 : 31);
349+
result = 31 * result + (isDate ? 13 : 31);
350+
result = 31 * result + (isDateTime ? 13 : 31);
351+
result = 31 * result + (isUuid ? 13 : 31);
352+
result = 31 * result + (isEmail ? 13 : 31);
353+
result = 31 * result + (isFreeFormObject ? 13 : 31);
354+
result = 31 * result + (isListContainer ? 13 : 31);
355+
result = 31 * result + (isMapContainer ? 13 : 31);
356+
result = 31 * result + (isFile ? 13 : 31);
352357
result = 31 * result + (isEnum ? 1 : 0);
353358
result = 31 * result + (_enum != null ? _enum.hashCode() : 0);
354359
result = 31 * result + (allowableValues != null ? allowableValues.hashCode() : 0);
355360
result = 31 * result + (items != null ? items.hashCode() : 0);
356361
result = 31 * result + (mostInnerItems != null ? mostInnerItems.hashCode() : 0);
357362
result = 31 * result + (vendorExtensions != null ? vendorExtensions.hashCode() : 0);
358-
result = 31 * result + (hasValidation ? 13:31);
359-
result = 31 * result + (isNullable ? 13:31);
360-
result = 31 * result + (required ? 13:31);
363+
result = 31 * result + (hasValidation ? 13 : 31);
364+
result = 31 * result + (isNullable ? 13 : 31);
365+
result = 31 * result + (required ? 13 : 31);
361366
result = 31 * result + (maximum != null ? maximum.hashCode() : 0);
362-
result = 31 * result + (exclusiveMaximum ? 13:31);
367+
result = 31 * result + (exclusiveMaximum ? 13 : 31);
363368
result = 31 * result + (minimum != null ? minimum.hashCode() : 0);
364-
result = 31 * result + (exclusiveMinimum ? 13:31);
369+
result = 31 * result + (exclusiveMinimum ? 13 : 31);
365370
result = 31 * result + (maxLength != null ? maxLength.hashCode() : 0);
366371
result = 31 * result + (minLength != null ? minLength.hashCode() : 0);
367372
result = 31 * result + (pattern != null ? pattern.hashCode() : 0);
368373
result = 31 * result + (maxItems != null ? maxItems.hashCode() : 0);
369374
result = 31 * result + (minItems != null ? minItems.hashCode() : 0);
370-
result = 31 * result + (uniqueItems ? 13:31);
375+
result = 31 * result + (uniqueItems ? 13 : 31);
371376
result = 31 * result + (multipleOf != null ? multipleOf.hashCode() : 0);
372377
return result;
373378
}
@@ -414,6 +419,7 @@ public java.lang.String toString() {
414419
", isDateTime=" + isDateTime +
415420
", isUuid=" + isUuid +
416421
", isEmail=" + isEmail +
422+
", isFreeFormObject=" + isFreeFormObject +
417423
", isListContainer=" + isListContainer +
418424
", isMapContainer=" + isMapContainer +
419425
", isFile=" + isFile +

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525

2626
public class CodegenProperty implements Cloneable {
2727
public String baseName, complexType, getter, setter, description, dataType,
28-
datatypeWithEnum, dataFormat, name, min, max, defaultValue, defaultValueWithParam,
29-
baseType, containerType, title;
28+
datatypeWithEnum, dataFormat, name, min, max, defaultValue, defaultValueWithParam,
29+
baseType, containerType, title;
3030

31-
/** The 'description' string without escape charcters needed by some programming languages/targets */
31+
/**
32+
* The 'description' string without escape charcters needed by some programming languages/targets
33+
*/
3234
public String unescapedDescription;
3335

3436
/**
@@ -56,7 +58,8 @@ public class CodegenProperty implements Cloneable {
5658
public boolean hasMore, required, secondaryParam;
5759
public boolean hasMoreNonReadOnly; // for model constructor, true if next property is not readonly
5860
public boolean isPrimitiveType, isModel, isContainer, isNotContainer;
59-
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary, isFile, isBoolean, isDate, isDateTime, isUuid, isEmail;
61+
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary, isFile,
62+
isBoolean, isDate, isDateTime, isUuid, isEmail, isFreeFormObject;
6063
public boolean isListContainer, isMapContainer;
6164
public boolean isEnum;
6265
public boolean isReadOnly;
@@ -84,7 +87,7 @@ public class CodegenProperty implements Cloneable {
8487
public String xmlNamespace;
8588
public boolean isXmlWrapped = false;
8689

87-
public String getBaseName() {
90+
public String getBaseName() {
8891
return baseName;
8992
}
9093

@@ -125,9 +128,9 @@ public void setDescription(String description) {
125128
}
126129

127130
/**
131+
* @return dataType
128132
* @deprecated since version 3.0.0, use {@link #getDataType()} instead.<br>
129133
* May be removed with the next major release (4.0)
130-
* @return dataType
131134
*/
132135
@Deprecated
133136
public String getDatatype() {
@@ -411,8 +414,7 @@ public void setXmlNamespace(String xmlNamespace) {
411414
}
412415

413416
@Override
414-
public int hashCode()
415-
{
417+
public int hashCode() {
416418
final int prime = 31;
417419
int result = 1;
418420
result = prime * result + ((_enum == null) ? 0 : _enum.hashCode());
@@ -429,19 +431,19 @@ public int hashCode()
429431
result = prime * result + ((description == null) ? 0 : description.hashCode());
430432
result = prime * result + ((title == null) ? 0 : title.hashCode());
431433
result = prime * result + ((example == null) ? 0 : example.hashCode());
432-
result = prime * result + (exclusiveMaximum ? 13:31);
433-
result = prime * result + (exclusiveMinimum ? 13:31);
434+
result = prime * result + (exclusiveMaximum ? 13 : 31);
435+
result = prime * result + (exclusiveMinimum ? 13 : 31);
434436
result = prime * result + ((getter == null) ? 0 : getter.hashCode());
435-
result = prime * result + (hasMore ? 13:31);
436-
result = prime * result + ((hasMoreNonReadOnly ? 13:31));
437-
result = prime * result + ((isContainer ? 13:31));
437+
result = prime * result + (hasMore ? 13 : 31);
438+
result = prime * result + ((hasMoreNonReadOnly ? 13 : 31));
439+
result = prime * result + ((isContainer ? 13 : 31));
438440
result = prime * result + (isEnum ? 1231 : 1237);
439-
result = prime * result + ((isNotContainer ? 13:31));
440-
result = prime * result + ((isPrimitiveType ? 13:31));
441-
result = prime * result + ((isModel ? 13:31));
442-
result = prime * result + ((isReadOnly ? 13:31));
443-
result = prime * result + ((isWriteOnly ? 13:31));
444-
result = prime * result + ((isNullable ? 13:31));
441+
result = prime * result + ((isNotContainer ? 13 : 31));
442+
result = prime * result + ((isPrimitiveType ? 13 : 31));
443+
result = prime * result + ((isModel ? 13 : 31));
444+
result = prime * result + ((isReadOnly ? 13 : 31));
445+
result = prime * result + ((isWriteOnly ? 13 : 31));
446+
result = prime * result + ((isNullable ? 13 : 31));
445447
result = prime * result + ((items == null) ? 0 : items.hashCode());
446448
result = prime * result + ((mostInnerItems == null) ? 0 : mostInnerItems.hashCode());
447449
result = prime * result + ((jsonSchema == null) ? 0 : jsonSchema.hashCode());
@@ -453,41 +455,42 @@ public int hashCode()
453455
result = prime * result + ((minimum == null) ? 0 : minimum.hashCode());
454456
result = prime * result + ((name == null) ? 0 : name.hashCode());
455457
result = prime * result + ((pattern == null) ? 0 : pattern.hashCode());
456-
result = prime * result + ((required ? 13:31));
457-
result = prime * result + ((secondaryParam ? 13:31));
458+
result = prime * result + ((required ? 13 : 31));
459+
result = prime * result + ((secondaryParam ? 13 : 31));
458460
result = prime * result + ((setter == null) ? 0 : setter.hashCode());
459461
result = prime * result + ((unescapedDescription == null) ? 0 : unescapedDescription.hashCode());
460462
result = prime * result + ((vendorExtensions == null) ? 0 : vendorExtensions.hashCode());
461-
result = prime * result + ((hasValidation ? 13:31));
462-
result = prime * result + ((isString ? 13:31));
463-
result = prime * result + ((isNumeric ? 13:31));
464-
result = prime * result + ((isInteger ? 13:31));
465-
result = prime * result + ((isLong ?13:31));
466-
result = prime * result + ((isNumber ? 13:31));
467-
result = prime * result + ((isFloat ? 13:31));
468-
result = prime * result + ((isDouble ? 13:31));
469-
result = prime * result + ((isByteArray ? 13:31));
470-
result = prime * result + ((isBinary ? 13:31));
471-
result = prime * result + ((isFile ? 13:31));
472-
result = prime * result + ((isBoolean ? 13:31));
473-
result = prime * result + ((isDate ? 13:31));
474-
result = prime * result + ((isDateTime ? 13:31));
475-
result = prime * result + ((isUuid ? 13:31));
476-
result = prime * result + ((isEmail ? 13:31));
477-
result = prime * result + ((isMapContainer ? 13:31));
478-
result = prime * result + ((isListContainer ? 13:31));
463+
result = prime * result + ((hasValidation ? 13 : 31));
464+
result = prime * result + ((isString ? 13 : 31));
465+
result = prime * result + ((isNumeric ? 13 : 31));
466+
result = prime * result + ((isInteger ? 13 : 31));
467+
result = prime * result + ((isLong ? 13 : 31));
468+
result = prime * result + ((isNumber ? 13 : 31));
469+
result = prime * result + ((isFloat ? 13 : 31));
470+
result = prime * result + ((isDouble ? 13 : 31));
471+
result = prime * result + ((isByteArray ? 13 : 31));
472+
result = prime * result + ((isBinary ? 13 : 31));
473+
result = prime * result + ((isFile ? 13 : 31));
474+
result = prime * result + ((isBoolean ? 13 : 31));
475+
result = prime * result + ((isDate ? 13 : 31));
476+
result = prime * result + ((isDateTime ? 13 : 31));
477+
result = prime * result + ((isUuid ? 13 : 31));
478+
result = prime * result + ((isEmail ? 13 : 31));
479+
result = prime * result + ((isFreeFormObject ? 13 : 31));
480+
result = prime * result + ((isMapContainer ? 13 : 31));
481+
result = prime * result + ((isListContainer ? 13 : 31));
479482
result = prime * result + Objects.hashCode(isInherited);
480483
result = prime * result + Objects.hashCode(discriminatorValue);
481484
result = prime * result + Objects.hashCode(nameInCamelCase);
482485
result = prime * result + Objects.hashCode(nameInSnakeCase);
483486
result = prime * result + Objects.hashCode(enumName);
484487
result = prime * result + ((maxItems == null) ? 0 : maxItems.hashCode());
485488
result = prime * result + ((minItems == null) ? 0 : minItems.hashCode());
486-
result = prime * result + ((isXmlAttribute ? 13:31));
489+
result = prime * result + ((isXmlAttribute ? 13 : 31));
487490
result = prime * result + ((xmlPrefix == null) ? 0 : xmlPrefix.hashCode());
488491
result = prime * result + ((xmlName == null) ? 0 : xmlName.hashCode());
489492
result = prime * result + ((xmlNamespace == null) ? 0 : xmlNamespace.hashCode());
490-
result = prime * result + ((isXmlWrapped ? 13:31));
493+
result = prime * result + ((isXmlWrapped ? 13 : 31));
491494
return result;
492495
}
493496

@@ -657,6 +660,9 @@ public boolean equals(Object obj) {
657660
if (this.isEmail != other.isEmail) {
658661
return false;
659662
}
663+
if (this.isFreeFormObject != other.isFreeFormObject) {
664+
return false;
665+
}
660666
if (this.isBinary != other.isBinary) {
661667
return false;
662668
}
@@ -724,7 +730,7 @@ public CodegenProperty clone() {
724730
if (this.mostInnerItems != null) {
725731
cp.mostInnerItems = this.mostInnerItems;
726732
}
727-
if(this.vendorExtensions != null){
733+
if (this.vendorExtensions != null) {
728734
cp.vendorExtensions = new HashMap<String, Object>(this.vendorExtensions);
729735
}
730736
return cp;
@@ -785,11 +791,12 @@ public java.lang.String toString() {
785791
", isDateTime=" + isDateTime +
786792
", isUuid=" + isUuid +
787793
", isEmail=" + isEmail +
794+
", isFreeFormObject=" + isFreeFormObject +
788795
", isListContainer=" + isListContainer +
789796
", isMapContainer=" + isMapContainer +
790797
", isEnum=" + isEnum +
791798
", isReadOnly=" + isReadOnly +
792-
", isWriteOnly=" + isWriteOnly+
799+
", isWriteOnly=" + isWriteOnly +
793800
", isNullable=" + isNullable +
794801
", _enum=" + _enum +
795802
", allowableValues=" + allowableValues +

0 commit comments

Comments
 (0)