Fix sonar issues + merge
[aai/schema-service.git] / aai-schema-gen / src / main / java / org / onap / aai / schemagen / GenerateXsd.java
index 227df63..a85ecac 100644 (file)
@@ -20,6 +20,7 @@
 package org.onap.aai.schemagen;
 
 
+import java.nio.charset.StandardCharsets;
 import org.onap.aai.setup.SchemaVersion;
 import org.onap.aai.setup.SchemaVersions;
 import org.onap.aai.schemagen.genxsd.HTMLfromOXM;
@@ -58,7 +59,7 @@ public class GenerateXsd {
        static Map<String,String> javaTypeDefinitions = createJavaTypeDefinitions();
     private static Map<String, String> createJavaTypeDefinitions()
     {
-       StringBuffer aaiInternal = new StringBuffer();
+        StringBuilder aaiInternal = new StringBuilder();
        Map<String,String> javaTypeDefinitions = new HashMap<String, String>();
        aaiInternal.append("  aai-internal:\n");
        aaiInternal.append("    properties:\n");
@@ -75,25 +76,29 @@ public class GenerateXsd {
        public static final int VALUE_INDEXED_PROPS = 2;
        public static final int VALUE_CONTAINER = 3;
 
-       private static final String generateTypeXSD = "xsd";
-       private static final String generateTypeYAML = "yaml";
+       private static final String GENERATE_TYPE_XSD = "xsd";
+       private static final String GENERATE_TYPE_YAML = "yaml";
 
-       private final static String nodeDir = System.getProperty("nodes.configuration.location");
-       private final static String edgeDir = System.getProperty("edges.configuration.location");
-       private static final String baseRoot = "aai-schema/";
-       private static final String baseAutoGenRoot = "aai-schema/";
+       private final static String NODE_DIR = System.getProperty("nodes.configuration.location");
+       private final static String EDGE_DIR = System.getProperty("edges.configuration.location");
+       private static final String BASE_ROOT = "aai-schema/";
+       private static final String BASE_AUTO_GEN_ROOT = "aai-schema/";
 
-       private static final String root = baseRoot + "src/main/resources";
-       private static final String autoGenRoot = baseAutoGenRoot + "src/main/resources";
+       private static final String ROOT = BASE_ROOT + "src/main/resources";
+       private static final String AUTO_GEN_ROOT = BASE_AUTO_GEN_ROOT + "src/main/resources";
 
-       private static final String normalStartDir = "aai-schema-gen";
-       private static final String xsd_dir = root + "/" + RELEASE +"/aai_schema";
+       private static final String NORMAL_START_DIR = "aai-schema-gen";
+       private static final String XSD_DIR = ROOT + "/" + RELEASE +"/aai_schema";
 
-       private static final String yaml_dir = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains(normalStartDir))) ? autoGenRoot : root) + "/" + RELEASE + "/aai_swagger_yaml";
+       private static final String
+        YAML_DIR = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains(
+        NORMAL_START_DIR))) ?
+        AUTO_GEN_ROOT :
+        ROOT) + "/" + RELEASE + "/aai_swagger_yaml";
 
        /* These three strings are for yaml auto-generation from aai-common class*/
 
-       private static int swaggerSupportStartsVersion = 1; // minimum version to support swagger documentation
+       private static final int SWAGGER_SUPPORT_STARTS_VERSION = 1; // minimum version to support swagger documentation
 
 
        private static boolean validVersion(String versionToGen) {
@@ -103,8 +108,11 @@ public class GenerateXsd {
                }
 
                SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class);
+               if (schemaVersions == null) {
+                   return false;
+        }
                for (SchemaVersion v : schemaVersions.getVersions()) {
-               if (v.equals(versionToGen)) {
+               if (v.toString().equals(versionToGen)) {
                    return true;
                }
            }
@@ -112,40 +120,45 @@ public class GenerateXsd {
            return false;
        }
 
-       private static boolean versionSupportsSwagger( String version) {
-               if (new Integer(version.substring(1)).intValue() >= swaggerSupportStartsVersion ) {
-                       return true;
-               }
-               return false;
-       }
+       private static boolean versionSupportsSwagger(String version) {
+        return Integer.parseInt(version.substring(1)) >= SWAGGER_SUPPORT_STARTS_VERSION;
+    }
 
        public static String getAPIVersion() {
                return apiVersion;
        }
 
        public static String getYamlDir() {
-               return yaml_dir;
+               return YAML_DIR;
        }
 
        public static String getResponsesUrl() {
                return responsesUrl;
        }
        public static void main(String[] args) throws IOException {
-               String versionToGen = System.getProperty("gen_version").toLowerCase();
-               String fileTypeToGen = System.getProperty("gen_type").toLowerCase();
-
-               AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
+               String versionToGen = System.getProperty("gen_version");
+        if (versionToGen == null) {
+            System.err.println("Version is required, ie v<n> or ALL.");
+            System.exit(1);
+        } else {
+            versionToGen = versionToGen.toLowerCase();
+        }
+
+        String fileTypeToGen = System.getProperty("gen_type");
+        if (fileTypeToGen == null) {
+            fileTypeToGen = GENERATE_TYPE_XSD;
+        } else {
+            fileTypeToGen = fileTypeToGen.toLowerCase();
+        }
+
+        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
                                "org.onap.aai.setup",
             "org.onap.aai.schemagen"
                );
 
                SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class);
 
