Example #1
0
    private void writeTableWithoutData() throws IOException {
      // Write Header
      if (valueTable.getDataHeaderMap().isEmpty()) {
        Map<String, Integer> generatedHeader = generateDataHeaderMapFromVariables();
        if (generatedHeader.size() > 0) {
          valueTable.setDataHeaderMap(generateDataHeaderMapFromVariables());
          csvLine.setHeaderMap(valueTable.getDataHeaderMap());
        } else {
          valueTable.setDataHeaderMap(csvLine.getHeaderMap());
        }
      }

      writeValueToCsv(valueTable.getDataHeaderAsArray());
      getExistingHeaderMap();
      valueTable.setDataHeaderMap(csvLine.getHeaderMap());
      valueTable.setDataFileEmpty(false);
    }
Example #2
0
    private void writeTableWithData() throws IOException { // Test header is a subset
      List<String> extraHeaders =
          getExtraHeadersFromNewValueSet(getExistingHeaderMap(), csvLine.getHeaderMap());
      if (extraHeaders.size() != 0) {
        StringBuilder sb = new StringBuilder();
        for (String header : extraHeaders) {
          sb.append(header).append(" ");
        }
        throw new MagmaRuntimeException(
            "Cannot update the CSV ValueTable ["
                + valueTable.getName()
                + "]. The new ValueSet (record) included the following unexpected Variables (fields): "
                + sb.toString());
      }

      if (valueTable.hasValueSet(entity)) {
        // Delete existing value set.
        valueTable.clearEntity(entity);
      }
      // Set existing header
      csvLine.setHeaderMap(getExistingHeaderMap());
    }
Example #3
0
  public void testMoreTokens2() throws Exception {
    final String CSV_LINE_1 = "\"more,,,good,more,test,,,,more,,\",,,,";
    String[] tokens = CsvLine.combineTokens(CSV_LINE_1.split(","));

    // Debug.setVerboseDebugLog(true);
    for (String token : CSV_LINE_1.split(",")) {
      Debug.logVerbose(token);
    }
    Debug.logVerbose(Arrays.toString(tokens));

    assertEquals(tokens.length, 1);
    assertEquals(tokens[0], "more,,,good,more,test,,,,more,,");
  }
Example #4
0
  public void testMoreTokens4() throws Exception {
    final String CSV_LINE_1 = "to1,\",more,,,good,more,test,,,,more,,\", to3,\"tok4, m\"";
    String[] tokens = CsvLine.combineTokens(CSV_LINE_1.split(","));

    // Debug.setVerboseDebugLog(true);
    for (String token : tokens) {
      Debug.logVerbose(token);
    }
    Debug.logVerbose(Arrays.toString(tokens));

    assertEquals(tokens.length, 4);
    assertEquals(tokens[0], "to1");
    assertEquals(tokens[1], ",more,,,good,more,test,,,,more,,");
    assertEquals(tokens[2], " to3");
    assertEquals(tokens[3], "tok4, m");
  }
Example #5
0
    @Override
    public void close() {

      try {
        if (valueTable.isDataFileEmpty()) {
          writeTableWithoutData();
        } else {
          writeTableWithData();
        }

        // Writer Value set. Throw exception if doesn't match header
        long lastByte = valueTable.getDataLastByte();
        String[] line = csvLine.getLine();
        writeValueToCsv(line);
        // Update index
        valueTable.updateDataIndex(entity, lastByte, line);
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
    }
 /**
  * 地図設定のaddress
  *
  * @return
  */
 public String getAddress() {
   return line.getString(3, null);
 }
 /**
  * 地図設定のcategory
  *
  * <pre>
  * mode = 10 [カタログ一覧表示]時の、絞り込み表示用タグ。
  * 複数記述する時は、セミコロンで区切って列挙する。絞り込みが不要の場合は、空欄とする。
  * </pre>
  *
  * @return
  */
 public String getCategory() {
   return line.getString(2, null);
 }
 /**
  * 地図設定のname
  *
  * @return
  */
 public String getName() {
   return line.getString(1, null);
 }
 /**
  * 地図設定のcatalogid
  *
  * @return
  */
 public String getCatalogId() {
   return line.getString(0, null);
 }
 /**
  * 地図設定のext3
  *
  * <pre>
  * コロン":"で区切り、左が見出し、右が内容
  * </pre>
  *
  * @return
  */
 public String getExt3() {
   return line.getString(10, null);
 }
 /**
  * 地図設定のext2
  *
  * <pre>
  * コロン":"で区切り、左が見出し、右が内容
  * </pre>
  *
  * @return
  */
 public String getExt2() {
   return line.getString(9, null);
 }
 /**
  * 地図設定のurl
  *
  * <pre>
  * 外部Webページを表示する場合
  *   http://~
  * アプリ内のカタログに遷移する場合
  *   catalog:[カタログID]:[ページ番号]
  * ポップアップ表示を行う場合
  *   空文字
  * </pre>
  *
  * @return
  */
 public String getUrl() {
   return line.getString(7, null);
 }
 /**
  * 地図設定のtel
  *
  * @return
  */
 public String getTel() {
   return line.getString(6, null);
 }
 /**
  * 地図設定のlongtitude
  *
  * @return
  */
 public Double getLongtitude() {
   return line.getDouble(5, null);
 }
 /**
  * 地図設定のlatitude
  *
  * @return
  */
 public Double getLatitude() {
   return line.getDouble(4, null);
 }
 /**
  * 地図設定のext1
  *
  * <pre>
  * コロン":"で区切り、左が見出し、右が内容
  * </pre>
  *
  * @return
  */
 public String getExt1() {
   return line.getString(8, null);
 }
Example #17
0
 @Override
 public void writeValue(@NotNull Variable variable, Value value) {
   csvLine.setValue(variable, value);
 }