protected DecimalFormat getNumberFormat(String columnId) { DecimalFormat format = _numberFormatMap.get(columnId); if (format == null) { DecimalFormatSymbols numberSymbols = new DecimalFormatSymbols(); numberSymbols.setGroupingSeparator(dataSetDef.getNumberGroupSeparator(columnId)); numberSymbols.setDecimalSeparator(dataSetDef.getNumberDecimalSeparator(columnId)); format = new DecimalFormat(dataSetDef.getNumberPattern(columnId), numberSymbols); _numberFormatMap.put(columnId, format); } return format; } }
@Test public void testParseCSVJson() throws Exception { URL fileURL = Thread.currentThread().getContextClassLoader().getResource("expenseReports.dset"); String json = IOUtils.toString(fileURL, StandardCharsets.UTF_8); DataSetDef def = jsonMarshaller.fromJson(json); assertThat(def.getProvider()).isEqualTo(DataSetProviderType.CSV); assertThat(def.isPublic()).isEqualTo(true); assertThat(def.isPushEnabled()).isEqualTo(true); assertThat(def.getPushMaxSize()).isEqualTo(1024); CSVDataSetDef csvDef = (CSVDataSetDef) def; assertThat(csvDef.getSeparatorChar()).isEqualTo(';'); assertThat(csvDef.getEscapeChar()).isEqualTo('\\'); assertThat(csvDef.getQuoteChar()).isEqualTo('\"'); assertThat(csvDef.getDatePattern()).isEqualTo("MM-dd-yyyy"); assertThat(csvDef.getNumberPattern()).isEqualTo("#,###.##"); assertThat(csvDef.getPattern("date")).isEqualTo("MM-dd-yyyy"); assertThat(csvDef.getPattern("amount")).isEqualTo("#,###.##"); assertThat(csvDef.getColumnById("id").getColumnType()).isEqualTo(ColumnType.LABEL); assertThat(csvDef.getColumnById("amount").getColumnType()).isEqualTo(ColumnType.NUMBER); assertThat(csvDef.getColumnById("date").getColumnType()).isEqualTo(ColumnType.DATE); } }
protected void configureColumnSettings(Displayer displayer, CSVDataSetDef csvDataSetDef) { DataSet dataSet = displayer.getDataSetHandler().getLastDataSet(); dataSet.getColumns().stream().forEach(column -> { if (column.getColumnType().equals(ColumnType.DATE)) { String pattern = csvDataSetDef.getDatePattern(column.getId()); if (pattern != null) { displayer.getDisplayerSettings().setColumnValuePattern(column.getId(), pattern); } } else if (column.getColumnType().equals(ColumnType.NUMBER)) { String pattern = csvDataSetDef.getNumberPattern(column.getId()); if (pattern != null) { displayer.getDisplayerSettings().setColumnValuePattern(column.getId(), pattern); } } }); }
@Override public void toJson(CSVDataSetDef dataSetDef, JsonObject json) { // File. if (dataSetDef.getFilePath() != null) { json.put(FILEPATH, dataSetDef.getFilePath()); } if (dataSetDef.getFileURL() != null) { json.put(FILEURL, dataSetDef.getFileURL()); } // Separator. json.put(SEPARATORCHAR, String.valueOf(dataSetDef.getSeparatorChar())); // Quote. json.put(QUOTECHAR, String.valueOf(dataSetDef.getQuoteChar())); // Escape. json.put(ESCAPECHAR, String.valueOf(dataSetDef.getEscapeChar())); // Date pattern. json.put(DATEPATTERN, dataSetDef.getDatePattern()); // Number pattern. json.put(NUMBERPATTERN, dataSetDef.getNumberPattern()); // All columns flag. json.put(ALL_COLUMNS, dataSetDef.isAllColumnsEnabled()); } }
@Override public void toJson(CSVDataSetDef dataSetDef, JsonObject json) { // File. if (dataSetDef.getFilePath() != null) { json.put(FILEPATH, dataSetDef.getFilePath()); } if (dataSetDef.getFileURL() != null) { json.put(FILEURL, dataSetDef.getFileURL()); } // Separator. json.put(SEPARATORCHAR, String.valueOf(dataSetDef.getSeparatorChar())); // Quote. json.put(QUOTECHAR, String.valueOf(dataSetDef.getQuoteChar())); // Escape. json.put(ESCAPECHAR, String.valueOf(dataSetDef.getEscapeChar())); // Date pattern. json.put(DATEPATTERN, dataSetDef.getDatePattern()); // Number pattern. json.put(NUMBERPATTERN, dataSetDef.getNumberPattern()); // All columns flag. json.put(ALL_COLUMNS, dataSetDef.isAllColumnsEnabled()); } }
protected void configureColumnSettings(Displayer displayer, CSVDataSetDef csvDataSetDef) { DataSet dataSet = displayer.getDataSetHandler().getLastDataSet(); dataSet.getColumns().stream().forEach(column -> { if (column.getColumnType().equals(ColumnType.DATE)) { String pattern = csvDataSetDef.getDatePattern(column.getId()); if (pattern != null) { displayer.getDisplayerSettings().setColumnValuePattern(column.getId(), pattern); } } else if (column.getColumnType().equals(ColumnType.NUMBER)) { String pattern = csvDataSetDef.getNumberPattern(column.getId()); if (pattern != null) { displayer.getDisplayerSettings().setColumnValuePattern(column.getId(), pattern); } } }); }
@Override public DataSetDef clone() { CSVDataSetDef def = new CSVDataSetDef(); clone(def); def.setFilePath(getFilePath()); def.setFileURL(getFileURL()); def.setSeparatorChar(getSeparatorChar()); def.setQuoteChar(getQuoteChar()); def.setEscapeChar(getEscapeChar()); def.setDatePattern(getDatePattern()); def.setNumberPattern(getNumberPattern()); return def; }
@Override public DataSetDef clone() { CSVDataSetDef def = new CSVDataSetDef(); clone(def); def.setFilePath(getFilePath()); def.setFileURL(getFileURL()); def.setSeparatorChar(getSeparatorChar()); def.setQuoteChar(getQuoteChar()); def.setEscapeChar(getEscapeChar()); def.setDatePattern(getDatePattern()); def.setNumberPattern(getNumberPattern()); return def; }
assertNull(def.getFileURL()); assertEquals(def.getDatePattern(), "MM-dd-yyyy"); assertEquals(def.getNumberPattern(), "#,###.##"); assertEquals(def.getDatePattern("date"), "MM-dd-yyyy"); assertEquals(def.getNumberPattern("amount"), "#,###.##"); assertEquals(def.getSeparatorChar(), Character.valueOf(';')); assertEquals(def.getQuoteChar(), Character.valueOf('\"'));
assertNull(def.getFileURL()); assertEquals(def.getDatePattern(), "MM-dd-yyyy"); assertEquals(def.getNumberPattern(), "#,###.##"); assertEquals(def.getDatePattern("date"), "MM-dd-yyyy"); assertEquals(def.getNumberPattern("amount"), "#,###.##"); assertEquals(def.getSeparatorChar(), Character.valueOf(';')); assertEquals(def.getQuoteChar(), Character.valueOf('\"'));
@Test public void testParseCSVJson() throws Exception { URL fileURL = Thread.currentThread().getContextClassLoader().getResource("expenseReports.dset"); String json = IOUtils.toString(fileURL); DataSetDef def = jsonMarshaller.fromJson(json); assertThat(def.getProvider()).isEqualTo(DataSetProviderType.CSV); assertThat(def.isPublic()).isEqualTo(true); assertThat(def.isPushEnabled()).isEqualTo(true); assertThat(def.getPushMaxSize()).isEqualTo(1024); CSVDataSetDef csvDef = (CSVDataSetDef) def; assertThat(csvDef.getSeparatorChar()).isEqualTo(';'); assertThat(csvDef.getEscapeChar()).isEqualTo('\\'); assertThat(csvDef.getQuoteChar()).isEqualTo('\"'); assertThat(csvDef.getDatePattern()).isEqualTo("MM-dd-yyyy"); assertThat(csvDef.getNumberPattern()).isEqualTo("#,###.##"); assertThat(csvDef.getPattern("date")).isEqualTo("MM-dd-yyyy"); assertThat(csvDef.getPattern("amount")).isEqualTo("#,###.##"); assertThat(csvDef.getColumnById("id").getColumnType()).isEqualTo(ColumnType.LABEL); assertThat(csvDef.getColumnById("amount").getColumnType()).isEqualTo(ColumnType.NUMBER); assertThat(csvDef.getColumnById("date").getColumnType()).isEqualTo(ColumnType.DATE); } }