From 73a2fc216e6fc392ea845deed0c35be57d6f5178 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Tue, 9 Oct 2012 17:53:07 -0700 Subject: [PATCH] added null checks --- .../swagger/codegen/BasicGenerator.scala | 12 +++++---- .../swagger/codegen/util/CoreUtils.scala | 25 +++++++++++-------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala b/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala index 1972847af7ab..7ae2ba5eddc7 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/BasicGenerator.scala @@ -109,11 +109,13 @@ abstract class BasicGenerator extends CodegenConfig with PathUtil { apiListings.foreach(apiDescription => { val basePath = apiDescription.basePath val resourcePath = apiDescription.resourcePath - apiDescription.apis.foreach(api => { - for ((apiPath, operation) <- ApiExtractor.extractApiOperations(basePath, api)) { - output += Tuple3(basePath, apiPath, operation) - } - }) + if(apiDescription.apis != null) { + apiDescription.apis.foreach(api => { + for ((apiPath, operation) <- ApiExtractor.extractApiOperations(basePath, api)) { + output += Tuple3(basePath, apiPath, operation) + } + }) + } output.map(op => processApiOperation(op._2, op._3)) allModels ++= CoreUtils.extractApiModels(apiDescription) }) 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 668d45eeb06f..f0f57043bb7f 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala @@ -98,18 +98,21 @@ object CoreUtils { val modelNames = new HashSet[String] val modelObjects = new HashMap[String, Model] // return types - 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) + 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) + }) }) - }) - for ((name, m) <- sd.models) - modelObjects += name -> m + } + if(sd.models != null) + 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 -- primitives))