-               if ( fileTypeToGen == null ) {
-                       fileTypeToGen = generateTypeXSD;
-               }
-
-               if ( !fileTypeToGen.equals( generateTypeXSD ) && !fileTypeToGen.equals( generateTypeYAML )) {
+               if ( !fileTypeToGen.equals(GENERATE_TYPE_XSD) && !fileTypeToGen.equals(GENERATE_TYPE_YAML)) {
                        System.err.println("Invalid gen_type passed. " + fileTypeToGen);
                        System.exit(1);
                }
@@ -154,11 +167,7 @@ public class GenerateXsd {
                responsesUrl = responsesLabel;
 
                List<SchemaVersion> versionsToGen = new ArrayList<>();
-               if ( versionToGen == null ) {
-                       System.err.println("Version is required, ie v<n> or ALL.");
-                       System.exit(1);
-               }
-               else if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") && !validVersion(versionToGen)) {
+               if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") && !validVersion(versionToGen)) {
                        System.err.println("Invalid version passed. " + versionToGen);
                        System.exit(1);
                }
@@ -171,11 +180,7 @@ public class GenerateXsd {
                }
 
                //process file type System property
-               fileTypeToGen = (fileTypeToGen == null ? generateTypeXSD : fileTypeToGen.toLowerCase());
-               if ( !fileTypeToGen.equals( generateTypeXSD ) && !fileTypeToGen.equals( generateTypeYAML )) {
-                       System.err.println("Invalid gen_type passed. " + fileTypeToGen);
-                       System.exit(1);
-               } else if ( fileTypeToGen.equals(generateTypeYAML) ) {
+               if ( fileTypeToGen.equals(GENERATE_TYPE_YAML) ) {
                        if ( responsesUrl == null || responsesUrl.length() < 1
                                        || responsesLabel == null || responsesLabel.length() < 1 ) {
                                System.err.println("generating swagger yaml file requires yamlresponses_url and yamlresponses_label properties" );
@@ -188,11 +193,12 @@ public class GenerateXsd {
                 * TODO: Oxm Path is config driveb
                 */
                String oxmPath;
-               if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(normalStartDir)) {
-                       oxmPath = baseAutoGenRoot + nodeDir;
+               if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(
+            NORMAL_START_DIR)) {
+                       oxmPath = BASE_AUTO_GEN_ROOT + NODE_DIR;
                }
                else {
-                       oxmPath = baseRoot + nodeDir;
+                       oxmPath = BASE_ROOT + NODE_DIR;
                }
 
                String outfileName = null;
@@ -205,27 +211,28 @@ public class GenerateXsd {
 
                for (SchemaVersion v : versionsToGen) {
                        apiVersion = v.toString();
-                       logger.debug("YAMLdir = "+yaml_dir);
+                       logger.debug("YAMLdir = "+ YAML_DIR);
                        logger.debug("Generating " + apiVersion + " " + fileTypeToGen);
                        apiVersionFmt = "." + apiVersion + ".";
                        generatedJavaType = new HashMap<String, String>();
                        appliedPaths = new HashMap<String, String>();
                        File edgeRuleFile = null;
-                       String fileName = edgeDir + "DbEdgeRules_" + apiVersion + ".json";
+                       String fileName = EDGE_DIR + "DbEdgeRules_" + apiVersion + ".json";
                        logger.debug("user.dir = "+System.getProperty("user.dir"));
-                       if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(normalStartDir)) {
-                               fileName = baseAutoGenRoot + fileName;
+                       if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(
+                NORMAL_START_DIR)) {
+                               fileName = BASE_AUTO_GEN_ROOT + fileName;
 
                        }
                        else {
-                               fileName = baseRoot + fileName;
+                               fileName = BASE_ROOT + fileName;
 
                        }
                        edgeRuleFile = new File( fileName);
 //                     Document doc = ni.getSchema(translateVersion(v));
 
-                       if ( fileTypeToGen.equals(generateTypeXSD) ) {
-                               outfileName = xsd_dir + "/aai_schema_" + apiVersion + "." + generateTypeXSD;
+                       if ( fileTypeToGen.equals(GENERATE_TYPE_XSD) ) {
+                               outfileName = XSD_DIR + "/aai_schema_" + apiVersion + "." + GENERATE_TYPE_XSD;
                                try {
                                        HTMLfromOXM swagger = ctx.getBean(HTMLfromOXM.class);
                                        swagger.setVersion(v);
@@ -236,12 +243,12 @@ public class GenerateXsd {
                                } catch(Exception e) {
                                logger.error( "Exception creating output file " + outfileName);
                                logger.error( e.getMessage());
-                               e.printStackTrace();
                                System.exit(-1);
                                }
                        } else if ( versionSupportsSwagger(apiVersion )) {
-                               outfileName = yaml_dir + "/aai_swagger_" + apiVersion + "." + generateTypeYAML;
-                               nodesfileName = yaml_dir + "/aai_swagger_" + apiVersion + "." + "nodes"+"."+generateTypeYAML;
+                               outfileName = YAML_DIR + "/aai_swagger_" + apiVersion + "." + GENERATE_TYPE_YAML;
+                               nodesfileName = YAML_DIR + "/aai_swagger_" + apiVersion + "." + "nodes"+"."+
+                    GENERATE_TYPE_YAML;
                                try {
                                        YAMLfromOXM swagger = (YAMLfromOXM) ctx.getBean(YAMLfromOXM.class);
                                        swagger.setVersion(v);
@@ -252,36 +259,37 @@ public class GenerateXsd {
                                        nodesSwagger.setCombinedJavaTypes(combinedJavaTypes);
                                        nodesContent = nodesSwagger.process();
                                } catch(Exception e) {
-                               logger.error( "Exception creating output file " + outfileName);
-                               e.printStackTrace();
+                               logger.error("Exception creating output file " + outfileName, e);
                                }
                        } else {
                                continue;
                        }
                        outfile = new File(outfileName);
                        File parentDir = outfile.getParentFile();
-                       if(! parentDir.exists())
-                             parentDir.mkdirs();
+                       if(!parentDir.exists()) {
+                parentDir.mkdirs();
+            }
                        if(nodesfileName != null) {
                                BufferedWriter nodesBW = null;
                                nodesfile = new File(nodesfileName);
                                parentDir = nodesfile.getParentFile();
-                               if(! parentDir.exists())
-                                     parentDir.mkdirs();
+                               if(!parentDir.exists()){
+                    parentDir.mkdirs();
+                }
                            try {
-                               nodesfile.createNewFile();
+                               if(!nodesfile.createNewFile()) {
+                        logger.error( "File {} already exist", nodesfileName);
+                    }
                            } catch (IOException e) {
-                               logger.error( "Exception creating output file " + nodesfileName);
-                               e.printStackTrace();
+                               logger.error( "Exception creating output file " + nodesfileName, e);
                            }
                        try {
-                               Charset charset = Charset.forName("UTF-8");
+                               Charset charset = StandardCharsets.UTF_8;
                                Path path = Paths.get(nodesfileName);
                                nodesBW = Files.newBufferedWriter(path, charset);
                                nodesBW.write(nodesContent);
                        } catch ( IOException e) {
-                               logger.error( "Exception writing output file " + outfileName);
-                               e.printStackTrace();
+                               logger.error( "Exception writing output file " + outfileName, e);
                        } finally {
                                if ( nodesBW != null ) {
                                        nodesBW.close();
@@ -290,20 +298,20 @@ public class GenerateXsd {
                        }
 
                    try {
-                       outfile.createNewFile();
+                       if(!outfile.createNewFile()) {
+                    logger.error( "File {} already exist", outfileName);
+                }
                    } catch (IOException e) {
-                       logger.error( "Exception creating output file " + outfileName);
-                       e.printStackTrace();
+                       logger.error( "Exception creating output file " + outfileName, e);
                    }
                    BufferedWriter bw = null;
                try {
-                       Charset charset = Charset.forName("UTF-8");
+                       Charset charset = StandardCharsets.UTF_8;
                        Path path = Paths.get(outfileName);
                        bw = Files.newBufferedWriter(path, charset);
                        bw.write(fileContent);
                } catch ( IOException e) {
-                       logger.error( "Exception writing output file " + outfileName);
-                       e.printStackTrace();
+                       logger.error( "Exception writing output file " + outfileName, e);
                } finally {
                        if ( bw != null ) {
                                bw.close();