Package com.jsontojava.cli

Source Code of com.jsontojava.cli.Main

package com.jsontojava.cli;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

import com.jsontojava.JsonToJava;
import com.jsontojava.OutputOption;

public class Main {
  private static final String OPTION_PACKAGE = "package";
  private static final String OPTION_URL = "url";
  private static final String OPTION_ROOT = "class";
  private static final String OPTION_GSON = "g";
  private static final String OPTION_PARCELABLE = "p";
  private static final String OPTION_TO_STRING = "s";


  /**
   * @param args
   * @throws IOException
   * @throws ParseException
   */
  public static void main(String[] args) throws IOException, ParseException {
    Options options = createOptions();
   
    CommandLineParser parser = new BasicParser();
    CommandLine cmd = parser.parse( options, args);
    JsonToJava jsonToJava = new JsonToJava();
   
    jsonToJava.setUrl(cmd.getOptionValue(OPTION_URL));
    jsonToJava.setPackage(cmd.getOptionValue(OPTION_PACKAGE));
    jsonToJava.setBaseType(cmd.getOptionValue(OPTION_ROOT));
    if(cmd.hasOption(OPTION_GSON)){
      jsonToJava.addOutputOption(OutputOption.GSON);
    }
    if(cmd.hasOption(OPTION_PARCELABLE)){
      jsonToJava.addOutputOption(OutputOption.PARCELABLE);
    }
    if(cmd.hasOption(OPTION_TO_STRING)){
      jsonToJava.addOutputOption(OutputOption.TO_STRING);
    }
   
    jsonToJava.fetchJson();
    File zipFile = new File(jsonToJava.getPackage() + ".zip");
    OutputStream os = new FileOutputStream(zipFile);
    jsonToJava.outputZipFile(os);
    os.close();
    System.out.println("\nFinished creating java classes.  Your files are located in " + zipFile.getAbsolutePath() );


 

  }



  private static Options createOptions(){
    Options options = new Options();
    options.addOption(OPTION_PARCELABLE, false, "Enabled implementation of Parcelable for all classes generated");
    options.addOption(OPTION_GSON,false,"Enables Gson annotations");
    options.addOption(OPTION_TO_STRING, false, "Enables overriding the toString method for new classes");
    Option rootClass = OptionBuilder.hasArg().isRequired().withDescription("The name of the root class of the feed you are parsing").create(OPTION_ROOT);
    options.addOption(rootClass);
    Option url = OptionBuilder.hasArg().isRequired().withDescription("The url of the json feed you want to parse").create(OPTION_URL);
    options.addOption(url);
    Option pack = OptionBuilder.hasArg().isRequired().withDescription("The package name for the generated classes").create(OPTION_PACKAGE);
    options.addOption(pack);
   
    return options;
   
   
  }

 

 
}
TOP

Related Classes of com.jsontojava.cli.Main

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.