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); }
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()); }
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,,"); }
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"); }
@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); }
@Override public void writeValue(@NotNull Variable variable, Value value) { csvLine.setValue(variable, value); }