Android Open Source - DKO Main






From Project

Back to project page DKO.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project DKO listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.kered.dko.ant;
/*from w w  w  .j a  v a2s  .c  om*/
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;

public class Main {

  static Map<String,Class<?>> commands = new LinkedHashMap<String,Class<?>>();
  static {
    commands.put("extract-schema", SchemaExtractorBase.class);
    commands.put("generate-dkos", CodeGeneratorBase.class);
  }
  
  /**
   * @param args
   */
  public static void main(String[] args) {
    if (args.length==0) {
      printHelp();
      return;
    }
    String commandName = args[0];
    Class<?> command = commands.get(commandName);
    if (command==null) {
      printHelp();
      return;
    }
    String[] options = new String[args.length-1];
    System.arraycopy(args, 1, options, 0, options.length);
    runCommand(commandName, command, options);
  }

  private static void runCommand(String commandName, Class<?> command, String[] options) {
    try {
      Object o = command.newInstance();
      String optionName = null;
      for (String option : options) {
        if (option.equals("--help")) {
          printHelp(commandName, command);
          return;
        } else if (option.startsWith("--")) {
          optionName = option.substring(2);
        } else {
          call(command, o, optionName, option);
        }
      }
      command.getMethod("execute").invoke(o);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private static void call(Class<?> command, Object o, String optionName, String option) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
    Method m = findSetter(command, optionName);
    m.invoke(o, option);
  }

  private static Method findSetter(Class<?> command, String optionName) throws NoSuchMethodException, SecurityException {
    String setter = "set"+ Util.underscoreToCamelCase(optionName.replace('-', '_'), true);
    for (Method m : command.getDeclaredMethods()) {
      if (m.getName().equalsIgnoreCase(setter)) return m;
    }
    throw new RuntimeException("could not find method for: "+ optionName);
  }

  private static void printHelp(String commandName, Class<?> command) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
    System.err.println("");
    String header = " Help for command: "+ commandName +" ";
    System.err.println(header);
    for (int i=0; i<header.length(); ++i) System.err.print("-");
    System.err.println("\n");
    for (Method method : command.getMethods()) {
      String name = method.getName();
      if (!name.startsWith("set")) continue;
      String optionName = "--"+ Util.splitCamelCase(name.substring(3)).trim().replace(' ', '-').toLowerCase();
      Object helpText = command.getDeclaredMethod("getHelp", String.class).invoke(null, name);
      if (helpText==null) continue;
      System.err.println(optionName +" "+ helpText);
      System.err.println("");
    }
  }

  private static void printHelp() {
    System.err.println("ERROR: Unrecognized command.");
    System.err.println("Syntax: java -jar lib/dko.jar <command> [command_option...]");
    System.err.println("");
    System.err.println("Where <command> is one of the following:");
    for (Entry<String, Class<?>> e : commands.entrySet()) {
      System.err.print("  ");
      System.err.print(e.getKey());
      System.err.print(":\t");
      try {
        Method help = e.getValue().getDeclaredMethod("getDescription");
        System.err.println(help.invoke(null));
      } catch (Exception e1) {
        System.err.println("(no description available)");
      }
    }
    System.err.println("");
    System.err.println("For help on an individual command, run the command with '--help'.");
    System.err.println("");
  }

}




Java Source Code List

