From ee096569c4da05dbb01f5be4996583567796a143 Mon Sep 17 00:00:00 2001 From: MerkushevKirill Date: Tue, 24 Mar 2015 00:26:49 +0300 Subject: [PATCH] rft - only codestyle with indents, remove wildcard imports and use string-utils from apache --- .../swagger/codegen/DefaultGenerator.java | 250 ++++++++++-------- 1 file changed, 135 insertions(+), 115 deletions(-) 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 3552e066c680..cb0bc5e6523b 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 @@ -1,15 +1,30 @@ package com.wordnik.swagger.codegen; -import com.wordnik.swagger.models.*; +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; +import com.wordnik.swagger.models.Contact; +import com.wordnik.swagger.models.Info; +import com.wordnik.swagger.models.License; +import com.wordnik.swagger.models.Model; +import com.wordnik.swagger.models.Operation; +import com.wordnik.swagger.models.Path; +import com.wordnik.swagger.models.Swagger; import com.wordnik.swagger.models.auth.SecuritySchemeDefinition; -import com.wordnik.swagger.util.*; -import com.samskivert.mustache.*; - +import com.wordnik.swagger.util.Json; import org.apache.commons.io.FileUtils; -import java.util.*; -import java.util.regex.*; -import java.io.*; +import java.io.File; +import java.io.Reader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.apache.commons.lang3.StringUtils.capitalize; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; public class DefaultGenerator extends AbstractGenerator implements Generator { protected CodegenConfig config; @@ -20,64 +35,71 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { this.opts = opts; this.swagger = opts.getSwagger(); - ClientOpts clientOpts = opts.getOpts(); this.config = opts.getConfig(); - this.config.additionalProperties().putAll(clientOpts.getProperties()); + this.config.additionalProperties().putAll(opts.getOpts().getProperties()); return this; } public List generate() { - if(swagger == null || config == null) { + if (swagger == null || config == null) { throw new RuntimeException("missing swagger input or config!"); } - if(System.getProperty("debugSwagger") != null) { + if (System.getProperty("debugSwagger") != null) { Json.prettyPrint(swagger); } List files = new ArrayList(); try { config.processOpts(); - if(swagger.getInfo() != null) { + if (swagger.getInfo() != null) { Info info = swagger.getInfo(); - if(info.getTitle() != null) + if (info.getTitle() != null) { config.additionalProperties().put("appName", info.getTitle()); - if(info.getVersion() != null) + } + if (info.getVersion() != null) { config.additionalProperties().put("appVersion", info.getVersion()); - if(info.getDescription() != null) + } + if (info.getDescription() != null) { config.additionalProperties().put("appDescription", info.getDescription()); - if(info.getContact() != null) { + } + if (info.getContact() != null) { Contact contact = info.getContact(); config.additionalProperties().put("infoUrl", contact.getUrl()); - if(contact.getEmail() != null) + if (contact.getEmail() != null) { config.additionalProperties().put("infoEmail", contact.getEmail()); + } } - if(info.getLicense() != null) { + if (info.getLicense() != null) { License license = info.getLicense(); - if(license.getName() != null) + if (license.getName() != null) { config.additionalProperties().put("licenseInfo", license.getName()); - if(license.getUrl() != null) + } + if (license.getUrl() != null) { config.additionalProperties().put("licenseUrl", license.getUrl()); + } } - if(info.getVersion() != null) { + if (info.getVersion() != null) { config.additionalProperties().put("version", info.getVersion()); } } StringBuilder hostBuilder = new StringBuilder(); - if(swagger.getSchemes() != null && swagger.getSchemes().size() > 0) { + if (swagger.getSchemes() != null && swagger.getSchemes().size() > 0) { hostBuilder.append(swagger.getSchemes().get(0).toValue()); hostBuilder.append("://"); - } - else + } else { hostBuilder.append("https://"); - if(swagger.getHost() != null) + } + if (swagger.getHost() != null) { hostBuilder.append(swagger.getHost()); - else + } else { hostBuilder.append("localhost"); - if(swagger.getBasePath() != null) + } + if (swagger.getBasePath() != null) { hostBuilder.append(swagger.getBasePath()); - else + } else { hostBuilder.append("/"); + } String contextPath = swagger.getBasePath() == null ? "/" : swagger.getBasePath(); String basePath = hostBuilder.toString(); @@ -87,41 +109,41 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { // models Map definitions = swagger.getDefinitions(); - if(definitions != null) { - for(String name: definitions.keySet()) { + if (definitions != null) { + for (String name : definitions.keySet()) { Model model = definitions.get(name); Map modelMap = new HashMap(); modelMap.put(name, model); Map models = processModels(config, modelMap); models.putAll(config.additionalProperties()); - allModels.add(((List)models.get("models")).get(0)); + allModels.add(((List) models.get("models")).get(0)); - for(String templateName : config.modelTemplateFiles().keySet()) { + for (String templateName : config.modelTemplateFiles().keySet()) { String suffix = config.modelTemplateFiles().get(templateName); String filename = config.modelFileFolder() + File.separator + config.toModelFilename(name) + suffix; String template = readTemplate(config.templateDir() + File.separator + templateName); Template tmpl = Mustache.compiler() - .withLoader(new Mustache.TemplateLoader() { - public Reader getTemplate (String name) { - return getTemplateReader(config.templateDir() + File.separator + name + ".mustache"); - }; - }) - .defaultValue("") - .compile(template); + .withLoader(new Mustache.TemplateLoader() { + public Reader getTemplate(String name) { + return getTemplateReader(config.templateDir() + File.separator + name + ".mustache"); + } + }) + .defaultValue("") + .compile(template); writeToFile(filename, tmpl.execute(models)); files.add(new File(filename)); } } } - if(System.getProperty("debugModels") != null) { + if (System.getProperty("debugModels") != null) { System.out.println("############ Model info ############"); Json.prettyPrint(allModels); } // apis Map> paths = processPaths(swagger.getPaths()); - for(String tag : paths.keySet()) { + for (String tag : paths.keySet()) { List ops = paths.get(tag); Map operation = processOperations(config, tag, ops); operation.put("basePath", basePath); @@ -131,36 +153,37 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { operation.putAll(config.additionalProperties()); operation.put("classname", config.toApiName(tag)); operation.put("classVarName", config.toApiVarName(tag)); - + allOperations.add(new HashMap(operation)); - for(int i = 0; i < allOperations.size(); i++) { + for (int i = 0; i < allOperations.size(); i++) { Map oo = (Map) allOperations.get(i); - if(i < (allOperations.size() -1)) + if (i < (allOperations.size() - 1)) { oo.put("hasMore", "true"); + } } - for(String templateName : config.apiTemplateFiles().keySet()) { + for (String templateName : config.apiTemplateFiles().keySet()) { String suffix = config.apiTemplateFiles().get(templateName); String filename = config.apiFileFolder() + - File.separator + - config.toApiFilename(tag) + - suffix; + File.separator + + config.toApiFilename(tag) + + suffix; String template = readTemplate(config.templateDir() + File.separator + templateName); Template tmpl = Mustache.compiler() - .withLoader(new Mustache.TemplateLoader() { - public Reader getTemplate (String name) { - return getTemplateReader(config.templateDir() + File.separator + name + ".mustache"); - }; - }) - .defaultValue("") - .compile(template); + .withLoader(new Mustache.TemplateLoader() { + public Reader getTemplate(String name) { + return getTemplateReader(config.templateDir() + File.separator + name + ".mustache"); + } + }) + .defaultValue("") + .compile(template); writeToFile(filename, tmpl.execute(operation)); files.add(new File(filename)); } } - if(System.getProperty("debugOperations") != null) { + if (System.getProperty("debugOperations") != null) { System.out.println("############ Operation info ############"); Json.prettyPrint(allOperations); } @@ -172,7 +195,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { Map apis = new HashMap(); apis.put("apis", allOperations); - if(swagger.getHost() != null) { + if (swagger.getHost() != null) { bundle.put("host", swagger.getHost()); } bundle.put("basePath", basePath); @@ -184,7 +207,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { if (swagger.getExternalDocs() != null) { bundle.put("externalDocs", swagger.getExternalDocs()); } - for(int i = 0; i < allModels.size() - 1; i++) { + for (int i = 0; i < allModels.size() - 1; i++) { HashMap cm = (HashMap) allModels.get(i); CodegenModel m = cm.get("model"); m.hasMoreModels = true; @@ -192,35 +215,36 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { config.postProcessSupportingFileData(bundle); - if(System.getProperty("debugSupportingFiles") != null) { + if (System.getProperty("debugSupportingFiles") != null) { System.out.println("############ Supporting file info ############"); Json.prettyPrint(bundle); } - for(SupportingFile support : config.supportingFiles()) { + for (SupportingFile support : config.supportingFiles()) { String outputFolder = config.outputFolder(); - if(support.folder != null && !"".equals(support.folder)) + if (isNotEmpty(support.folder)) { outputFolder += File.separator + support.folder; + } File of = new File(outputFolder); - if(!of.isDirectory()) + if (!of.isDirectory()) { of.mkdirs(); + } String outputFilename = outputFolder + File.separator + support.destinationFilename; - if(support.templateFile.endsWith("mustache")) { + if (support.templateFile.endsWith("mustache")) { String template = readTemplate(config.templateDir() + File.separator + support.templateFile); Template tmpl = Mustache.compiler() - .withLoader(new Mustache.TemplateLoader() { - public Reader getTemplate (String name) { - return getTemplateReader(config.templateDir() + File.separator + name + ".mustache"); - }; - }) - .defaultValue("") - .compile(template); + .withLoader(new Mustache.TemplateLoader() { + public Reader getTemplate(String name) { + return getTemplateReader(config.templateDir() + File.separator + name + ".mustache"); + } + }) + .defaultValue("") + .compile(template); writeToFile(outputFilename, tmpl.execute(bundle)); files.add(new File(outputFilename)); - } - else { + } else { String template = readTemplate(config.templateDir() + File.separator + support.templateFile); FileUtils.writeStringToFile(new File(outputFilename), template); System.out.println("copying file to " + outputFilename); @@ -229,8 +253,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { } config.processSwagger(swagger); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } return files; @@ -238,9 +261,8 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { public Map> processPaths(Map paths) { Map> ops = new HashMap>(); - List tags = null; - for(String resourcePath : paths.keySet()) { + for (String resourcePath : paths.keySet()) { Path path = paths.get(resourcePath); processOperation(resourcePath, "get", path.getGet(), ops); processOperation(resourcePath, "put", path.getPut(), ops); @@ -254,18 +276,15 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { public SecuritySchemeDefinition fromSecurity(String name) { Map map = swagger.getSecurityDefinitions(); - if(map == null) + if (map == null) { return null; - SecuritySchemeDefinition scheme = map.get(name); - if(scheme == null) - return null; - return scheme; + } + return map.get(name); } - public void processOperation(String resourcePath, String httpMethod, Operation operation, Map> operations) { - if(operation != null) { + if (operation != null) { List tags = operation.getTags(); if (tags == null) { tags = new ArrayList(); @@ -279,20 +298,22 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { config.addOperationToGroup(sanitizeTag(tag), resourcePath, operation, co, operations); List>> securities = operation.getSecurity(); - if(securities == null) + if (securities == null) { continue; + } Map authMethods = new HashMap(); for (Map> security : securities) { if (security.size() != 1) { //Not sure what to do continue; } - String securityName = security.keySet().iterator().next(); + String securityName = security.keySet().iterator().next(); SecuritySchemeDefinition securityDefinition = fromSecurity(securityName); - if(securityDefinition != null) + if (securityDefinition != null) { authMethods.put(securityName, securityDefinition); + } } - if(!authMethods.isEmpty()) { + if (!authMethods.isEmpty()) { co.authMethods = config.fromSecurity(authMethods); } } @@ -301,13 +322,11 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { protected String sanitizeTag(String tag) { // remove spaces and make strong case - String [] parts = tag.split(" "); - StringBuffer buf = new StringBuffer(); - for(String part: parts) { - if(!"".equals(part)) { - buf.append(Character.toUpperCase(part.charAt(0))); - if(part.length() > 1) - buf.append(part.substring(1)); + String[] parts = tag.split(" "); + StringBuilder buf = new StringBuilder(); + for (String part : parts) { + if (isNotEmpty(part)) { + buf.append(capitalize(part)); } } return buf.toString().replaceAll("[^a-zA-Z ]", ""); @@ -322,30 +341,31 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { operations.put("package", config.apiPackage()); Set allImports = new LinkedHashSet(); - for(CodegenOperation op: ops) { + for (CodegenOperation op : ops) { allImports.addAll(op.imports); } List> imports = new ArrayList>(); - for(String i: allImports) { + for (String nextImport : allImports) { Map im = new LinkedHashMap(); - String m = config.importMapping().get(i); - if(m == null) - m = config.toModelImport(i); - if(m != null) { - im.put("import", m); + String mapping = config.importMapping().get(nextImport); + if (mapping == null) { + mapping = config.toModelImport(nextImport); + } + if (mapping != null) { + im.put("import", mapping); imports.add(im); } } operations.put("imports", imports); config.postProcessOperations(operations); - if(objs.size() > 0) { + if (objs.size() > 0) { List os = (List) objs.get("operation"); - if(os != null && os.size() > 0) { + if (os != null && os.size() > 0) { CodegenOperation op = os.get(os.size() - 1); - op.hasMore = null; + op.hasMore = null; } } return operations; @@ -355,9 +375,8 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { Map objs = new HashMap(); objs.put("package", config.modelPackage()); List models = new ArrayList(); - List model = new ArrayList(); Set allImports = new LinkedHashSet(); - for(String key: definitions.keySet()) { + for (String key : definitions.keySet()) { Model mm = definitions.get(key); CodegenModel cm = config.fromModel(key, mm); Map mo = new HashMap(); @@ -368,19 +387,20 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { objs.put("models", models); List> imports = new ArrayList>(); - for(String i: allImports) { + for (String nextImport : allImports) { Map im = new LinkedHashMap(); - String m = config.importMapping().get(i); - if(m == null) - m = config.toModelImport(i); - if(m != null && !config.defaultIncludes().contains(m)) { - im.put("import", m); + String mapping = config.importMapping().get(nextImport); + if (mapping == null) { + mapping = config.toModelImport(nextImport); + } + if (mapping != null && !config.defaultIncludes().contains(mapping)) { + im.put("import", mapping); imports.add(im); } // add instantiation types - m = config.instantiationTypes().get(i); - if(m != null && !config.defaultIncludes().contains(m)) { - im.put("import", m); + mapping = config.instantiationTypes().get(nextImport); + if (mapping != null && !config.defaultIncludes().contains(mapping)) { + im.put("import", mapping); imports.add(im); } }