Esempio n. 1
0
  public String generatePreparedFlatCalculationSQL(HashMap<String, String> valueMap) {
    String tableName = loadingConfig.getSchemaTableNames().get("featureTable");
    String[][] table = loadingConfig.getTableMatrix("flatCalculationTable");
    String nameKey = "Calculation/@name";
    String nameStr = valueMap.get(nameKey);
    // Note that calculation can be null, thus nameStr can be null
    String[] names = {"area"};

    if (nameStr != null) names = nameStr.split(DELIM);

    StringBuffer queryBuf = new StringBuffer("INSERT INTO " + tableName + "(");
    for (int i = 0; i < table.length; i++) {
      String[] map = table[i];
      String attribute = map[1];
      if (i != 0) queryBuf.append(", ");
      queryBuf.append(attribute);
    }

    for (int i = 0; i < names.length; i++) queryBuf.append(", " + names[i]);

    queryBuf.append(") VALUES(");
    for (int i = 0; i < table.length; i++) {
      String value = "?";
      if (i != 0) queryBuf.append(", ");
      queryBuf.append(value);
    }
    for (int i = 0; i < names.length; i++) queryBuf.append(",?");
    queryBuf.append(")");
    return queryBuf.toString();
  }
Esempio n. 2
0
 public boolean addBatchRegionQuery(PreparedStatement pstmt, HashMap<String, String> valueMap) {
   return setQueryParams(
       pstmt,
       loadingConfig.getSchemaTableNames().get("regionTable"),
       valueMap,
       loadingConfig.getTableMatrix("regionTable"));
 }
Esempio n. 3
0
  public String generatePareparedObservationSQL(String quantificationType) {

    StringBuffer queryBuf =
        new StringBuffer(
            "INSERT INTO "
                + loadingConfig.getSchemaTableNames().get("observationOrdinalMultiTable")
                + "(");
    ;
    String[][] table = loadingConfig.getTableMatrix("observationOrdinalMultiTable");

    if ("Nominal".equals(quantificationType)) {
      queryBuf =
          new StringBuffer(
              "INSERT INTO "
                  + loadingConfig.getSchemaTableNames().get("observationNominalMultiTable")
                  + "(");
      table = loadingConfig.getTableMatrix("observationNominalMultiTable");
    }

    for (int i = 0; i < loadingConfig.getTableMatrix("observationSingleTable").length; i++) {
      String attribute = loadingConfig.getTableMatrix("observationSingleTable")[i][1];
      if (i != 0) queryBuf.append(", ");
      queryBuf.append(attribute);
    }
    queryBuf.append(",");
    for (int i = 0; i < table.length; i++) {
      String attribute = table[i][1];
      if (i != 0) queryBuf.append(", ");
      queryBuf.append(attribute);
    }
    queryBuf.append(") VALUES(");
    // Add single value attributes
    for (int i = 0; i < loadingConfig.getTableMatrix("observationSingleTable").length; i++) {
      if (i != 0) queryBuf.append(", ");
      queryBuf.append("?");
    }
    queryBuf.append(",");

    // Add multi-value attributes
    for (int i = 0; i < table.length; i++) {
      if (i != 0) queryBuf.append(", ");
      queryBuf.append("?");
    }
    queryBuf.append(")");

    return queryBuf.toString();
  }
Esempio n. 4
0
  public List<String> generateDropTableStatements() {
    List<String> result = new ArrayList<String>();
    Map<String, String> tablesNames = loadingConfig.getSchemaTableNames();
    for (String tableName : tablesNames.values()) {
      if (!tableName.equals("")) result.add("DROP TABLE " + tableName);
    }

    return result;
  }
Esempio n. 5
0
  public List<String> generateCreateTableStatements() {
    List<String> result = new ArrayList<String>();
    Map<String, String> tablesNames = loadingConfig.getSchemaTableNames();

    /*
     * An entry in tablesNames maps a name for the table which is not important in this method
     * to the real name of the table in the database. A table can have many definitions, this
     * means, the real table name in the database appears as a value for many keys. The
     * final query contains the aggregation of all the columns in all definitions.
     */
    Map<String, String> processedDefinitions = new HashMap<String, String>();
    for (Iterator<Map.Entry<String, String>> tablesNamesIterator =
            tablesNames.entrySet().iterator();
        tablesNamesIterator.hasNext(); ) {
      Map.Entry<String, String> oneDefinition = tablesNamesIterator.next();
      // Remove the definition to find all other definitions for the same table
      tablesNamesIterator.remove();
      // Process this definition
      if (!oneDefinition.getValue().equals("")
          && !processedDefinitions.containsKey(oneDefinition.getKey())) {
        // Find all other definitions for this table
        Map<String, String> allDefinitions = new HashMap<String, String>();
        allDefinitions.put(oneDefinition.getKey(), oneDefinition.getValue());
        // restOfTheDefinitionsIterator = tablesNamesIterator without the definition being processed
        for (Iterator<Map.Entry<String, String>> restOfTheDefinitionsIterator =
                tablesNames.entrySet().iterator();
            restOfTheDefinitionsIterator.hasNext(); ) {
          Map.Entry<String, String> table = restOfTheDefinitionsIterator.next();
          if (table.getValue().equals(oneDefinition.getValue())) {
            allDefinitions.put(table.getKey(), table.getValue());
            processedDefinitions.put(table.getKey(), table.getValue());
          }
        }
        String query = "";
        query += "CREATE TABLE " + oneDefinition.getValue() + "(";
        for (Iterator<Map.Entry<String, String>> allDefinitionsIterator =
                allDefinitions.entrySet().iterator();
            allDefinitionsIterator.hasNext(); ) {
          Map.Entry<String, String> definition = allDefinitionsIterator.next();
          // Process the columns
          String[][] columns = loadingConfig.getTableMatrix(definition.getKey());
          for (int i = 0; i < columns.length; i++) {
            query += "\n\t" + columns[i][1] + "\t\t\t" + columns[i][2];
            if (i < (columns.length - 1) || allDefinitions.size() > 1) query += ",";
          }
          allDefinitionsIterator.remove();
        }
        query += "\n)";
        result.add(query);
      }
    }

    return result;
  }
Esempio n. 6
0
 public String generatePreparedAnnotationMarkupSQL() {
   return generatePreparedSQL(
           loadingConfig.getSchemaTableNames().get("annotationMarkupTable"),
           loadingConfig.getTableMatrix("annotationMarkupTable"))
       .toString();
 }
Esempio n. 7
0
 public String generatePreparedRegionSQL() {
   return generatePreparedSQL(
           loadingConfig.getSchemaTableNames().get("regionTable"),
           loadingConfig.getTableMatrix("regionTable"))
       .toString();
 }
Esempio n. 8
0
 private QueryGenerator(String file) {
   loadingConfig = new LoadingConfig(file);
   markupPolygonTableName = loadingConfig.getSchemaTableNames().get("markupPolygonTable");
 }