mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-03 06:00:52 +00:00
removed null guards
This commit is contained in:
parent
a6af380833
commit
7b651dedcd
@ -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"))
|
||||
}
|
@ -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)
|
||||
}
|
||||
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,19 +57,14 @@ 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)
|
||||
sd.apis.foreach(api =>
|
||||
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.models != null)
|
||||
)
|
||||
for ((name, m) <- sd.models)
|
||||
modelObjects += name -> m
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user