removed “is, isNot, has, hasNot” vars from CodegenResponse object.

This commit is contained in:
Hugo Mercado
2017-12-09 06:56:42 -05:00
parent d140d6c83b
commit d49d82b1dc
7 changed files with 45 additions and 74 deletions

View File

@@ -235,9 +235,11 @@ public class CodegenConstants {
public static final String HAS_CHILDREN_EXT_NAME = PREFIX_HAS + "children";
public static final String HAS_ONLY_READ_ONLY_EXT_NAME = PREFIX_HAS + "only-read-only";
public static final String IS_SIMPLE_TYPE_EXT_NAME = PREFIX_IS + "simple-type";
public static final String IS_PRIMITIVE_TYPE_EXT_NAME = PREFIX_IS + "primitive-type";
public static final String IS_CONTAINER_EXT_NAME = PREFIX_IS + "container";
public static final String IS_NOT_CONTAINER_EXT_NAME = PREFIX_IS + "not-container";
public static final String IS_DEFAULT_EXT_NAME = PREFIX_IS + "default";
public static final String IS_STRING_EXT_NAME = PREFIX_IS + "string";
public static final String IS_NUMERIC_EXT_NAME = PREFIX_IS + "numeric";
public static final String IS_INTEGER_EXT_NAME = PREFIX_IS + "integer";
@@ -287,5 +289,6 @@ public class CodegenConstants {
public static final String HAS_OPTIONAL_PARAMS_EXT_NAME = PREFIX_HAS + "optional-params";
public static final String HAS_REQUIRED_PARAMS_EXT_NAME = PREFIX_HAS + "required-params";
public static final String HAS_REFERENCE_EXT_NAME = PREFIX_HAS + "reference";
public static final String HAS_HEADERS_EXT_NAME = PREFIX_HAS + "headers";
}

View File

@@ -1,27 +1,18 @@
package io.swagger.codegen;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CodegenResponse implements VendorExtendable {
public final List<CodegenProperty> headers = new ArrayList<CodegenProperty>();
public String code, message;
public boolean hasMore;
public List<Map<String, Object>> examples;
public String dataType, baseType, containerType;
public boolean hasHeaders;
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBoolean, isDate, isDateTime, isUuid;
public boolean isDefault;
public boolean simpleType;
public boolean primitiveType;
public boolean isMapContainer;
public boolean isListContainer;
public boolean isBinary = false;
public boolean isFile = false;
public Object schema;
public String jsonSchema;
public Map<String, Object> vendorExtensions;
public Map<String, Object> vendorExtensions = new HashMap<>();
public boolean isWildcard() {
return "0".equals(code) || "default".equals(code);
@@ -45,8 +36,6 @@ public class CodegenResponse implements VendorExtendable {
return false;
if (message != null ? !message.equals(that.message) : that.message != null)
return false;
if (hasMore != that.hasMore)
return false;
if (examples != null ? !examples.equals(that.examples) : that.examples != null)
return false;
if (dataType != null ? !dataType.equals(that.dataType) : that.dataType != null)
@@ -55,22 +44,6 @@ public class CodegenResponse implements VendorExtendable {
return false;
if (containerType != null ? !containerType.equals(that.containerType) : that.containerType != null)
return false;
if (isDefault != that.isDefault)
return false;
if (simpleType != that.simpleType)
return false;
if (primitiveType != that.primitiveType)
return false;
if (isMapContainer != that.isMapContainer)
return false;
if (isListContainer != that.isListContainer)
return false;
if (isBinary != that.isBinary)
return false;
if (isFile != that.isFile)
return false;
if (isNumeric != that.isNumeric)
return false;
if (schema != null ? !schema.equals(that.schema) : that.schema != null)
return false;
if (vendorExtensions != null ? !vendorExtensions.equals(that.vendorExtensions) : that.vendorExtensions != null)
@@ -83,19 +56,10 @@ public class CodegenResponse implements VendorExtendable {
int result = headers.hashCode();
result = 31 * result + (code != null ? code.hashCode() : 0);
result = 31 * result + (message != null ? message.hashCode() : 0);
result = 31 * result + (hasMore ? 13:31);
result = 31 * result + (examples != null ? examples.hashCode() : 0);
result = 31 * result + (dataType != null ? dataType.hashCode() : 0);
result = 31 * result + (baseType != null ? baseType.hashCode() : 0);
result = 31 * result + (containerType != null ? containerType.hashCode() : 0);
result = 31 * result + (isDefault ? 13:31);
result = 31 * result + (isNumeric ? 13:31);
result = 31 * result + (simpleType ? 13:31);
result = 31 * result + (primitiveType ? 13:31);
result = 31 * result + (isMapContainer ? 13:31);
result = 31 * result + (isListContainer ? 13:31);
result = 31 * result + (isBinary ? 13:31);
result = 31 * result + (isFile ? 13:31);
result = 31 * result + (schema != null ? schema.hashCode() : 0);
result = 31 * result + (jsonSchema != null ? jsonSchema.hashCode() : 0);
result = 31 * result + (vendorExtensions != null ? vendorExtensions.hashCode() : 0);

View File

@@ -1810,20 +1810,20 @@ public class DefaultCodegen implements CodegenConfig {
addProducesInfo(response, codegenOperation);
CodegenResponse codegenResponse = fromResponse(key, response);
codegenResponse.hasMore = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.HAS_MORE_EXT_NAME, Boolean.TRUE);
if (codegenResponse.baseType != null && !defaultIncludes.contains(codegenResponse.baseType) && !languageSpecificPrimitives.contains(codegenResponse.baseType)) {
imports.add(codegenResponse.baseType);
}
codegenResponse.isDefault = response == methodResponse;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_DEFAULT_EXT_NAME, response == methodResponse);
codegenOperation.responses.add(codegenResponse);
if (Boolean.TRUE.equals(codegenResponse.isBinary) && Boolean.TRUE.equals(codegenResponse.isDefault)){
if (getBooleanValue(codegenResponse, CodegenConstants.IS_BINARY_EXT_NAME) && getBooleanValue(codegenResponse, CodegenConstants.IS_DEFAULT_EXT_NAME)) {
codegenOperation.getVendorExtensions().put(CodegenConstants.IS_RESPONSE_BINARY_EXT_NAME, Boolean.TRUE);
}
if (Boolean.TRUE.equals(codegenResponse.isFile) && Boolean.TRUE.equals(codegenResponse.isDefault)){
if (getBooleanValue(codegenResponse, CodegenConstants.IS_FILE_EXT_NAME) && getBooleanValue(codegenResponse, CodegenConstants.IS_DEFAULT_EXT_NAME)) {
codegenOperation.getVendorExtensions().put(CodegenConstants.IS_RESPONSE_FILE_EXT_NAME, Boolean.TRUE);
}
}
codegenOperation.responses.get(codegenOperation.responses.size() - 1).hasMore = false;
codegenOperation.responses.get(codegenOperation.responses.size() - 1).getVendorExtensions().put(CodegenConstants.HAS_MORE_EXT_NAME, Boolean.FALSE);
if (methodResponse != null) {
final Schema responseSchema = getSchemaFromResponse(methodResponse);
@@ -2009,9 +2009,11 @@ public class DefaultCodegen implements CodegenConfig {
codegenResponse.message = escapeText(response.getDescription());
// TODO: codegenResponse.examples = toExamples(response.getExamples());
codegenResponse.jsonSchema = Json.pretty(response);
codegenResponse.vendorExtensions = response.getExtensions();
if (response.getExtensions() != null && !response.getExtensions().isEmpty()) {
codegenResponse.vendorExtensions.putAll(response.getExtensions());
}
addHeaders(response, codegenResponse.headers);
codegenResponse.hasHeaders = !codegenResponse.headers.isEmpty();
codegenResponse.getVendorExtensions().put(CodegenConstants.HAS_HEADERS_EXT_NAME, !codegenResponse.headers.isEmpty());
if (responseSchema != null) {
CodegenProperty codegenProperty = fromProperty("response", responseSchema);
@@ -2030,52 +2032,54 @@ public class DefaultCodegen implements CodegenConfig {
codegenResponse.dataType = codegenProperty.datatype;
if (getBooleanValue(codegenProperty, CodegenConstants.IS_STRING_EXT_NAME)) {
codegenResponse.isString = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_STRING_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_BOOLEAN_EXT_NAME)) {
codegenResponse.isBoolean = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_BOOLEAN_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_LONG_EXT_NAME)) {
codegenResponse.isLong = true;
codegenResponse.isNumeric = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_LONG_EXT_NAME, Boolean.TRUE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_NUMERIC_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_INTEGER_EXT_NAME)) {
codegenResponse.isInteger = true;
codegenResponse.isNumeric = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_INTEGER_EXT_NAME, Boolean.TRUE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_NUMERIC_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_DOUBLE_EXT_NAME)) {
codegenResponse.isDouble = true;
codegenResponse.isNumeric = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_DOUBLE_EXT_NAME, Boolean.TRUE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_NUMERIC_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_FLOAT_EXT_NAME)) {
codegenResponse.isFloat = true;
codegenResponse.isNumeric = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_FLOAT_EXT_NAME, Boolean.TRUE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_NUMERIC_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_BYTE_ARRAY_EXT_NAME)) {
codegenResponse.isByteArray = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_BYTE_ARRAY_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_BINARY_EXT_NAME)) {
codegenResponse.isBinary = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_BINARY_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_FILE_EXT_NAME)) {
codegenResponse.isFile = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_FILE_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_DATE_EXT_NAME)) {
codegenResponse.isDate = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_DATE_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_DATE_TIME_EXT_NAME)) {
codegenResponse.isDateTime = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_DATE_TIME_EXT_NAME, Boolean.TRUE);
} else if (getBooleanValue(codegenProperty, CodegenConstants.IS_UUID_EXT_NAME)) {
codegenResponse.isUuid = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_UUID_EXT_NAME, Boolean.TRUE);
} else {
LOGGER.debug("Property type is not primitive: " + codegenProperty.datatype);
}
if (getBooleanValue(codegenProperty, CodegenConstants.IS_CONTAINER_EXT_NAME)) {
codegenResponse.simpleType = false;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_SIMPLE_TYPE_EXT_NAME, Boolean.FALSE);
codegenResponse.containerType = codegenProperty.containerType;
codegenResponse.isMapContainer = "map".equals(codegenProperty.containerType);
codegenResponse.isListContainer = "list".equalsIgnoreCase(codegenProperty.containerType) || "array".equalsIgnoreCase(codegenProperty.containerType);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_MAP_CONTAINER_EXT_NAME, "map".equals(codegenProperty.containerType));
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_LIST_CONTAINER_EXT_NAME,
"list".equalsIgnoreCase(codegenProperty.containerType) || "array".equalsIgnoreCase(codegenProperty.containerType));
} else {
codegenResponse.simpleType = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_SIMPLE_TYPE_EXT_NAME, Boolean.TRUE);
}
codegenResponse.primitiveType = (codegenResponse.baseType == null || languageSpecificPrimitives().contains(codegenResponse.baseType));
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_PRIMITIVE_TYPE_EXT_NAME,
(codegenResponse.baseType == null || languageSpecificPrimitives().contains(codegenResponse.baseType)));
}
if (codegenResponse.baseType == null) {
codegenResponse.isMapContainer = false;
codegenResponse.isListContainer = false;
codegenResponse.primitiveType = true;
codegenResponse.simpleType = true;
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_MAP_CONTAINER_EXT_NAME, Boolean.FALSE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_LIST_CONTAINER_EXT_NAME, Boolean.FALSE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_PRIMITIVE_TYPE_EXT_NAME, Boolean.TRUE);
codegenResponse.getVendorExtensions().put(CodegenConstants.IS_SIMPLE_TYPE_EXT_NAME, Boolean.TRUE);
}
return codegenResponse;
}

