From 3b501f4134f840cf27715c3c7761fe0f0e28342e Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Sun, 15 Feb 2015 22:05:45 -0800 Subject: [PATCH] added better enum support --- .../com/wordnik/swagger/codegen/CodegenProperty.java | 2 +- .../com/wordnik/swagger/codegen/DefaultCodegen.java | 11 ++++++++--- .../com/wordnik/swagger/codegen/DefaultGenerator.java | 8 ++++---- .../swagger/codegen/languages/PhpClientCodegen.java | 1 + 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenProperty.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenProperty.java index cda9ab714d4..c5ea8a0da4d 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenProperty.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenProperty.java @@ -3,7 +3,7 @@ package com.wordnik.swagger.codegen; import java.util.*; public class CodegenProperty { - public String baseName, complexType, getter, setter, description, datatype, + public String baseName, complexType, getter, setter, description, datatype, datatypeWithEnum, name, min, max, defaultValue, baseType, containerType; /** maxLength validation for strings, see http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.2.1 */ diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 3d53c17f54e..412bf56688c 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -480,9 +480,14 @@ public class DefaultCodegen { } } - property.datatype = property.isEnum - ? StringUtils.capitalize(property.name) + "Enum" - : getTypeDeclaration(p); + property.datatype = getTypeDeclaration(p); + + // this can cause issues for clients which don't support enums + if(property.isEnum) + property.datatypeWithEnum = StringUtils.capitalize(property.name) + "Enum"; + else + property.datatypeWithEnum = property.datatype; + property.baseType = getSwaggerType(p); if(p instanceof ArrayProperty) { diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java index bbc2792bf06..1a107463d7c 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java @@ -317,14 +317,14 @@ public Map processOperations(CodegenConfig config, String tag, L operations.put("operations", objs); operations.put("package", config.apiPackage()); - Set allImports = new HashSet(); + Set allImports = new LinkedHashSet(); for(CodegenOperation op: ops) { allImports.addAll(op.imports); } List> imports = new ArrayList>(); for(String i: allImports) { - Map im = new HashMap(); + Map im = new LinkedHashMap(); String m = config.importMapping().get(i); if(m == null) m = config.toModelImport(i); @@ -344,7 +344,7 @@ public Map processOperations(CodegenConfig config, String tag, L objs.put("package", config.modelPackage()); List models = new ArrayList(); List model = new ArrayList(); - Set allImports = new HashSet(); + Set allImports = new LinkedHashSet(); for(String key: definitions.keySet()) { Model mm = definitions.get(key); CodegenModel cm = config.fromModel(key, mm); @@ -357,7 +357,7 @@ public Map processOperations(CodegenConfig config, String tag, L List> imports = new ArrayList>(); for(String i: allImports) { - Map im = new HashMap(); + Map im = new LinkedHashMap(); String m = config.importMapping().get(i); if(m == null) m = config.toModelImport(i); diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PhpClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PhpClientCodegen.java index f27044c2db7..027d66f1aa1 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PhpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PhpClientCodegen.java @@ -24,6 +24,7 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { public PhpClientCodegen() { super(); + modelPackage = "models"; outputFolder = "generated-code/php"; modelTemplateFiles.put("model.mustache", ".php"); apiTemplateFiles.put("api.mustache", ".php");