.HelloWorld.java
org.kered.contactlensfinder.DB.java
org.kered.contactlensfinder.MainActivity.java
org.kered.contactlensfinder.ViewManufacturersActivity.java
org.kered.contactlensfinder.ViewProductsActivity.java
org.kered.contactlensfinder.ViewPropertiesActivity.java
org.kered.dko.AbstractQuery.java
org.kered.dko.Bulk.java
org.kered.dko.CSV.java
org.kered.dko.ClosableIterator.java
org.kered.dko.Condition.java
org.kered.dko.Constants.java
org.kered.dko.Context.java
org.kered.dko.DBQuery.java
org.kered.dko.DBRowIterator.java
org.kered.dko.Diff.java
org.kered.dko.DualIterator.java
org.kered.dko.Expression.java
org.kered.dko.Field.java
org.kered.dko.FilteringQuery.java
org.kered.dko.Function.java
org.kered.dko.InMemoryQuery.java
org.kered.dko.Join.java
org.kered.dko.LazyCacheIterable.java
org.kered.dko.LocalJoin.java
org.kered.dko.M.java
org.kered.dko.Main.java
org.kered.dko.MatryoshkaQuery.java
org.kered.dko.PeekableClosableIterator.java
org.kered.dko.PeekableIterator.java
org.kered.dko.QueryAddField.java
org.kered.dko.QueryFactory.java
org.kered.dko.QuerySnapshot.java
org.kered.dko.Query.java
org.kered.dko.SQLFunction.java
org.kered.dko.SelectAsMapIterable.java
org.kered.dko.SelectFromOAI.java
org.kered.dko.SelectSingleColumn.java
org.kered.dko.SoftJoinUtil.java
org.kered.dko.SoftJoin.java
org.kered.dko.SqlContext.java
org.kered.dko.Statistics.java
org.kered.dko.SubQueryField.java
org.kered.dko.TableInfo.java
org.kered.dko.TableWrapper.java
org.kered.dko.Table.java
org.kered.dko.TemporaryTableFactory.java
org.kered.dko.TmpTableBuilder.java
org.kered.dko.Tuple.java
org.kered.dko.UsageMonitor.java
org.kered.dko.UsageStats.java
org.kered.dko.Util.java
org.kered.dko.ant.ClassGenerator.java
org.kered.dko.ant.CodeGeneratorBase.java
org.kered.dko.ant.CodeGenerator.java
org.kered.dko.ant.DataSourceGenerator.java
org.kered.dko.ant.GsonGenerator.java
org.kered.dko.ant.JoinGenerator.java
org.kered.dko.ant.Main.java
org.kered.dko.ant.SchemaExtractorBase.java
org.kered.dko.ant.SchemaExtractor.java
org.kered.dko.ant.Util.java
org.kered.dko.datasource.CheapConnectionPoolingDataSource.java
org.kered.dko.datasource.ConnectionCountingDataSource.java
org.kered.dko.datasource.JDBCDriverDataSource.java
org.kered.dko.datasource.MatryoshkaDataSource.java
org.kered.dko.datasource.MirroredDataSource.java
org.kered.dko.datasource.ReflectedDataSource.java
org.kered.dko.datasource.SingleConnectionDataSource.java
org.kered.dko.datasource.SingleThreadedDataSource.java
org.kered.dko.datasource.UnClosableConnection.java
org.kered.dko.datasource.Util.java
org.kered.dko.json.CDL.java
org.kered.dko.json.CookieList.java
org.kered.dko.json.Cookie.java
org.kered.dko.json.HTTPTokener.java
org.kered.dko.json.HTTP.java
org.kered.dko.json.JSONArray.java
org.kered.dko.json.JSONException.java
org.kered.dko.json.JSONML.java
org.kered.dko.json.JSONObject.java
org.kered.dko.json.JSONString.java
org.kered.dko.json.JSONStringer.java
org.kered.dko.json.JSONTokener.java
org.kered.dko.json.JSONWriter.java
org.kered.dko.json.Pickle.java
org.kered.dko.json.XMLTokener.java
org.kered.dko.json.XML.java
org.kered.dko.junk.DerbyLoadTestSchema.java
org.kered.dko.junk.OracleCreateTestUser.java
org.kered.dko.junk.OracleLoadTestSchema.java
org.kered.dko.persistence.Util.java
org.kered.dko.util.DumpDatabase.java
sakila.Example0.java
sakila.Example1.java
sakila.Example2.java
sakila.Util.java