diff --git a/src/main/java/com/phoenixnap/oss/ramlplugin/raml2code/plugin/SpringMvcEndpointGeneratorMojo.java b/src/main/java/com/phoenixnap/oss/ramlplugin/raml2code/plugin/SpringMvcEndpointGeneratorMojo.java index 711ef8a3..f3dc162b 100644 --- a/src/main/java/com/phoenixnap/oss/ramlplugin/raml2code/plugin/SpringMvcEndpointGeneratorMojo.java +++ b/src/main/java/com/phoenixnap/oss/ramlplugin/raml2code/plugin/SpringMvcEndpointGeneratorMojo.java @@ -48,6 +48,7 @@ import com.phoenixnap.oss.ramlplugin.raml2code.helpers.NamingHelper; import com.phoenixnap.oss.ramlplugin.raml2code.helpers.RamlParser; import com.phoenixnap.oss.ramlplugin.raml2code.helpers.RamlTypeHelper; +import com.phoenixnap.oss.ramlplugin.raml2code.helpers.SchemaHelper; import com.phoenixnap.oss.ramlplugin.raml2code.raml.RamlDataType; import com.phoenixnap.oss.ramlplugin.raml2code.raml.RamlRoot; import com.phoenixnap.oss.ramlplugin.raml2code.raml.raml10.RJP10V2RamlRoot; @@ -266,8 +267,10 @@ protected void generateEndpoints() throws IOException { throw new IOException("Could not create directory:" + rootDir.getAbsolutePath()); } - generateCode(codeModel, controllers, rootDir); - generateUnreferencedSchemasV10(codeModel, loadRamlFromFile, rootDir, controllers); + generateCode(null, controllers, rootDir); + if (this.generateUnreferencedSchemas) { + generateUnreferencedObjects(codeModel, loadRamlFromFile, resolvedRamlPath, rootDir, controllers); + } if (unifiedModel) { buildCodeModelToDisk(codeModel, "Unified", rootDir); @@ -293,18 +296,27 @@ private Set getAllReferencedTypeNames(Set controlle return bodyNames; } - private void generateUnreferencedSchemasV10(JCodeModel codeModel, RamlRoot loadRamlFromFile, File rootDir, + private void generateUnreferencedObjects(JCodeModel codeModel, RamlRoot loadRamlFromFile, String resolvedRamlPath, File rootDir, Set controllers) { - if (this.generateUnreferencedSchemas) { + if (loadRamlFromFile.getTypes() != null && !loadRamlFromFile.getTypes().isEmpty()) { this.getLog().debug("Generating Code for Unreferenced Types"); - if (loadRamlFromFile.getTypes() != null && !loadRamlFromFile.getTypes().isEmpty()) { - Set allReferencedTypes = getAllReferencedTypeNames(controllers); - for (Map.Entry type : loadRamlFromFile.getTypes().entrySet()) { - if (!allReferencedTypes.contains(type.getKey())) { - ApiBodyMetadata tempBodyMetadata = RamlTypeHelper.mapTypeToPojo(codeModel, loadRamlFromFile, - type.getValue().getType()); - generateModelSources(codeModel, tempBodyMetadata, rootDir); - } + Set allReferencedTypes = getAllReferencedTypeNames(controllers); + for (Map.Entry type : loadRamlFromFile.getTypes().entrySet()) { + if (!allReferencedTypes.contains(type.getKey())) { + ApiBodyMetadata tempBodyMetadata = RamlTypeHelper.mapTypeToPojo(codeModel, loadRamlFromFile, type.getValue().getType()); + generateModelSources(codeModel, tempBodyMetadata, rootDir); + } + } + } + + if (loadRamlFromFile.getSchemas() != null && !loadRamlFromFile.getSchemas().isEmpty()) { + this.getLog().debug("Generating Code for Unreferenced Schemas"); + for (Map map : loadRamlFromFile.getSchemas()) { + for (String schemaName : map.keySet()) { + this.getLog().info("Generating POJO for unreferenced schema " + schemaName); + ApiBodyMetadata tempBodyMetadata = SchemaHelper.mapSchemaToPojo(loadRamlFromFile, schemaName, resolvedRamlPath, + schemaName, this.resolvedSchemaLocation); + generateModelSources(null, tempBodyMetadata, rootDir); } } }