From 7b651dedcdee4f2fe37419aa698b096bf49b60a0 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Thu, 28 Feb 2013 20:19:04 -0800 Subject: [PATCH] removed null guards --- .../swagger/codegen/BasicJavaGenerator.scala | 16 +++-- .../swagger/codegen/util/CoreUtils.scala | 65 ++++--------------- .../scala/ModelSerializerValidations.scala | 1 - src/test/scala/UtilsTest.scala | 30 --------- 4 files changed, 24 insertions(+), 88 deletions(-) diff --git a/src/main/scala/com/wordnik/swagger/codegen/BasicJavaGenerator.scala b/src/main/scala/com/wordnik/swagger/codegen/BasicJavaGenerator.scala index b2238baecfc..c3ecc46b797 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/BasicJavaGenerator.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/BasicJavaGenerator.scala @@ -55,15 +55,15 @@ class BasicJavaGenerator extends BasicGenerator { // location of templates override def templateDir = "Java" + // where to write generated code + override def destinationDir = "generated-code/java/src/main/java" + // template used for models modelTemplateFiles += "model.mustache" -> ".java" // template used for models apiTemplateFiles += "api.mustache" -> ".java" - // where to write generated code - override def destinationDir = "src/test/java" - override def reservedWords = Set("abstract", "continue", "for", "new", "switch", "assert", "default", "if", "package", "synchronized", "boolean", "do", "goto", "private", "this", "break", "double", "implements", "protected", "throw", "byte", "else", @@ -168,4 +168,12 @@ class BasicJavaGenerator extends BasicGenerator { throw new Exception("reserved word " + "\"" + word + "\" not allowed") else word } -} + + // supporting classes + // supporting classes + override def supportingFiles = + List( + ("apiInvoker.mustache", destinationDir + java.io.File.separator + invokerPackage.get.replaceAll("\\.", java.io.File.separator) + java.io.File.separator, "ApiInvoker.java"), + ("apiException.mustache", destinationDir + java.io.File.separator + invokerPackage.get.replaceAll("\\.", java.io.File.separator) + java.io.File.separator, "ApiException.java"), + ("pom.mustache", "generated-code/java", "pom.xml")) +} \ No newline at end of file diff --git a/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala b/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala index 281176713fe..aca7e1b1b11 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala @@ -29,7 +29,7 @@ object CoreUtils { val modelObjects = new HashMap[String, Model] apis.foreach(api => { for ((nm, model) <- extractApiModels(api)) modelObjects += nm -> model - if (api.models != null) api.models.foreach(model => modelObjects += model._1 -> model._2) + api.models.foreach(model => modelObjects += model._1 -> model._2) }) modelObjects.toMap } @@ -38,49 +38,13 @@ object CoreUtils { val modelNames = new HashSet[String] modelNames += op.responseClass // POST, PUT, DELETE body - if (op.parameters != null) { - op.parameters.filter(p => p.paramType == "body") - .foreach(p => modelNames += p.dataType) - } + op.parameters.filter(p => p.paramType == "body") + .foreach(p => modelNames += p.dataType) val baseNames = (for (modelName <- (modelNames.toList)) yield (extractBasePartFromType(modelName))).toSet baseNames.toSet } - def extractModelNames2(modelObjects: Map[String, Model], ep: Operation): Set[String] = { - val modelNames = new HashSet[String] - - modelNames += ep.responseClass - // POST, PUT, DELETE body - if (ep.parameters != null) - ep.parameters.filter(p => p.paramType == "body") - .foreach(p => modelNames += p.dataType) - - val baseNames = (for (modelName <- (modelNames.toList)) - yield (extractBasePartFromType(modelName))).toSet - - // get complex models from base - val requiredModels = modelObjects.filter(obj => baseNames.contains(obj._1)) - - val subNames = new HashSet[String] - // look inside top-level models - requiredModels.map(model => { - // add top level model - subNames += model._1 - model._2.properties.foreach(prop => { - val subObject = prop._2 - if (containers.contains(subObject.`type`)) { - subObject.items match { - case Some(item) => subNames += item.ref.getOrElse(item.`type`) - case None => - } - } - else subNames += subObject.`type` - }) - }) - subNames.toSet - } - def extractBasePartFromType(datatype: String): String = { val ComplexTypeMatcher = ".*\\[(.*)\\].*".r datatype match { @@ -93,21 +57,16 @@ object CoreUtils { val modelNames = new HashSet[String] val modelObjects = new HashMap[String, Model] // return types - if(sd.apis != null){ - sd.apis.foreach(api => { - if (api.operations != null) - api.operations.foreach(op => { - modelNames += op.responseClass - // POST, PUT, DELETE body - if(op.parameters != null) - op.parameters.filter(p => p.paramType == "body") - .foreach(p => modelNames += p.dataType) - }) + sd.apis.foreach(api => + api.operations.foreach(op => { + modelNames += op.responseClass + // POST, PUT, DELETE body + op.parameters.filter(p => p.paramType == "body") + .foreach(p => modelNames += p.dataType) }) - } - if(sd.models != null) - for ((name, m) <- sd.models) - modelObjects += name -> m + ) + for ((name, m) <- sd.models) + modelObjects += name -> m // extract all base model names, strip away Containers like List[] and primitives val baseNames = (for (modelName <- (modelNames.toList filterNot primitives.contains)) diff --git a/src/test/scala/ModelSerializerValidations.scala b/src/test/scala/ModelSerializerValidations.scala index edb19fbd804..02537f0224a 100644 --- a/src/test/scala/ModelSerializerValidations.scala +++ b/src/test/scala/ModelSerializerValidations.scala @@ -59,7 +59,6 @@ class ResourceListingValidationTest extends FlatSpec with ShouldMatchers { """ parse(jsonString).extract[ResourceListing] match { case e: ResourceListing => { - println(e) e.apis.size should be (2) } case _ => fail("didn't parse the underlying apis") diff --git a/src/test/scala/UtilsTest.scala b/src/test/scala/UtilsTest.scala index 969b72f6c5f..a0b3b1b5a53 100644 --- a/src/test/scala/UtilsTest.scala +++ b/src/test/scala/UtilsTest.scala @@ -62,33 +62,3 @@ class ApiExtractorTest extends FlatSpec with ShouldMatchers { getOrderById.errorResponses.size should be (2) } } - -@RunWith(classOf[JUnitRunner]) -class CoreUtilsTest extends FlatSpec with ShouldMatchers { - sys.props += "fileMap" -> "src/test/resources/petstore" - - behavior of "CoreUtils" - - it should "verify models are extracted" in { - val resourceListing = ResourceExtractor.fetchListing("src/test/resources/petstore/resources.json") - val apis = ApiExtractor.extractApiOperations("src/test/resources/petstore", resourceListing.apis) - - val cu = CoreUtils.extractAllModels2(apis) - cu.size should be (5) - - (cu.keys.toSet & Set("User", "Tag", "Pet", "Category", "Order")).size should be (5) - } - - it should "verify operation names" in { - val resourceListing = ResourceExtractor.fetchListing("src/test/resources/petstore/resources.json") - val apis = ApiExtractor.extractApiOperations("src/test/resources/petstore", resourceListing.apis) - - val petApi = apis.filter(api => api.resourcePath == "/pet").head - val eps = petApi.apis.map(api => (api.path, api)).toMap - val ops = eps("/pet.{format}").operations.map(ep => (ep.nickname, ep)).toMap - - ops.size should be (2) - - (ops.keys.toSet & Set("addPet", "updatePet")).size should be (2) - } -} \ No newline at end of file