001package io.ebean.enhance.ant;
002
003import io.ebean.enhance.Transformer;
004import io.ebean.enhance.common.EnhanceContext;
005
006/**
007 * A utility object to run transformation from a main method.
008 */
009public class MainTransform {
010
011  public static void main(String[] args) {
012    if (isHelp(args)) {
013      printHelp();
014      return;
015    }
016
017    String transformArgs = "debug=1";
018    String inDir = "./target/test-classes";
019    String pkg = "test";
020
021    if (args.length > 0) {
022      inDir = args[0];
023    }
024    if (args.length > 1) {
025      pkg = args[1];
026    }
027
028    if (args.length > 2) {
029      transformArgs = args[2];
030    }
031
032    ClassLoader cl = ClassLoader.getSystemClassLoader();
033
034    Transformer t = new Transformer(cl, transformArgs);
035
036    OfflineFileTransform ft = new OfflineFileTransform(t, cl, inDir);
037    final EnhanceContext enhanceContext = t.getEnhanceContext();
038    if (enhanceContext.logLevel() > 0) {
039      System.out.println(enhanceContext.packagesSummary());
040    }
041
042    ft.process(pkg);
043  }
044
045  private static void printHelp() {
046    System.out.println("Usage: [inputDirectory] [packages] [transformArguments]");
047  }
048
049  private static boolean isHelp(String[] args) {
050    for (String arg : args) {
051      if (arg.equalsIgnoreCase("help")) {
052        return true;
053      }
054      if (arg.equalsIgnoreCase("-h")) {
055        return true;
056      }
057    }
058    return false;
059  }
060}