Android Open Source - DKO Data Source Generator






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;
/*ww w.j a  v  a 2s  .  c  o m*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.kered.dko.json.JSONException;
import org.kered.dko.json.JSONObject;

class DataSourceGenerator {

  static final String _DEFAULT_PACKAGE_DATASOURCE_LOADER = "_DEFAULT_PACKAGE_DATASOURCE_LOADER";

  public static String getDataSourceName(final String dataSource) {
    if (dataSource == null) return null;
    if (!dataSource.contains("=")) return "_DefaultDS";
    final String[] x = dataSource.split("=");
    String name = x[0].trim();
    name = name.substring(0, 1).toUpperCase() + name.substring(1);
    return name;
  }

  public static String getClassName(final String dataSource) {
    String part2 = dataSource.contains("=") ? dataSource.split("=")[1] : dataSource;
    final String cls = part2.substring(0, part2.lastIndexOf(".")).trim();
    return cls;
  }

  public static String getMethodName(final String dataSource) {
    String part2 = dataSource.contains("=") ? dataSource.split("=")[1] : dataSource;
    String method = part2.substring(part2.lastIndexOf(".")+1).trim();
    while (method.endsWith("(") || method.endsWith(")") || method.endsWith(" ") || method.endsWith(";")) {
      method = method.substring(0, method.length() - 1);
    }
    return method;
  }

  private static List<String> getSchemaList(final String metadataFile) throws IOException {
    final BufferedReader br = new BufferedReader(new FileReader(metadataFile));
    final StringBuffer sb = new StringBuffer();
    String s = null;
    while ((s=br.readLine())!=null) sb.append(s).append('\n');
    try {
      final JSONObject metadata = new JSONObject(sb.toString());
      final JSONObject schemas = metadata.getJSONObject("schemas");
      return new ArrayList<String>(schemas.keySet());
    } catch (final JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return null;
  }

  public static void go(final String dir, final String pkg, final String dataSource,
      final String metadataFile, final Map<String, String> schemaAliases) throws IOException {
    final String pkgDir = Util.join("/", pkg.split("[.]"));
    new File(Util.join("/", dir, pkgDir)).mkdirs();

    final String name = getDataSourceName(dataSource);
    final String cls = getClassName(dataSource);
    final String method = getMethodName(dataSource);
    final List<String> schemaList = getSchemaList(metadataFile);

    for (String schema : schemaList) {

      if (schemaAliases.containsKey(schema)) {
        schema = schemaAliases.get(schema);
      }

      final String pkgName = ClassGenerator.sanitizeJavaKeywords(schema);

      final File file = new File(Util.join("/", dir, pkgDir, name + ".java"));
      System.out.println("writing: "+ file.getAbsolutePath());

      final BufferedWriter br = new BufferedWriter(new FileWriter(file));

      br.write("package "+ pkg +";\n");
      br.write("\n");
      br.write("import org.kered.dko.Context;\n");
      br.write("import org.kered.dko.datasource.ReflectedDataSource;\n");
      br.write("\n");
      br.write("public class "+ name +" {\n");
      br.write("\n");
      br.write("\n");
      br.write("\tpublic static "+ "ReflectedDataSource" +" "+ "INSTANCE"
          +" = new "+ "ReflectedDataSource" +"(\""+ cls +"\", \""+ method +"\");\n");
      br.write("\n");
      br.write("}\n");

      br.close();

    }

  }

}




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