Skip to content

Commit 03cf550

Browse files
authored
Adds dependentRequired (#13442)
* Updates codegenmodel * Updates codegenProperty * Updates codegenParameter * Updates codegenResponse * Samples regenerated
1 parent 048af8e commit 03cf550

File tree

6 files changed

+58
-6
lines changed

6 files changed

+58
-6
lines changed

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
115115
private boolean isBooleanSchemaTrue;
116116
private boolean isBooleanSchemaFalse;
117117
private String format;
118+
private LinkedHashMap<String, List<String>> dependentRequired;
118119

119120
/**
120121
* The type of the value for the additionalProperties keyword in the OAS document.
@@ -180,6 +181,16 @@ public void setAdditionalPropertiesType(String additionalPropertiesType) {
180181
this.additionalPropertiesType = additionalPropertiesType;
181182
}
182183

184+
@Override
185+
public LinkedHashMap<String, List<String>> getDependentRequired() {
186+
return dependentRequired;
187+
}
188+
189+
@Override
190+
public void setDependentRequired(LinkedHashMap<String, List<String>> dependentRequired) {
191+
this.dependentRequired = dependentRequired;
192+
}
193+
183194
@Override
184195
public boolean getIsBooleanSchemaTrue() {
185196
return isBooleanSchemaTrue;
@@ -892,8 +903,6 @@ public boolean getHasDiscriminatorWithNonEmptyMapping() {
892903
return hasDiscriminatorWithNonEmptyMapping;
893904
}
894905

895-
;
896-
897906
@Override
898907
public void setHasDiscriminatorWithNonEmptyMapping(boolean hasDiscriminatorWithNonEmptyMapping) {
899908
this.hasDiscriminatorWithNonEmptyMapping = hasDiscriminatorWithNonEmptyMapping;
@@ -998,6 +1007,7 @@ public boolean equals(Object o) {
9981007
getUniqueItems() == that.getUniqueItems() &&
9991008
getExclusiveMinimum() == that.getExclusiveMinimum() &&
10001009
getExclusiveMaximum() == that.getExclusiveMaximum() &&
1010+
Objects.equals(dependentRequired, that.getDependentRequired()) &&
10011011
Objects.equals(format, that.getFormat()) &&
10021012
Objects.equals(uniqueItemsBoolean, that.getUniqueItemsBoolean()) &&
10031013
Objects.equals(ref, that.getRef()) &&
@@ -1076,7 +1086,7 @@ hasChildren, isMap, isDeprecated, hasOnlyReadOnly, getExternalDocumentation(), g
10761086
getAdditionalPropertiesIsAnyType(), hasDiscriminatorWithNonEmptyMapping,
10771087
isAnyType, getComposedSchemas(), hasMultipleTypes, isDecimal, isUuid, requiredVarsMap, ref,
10781088
uniqueItemsBoolean, schemaIsFromAdditionalProperties, isBooleanSchemaTrue, isBooleanSchemaFalse,
1079-
format);
1089+
format, dependentRequired);
10801090
}
10811091

10821092
@Override
@@ -1180,6 +1190,7 @@ public String toString() {
11801190
sb.append(", isBooleanSchemaTrue=").append(isBooleanSchemaTrue);
11811191
sb.append(", isBooleanSchemaFalse=").append(isBooleanSchemaFalse);
11821192
sb.append(", format=").append(format);
1193+
sb.append(", dependentRequired=").append(dependentRequired);
11831194
sb.append('}');
11841195
return sb.toString();
11851196
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,16 @@ public String toString() {
440440
return sb.toString();
441441
}
442442

443+
// use schema.getDependentRequired or content.mediaType.schema.getDependentRequired instead of this
444+
@Override
445+
public LinkedHashMap<String, List<String>> getDependentRequired() {
446+
return null;
447+
}
448+
449+
// use schema.setDependentRequired or content.mediaType.schema.setDependentRequired instead of this
450+
@Override
451+
public void setDependentRequired(LinkedHashMap<String, List<String>> dependentRequired) {}
452+
443453
// use schema.getIsBooleanSchemaTrue or content.mediaType.schema.getIsBooleanSchemaTrue instead of this
444454
@Override
445455
public boolean getIsBooleanSchemaTrue() {

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,17 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
201201
private boolean isBooleanSchemaTrue;
202202
private boolean isBooleanSchemaFalse;
203203
private String format;
204+
private LinkedHashMap<String, List<String>> dependentRequired;
205+
206+
@Override
207+
public LinkedHashMap<String, List<String>> getDependentRequired() {
208+
return dependentRequired;
209+
}
210+
211+
@Override
212+
public void setDependentRequired(LinkedHashMap<String, List<String>> dependentRequired) {
213+
this.dependentRequired = dependentRequired;
214+
}
204215

205216
@Override
206217
public void setFormat(String format) { this.format = format; }
@@ -752,6 +763,9 @@ public CodegenProperty clone() {
752763
if (this.format != null) {
753764
cp.setFormat(this.format);
754765
}
766+
if (this.dependentRequired != null) {
767+
cp.setDependentRequired(this.dependentRequired);
768+
}
755769

756770
return cp;
757771
} catch (CloneNotSupportedException e) {
@@ -1051,6 +1065,7 @@ public String toString() {
10511065
sb.append(", isBooleanSchemaTrue=").append(isBooleanSchemaTrue);
10521066
sb.append(", isBooleanSchemaFalse=").append(isBooleanSchemaFalse);
10531067
sb.append(", format=").append(format);
1068+
sb.append(", dependentRequired=").append(dependentRequired);
10541069
sb.append('}');
10551070
return sb.toString();
10561071
}
@@ -1112,6 +1127,7 @@ public boolean equals(Object o) {
11121127
getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
11131128
getHasVars() == that.getHasVars() &&
11141129
getHasRequired() == that.getHasRequired() &&
1130+
Objects.equals(dependentRequired, that.getDependentRequired()) &&
11151131
Objects.equals(format, that.getFormat()) &&
11161132
Objects.equals(uniqueItemsBoolean, that.getUniqueItemsBoolean()) &&
11171133
Objects.equals(ref, that.getRef()) &&
@@ -1181,6 +1197,6 @@ public int hashCode() {
11811197
xmlNamespace, isXmlWrapped, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired,
11821198
hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, requiredVarsMap,
11831199
ref, uniqueItemsBoolean, schemaIsFromAdditionalProperties, isBooleanSchemaTrue, isBooleanSchemaFalse,
1184-
format);
1200+
format, dependentRequired);
11851201
}
11861202
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,16 @@ public boolean equals(Object o) {
189189

190190
}
191191

192+
// use content.mediaType.schema.getDependentRequired instead of this
193+
@Override
194+
public LinkedHashMap<String, List<String>> getDependentRequired() {
195+
return null;
196+
}
197+
198+
// use content.mediaType.schema.setDependentRequired instead of this
199+
@Override
200+
public void setDependentRequired(LinkedHashMap<String, List<String>> dependentRequired) {}
201+
192202
// use content.mediaType.schema.getIsBooleanSchemaTrue instead of this
193203
@Override
194204
public boolean getIsBooleanSchemaTrue() {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Arrays;
44
import java.util.Collections;
55
import java.util.HashSet;
6+
import java.util.LinkedHashMap;
67
import java.util.List;
78
import java.util.Map;
89
import java.util.Set;
@@ -14,6 +15,10 @@
1415
import org.openapitools.codegen.utils.ModelUtils;
1516

1617
public interface IJsonSchemaValidationProperties {
18+
LinkedHashMap<String, List<String>> getDependentRequired();
19+
20+
void setDependentRequired(LinkedHashMap<String, List<String>> dependentRequired);
21+
1722
String getPattern();
1823

1924
void setPattern(String pattern);

samples/server/petstore/java-undertow/src/main/java/org/openapitools/handler/PathHandlerInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,10 +539,10 @@ public interface PathHandlerInterface {
539539
* <p><b>Response headers</b>: [CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', title='null', unescapedDescription='calls per hour allowed by the user', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
540540
"type" : "integer",
541541
"format" : "int32"
542-
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=int32}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
542+
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=int32, dependentRequired=null}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
543543
"type" : "string",
544544
"format" : "date-time"
545-
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=date-time}]</p>
545+
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=date-time, dependentRequired=null}]</p>
546546
*
547547
* <p><b>Produces</b>: [{mediaType=application/xml}, {mediaType=application/json}]</p>
548548
* <p><b>Returns</b>: {@link String}</p>

0 commit comments

Comments
 (0)