View File

@@ -339,7 +339,7 @@ public class ObjcModelTest {
Assert.assertEquals(op.returnType, "NSData*");
Assert.assertEquals(op.bodyParam.dataType, "NSData*");
Assert.assertTrue(getBooleanValue(op.bodyParam, CodegenConstants.IS_BINARY_EXT_NAME));
Assert.assertTrue(op.responses.get(0).isBinary);
Assert.assertTrue(getBooleanValue(op.responses.get(0), CodegenConstants.IS_BINARY_EXT_NAME));
}
@Test(description = "create proper imports per #316")

View File

@@ -68,7 +68,7 @@ public class SwiftCodegenTest {
Assert.assertEquals(op.returnType, "NSData");
Assert.assertEquals(op.bodyParam.dataType, "NSData");
Assert.assertTrue(getBooleanValue(op.bodyParam, CodegenConstants.IS_BINARY_EXT_NAME));
Assert.assertTrue(op.responses.get(0).isBinary);
Assert.assertTrue(getBooleanValue(op.responses.get(0), CodegenConstants.IS_BINARY_EXT_NAME));
}
@Test(description = "returns ISOFullDate when response format is date")

View File

@@ -85,7 +85,7 @@ public class Swift3CodegenTest {
Assert.assertEquals(op.returnType, "Data");
Assert.assertEquals(op.bodyParam.dataType, "Data");
Assert.assertTrue(getBooleanValue(op.bodyParam, CodegenConstants.IS_BINARY_EXT_NAME));
Assert.assertTrue(op.responses.get(0).isBinary);
Assert.assertTrue(getBooleanValue(op.responses.get(0), CodegenConstants.IS_BINARY_EXT_NAME));
}
@Test(description = "returns ISOFullDate when response format is date")

View File

@@ -87,7 +87,7 @@ public class Swift4CodegenTest {
Assert.assertEquals(op.returnType, "Data");
Assert.assertEquals(op.bodyParam.dataType, "Data");
Assert.assertTrue(getBooleanValue(op.bodyParam, CodegenConstants.IS_BINARY_EXT_NAME));
Assert.assertTrue(op.responses.get(0).isBinary);
Assert.assertTrue(getBooleanValue(op.responses.get(0), CodegenConstants.IS_BINARY_EXT_NAME));
}
@Test(description = "returns Date when response format is date")