Package gargl.main

Source Code of gargl.main.Gargl

package gargl.main;

import com.beust.jcommander.JCommander;
import gargl.generators.Generator;
import gargl.generators.GeneratorFactory;
import gargl.typedefinitions.GarglModule;
import gargl.utilities.JCommanderParser;

import java.io.File;

public class Gargl {
  public static void main(String[] args) {

    // Parse command line arguments

    JCommanderParser jct = new JCommanderParser();
    JCommander jcmdr = new JCommander(jct, args);
   
    if(args == null || args.length == 0 || jct.help){
      jcmdr .usage();
      System.exit(0);
    }

    if (jct.inputFilename == null) {
      System.out.println("ERROR: Need to specify input filename with -i");
      System.exit(0);
    }
   
    if(jct.language == null){
      System.out.println("ERROR: Need to specify output language with -l");
      System.exit(0);
    }
   
    if(jct.outputDirectory == null){
      // default to current working directory
      jct.outputDirectory = "";
    }
    else if(jct.outputDirectory.charAt(jct.outputDirectory.length() - 1) != File.separatorChar) {
      jct.outputDirectory = jct.outputDirectory + File.separator;
    }

    // Read in file and convert to Module containing function name and Requests
    InputParser parser = new InputParser(jct.inputFilename);
    GarglModule mod = parser.parseAndConvert();

    System.out.println("LOG: Parsed requests " + jct.inputFilename);

    // Create the necessary generator based on language selected and initialize it with the Module created from file
    Generator generator = GeneratorFactory.getGenerator(jct.language);
    if(generator == null) {
      System.out.println("ERROR: Language '" + jct.language + "' has no associated generator.");
      System.out.println("Valid generator languages: " + GeneratorFactory.getValidGeneratorTypes().toString());
    }
    else {
      generator.setModule(mod);
      generator.generateClass(jct.outputDirectory);
    }
  }
}
TOP

Related Classes of gargl.main.Gargl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.