resultTableWidth += table.getHeaderDefinition().size() - 1; // exclude the date column. final List<String> names = table.getHeaderDefinition().getColumnNames(); final Iterator<String> iter = names.iterator(); if (!iter.hasNext()) { final QuandlCodeRequest codeRequest = mapEntry.getKey(); final TabularResult table1 = mapEntry.getValue(); final Iterator<Row> rowIter = table1.iterator(); while (rowIter.hasNext()) { final Row row = rowIter.next(); combinedRows.add(row); return TabularResult.of(headerDefinition, combinedRows);
/** * Create a tabular result set from a header definition and an ordered list of rows. * * @param headerDefinition the definition of the header row, not null * @param rows a list of rows, not null * @return the {@code TabularResult} instance */ public static TabularResult of(final HeaderDefinition headerDefinition, final List<Row> rows) { ArgumentChecker.notNull(headerDefinition, "headerDefinition"); ArgumentChecker.notNull(rows, "rows"); return new TabularResult(headerDefinition, rows); }
@Test public void runAccessorTests() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); Assert.assertEquals(tr1.get(0).getString(0), "Jim"); Assert.assertEquals(tr1.get(0).getString(1), "Miranda"); Assert.assertEquals(tr1.get(0).getString(2), "1.2"); Assert.assertEquals(tr1.get(0).getDouble(2), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString(3), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate(3), LocalDate.of(2009, 9, 13)); Assert.assertEquals(tr1.get(0).getString("A"), "Jim"); Assert.assertEquals(tr1.get(0).getString("B"), "Miranda"); Assert.assertEquals(tr1.get(0).getString("C"), "1.2"); Assert.assertEquals(tr1.get(0).getDouble("C"), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString("D"), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate("D"), LocalDate.of(2009, 9, 13)); }
private static int[] maximumWidths(final TabularResult result) { HeaderDefinition headerDefinition = result.getHeaderDefinition(); int[] maxWidths = new int[headerDefinition.size()]; int count = 0; for (String columnName : headerDefinition.getColumnNames()) { maxWidths[count++] = columnName.length(); } Iterator<Row> iterator = result.iterator(); while (iterator.hasNext()) { Row row = iterator.next(); for (int i = 0; i < row.size(); i++) { String columnValue = row.getString(i); if (columnValue != null) { maxWidths[i] = Math.max(maxWidths[i], columnValue.length()); } else { maxWidths[i] = Math.max(maxWidths[i], NULL_SIZE); } } } return maxWidths; } }
@Test public void testSize() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition3 = HeaderDefinition.of("B", "A", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row2 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); Row row4 = Row.of(headerDefinition3, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row2, row3, row4)); TabularResult tr2 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row4)); TabularResult tr3 = TabularResult.of(headerDefinition3, Collections.<Row>emptyList()); Assert.assertEquals(tr1.size(), 4); Assert.assertFalse(tr1.isEmpty()); Assert.assertEquals(tr2.size(), 2); Assert.assertFalse(tr2.isEmpty()); Assert.assertEquals(tr3.size(), 0); Assert.assertTrue(tr3.isEmpty()); } // CHECKSTYLE:ON
Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); Row row4 = Row.of(headerDefinition3, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); TabularResult tr2 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row4)); TabularResult tr3 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row1)); Iterator<Row> iter1 = tr1.iterator(); Iterator<Row> iter2 = tr2.iterator(); Iterator<Row> iter3 = tr3.iterator(); Assert.assertTrue(iter1.hasNext()); Assert.assertTrue(iter2.hasNext());
return TabularResult.of(headerDef, rows); } else { reader.close();
@Test public void testTabularResult() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition3 = HeaderDefinition.of("B", "A", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row2 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); Row row4 = Row.of(headerDefinition3, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); Assert.assertEquals(tr1, tr1); Assert.assertEquals(tr1.hashCode(), tr1.hashCode()); Assert.assertNotEquals(null, tr1); TabularResult tr2 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row4)); Assert.assertNotEquals(tr1, tr2); Assert.assertNotEquals(tr1.hashCode(), tr2.hashCode()); TabularResult tr3 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row1)); Assert.assertNotEquals(tr2, tr3); Assert.assertNotEquals(tr2.hashCode(), tr3.hashCode()); }
/** * Pretty print a TabularResult in a text-based table format. * * @param result a TabularResult, not null * @return a String containing the table to be printed, not null. */ public static String toPrettyPrintedString(final TabularResult result) { ArgumentChecker.notNull(result, "result"); StringBuilder sb = new StringBuilder(); int[] maxWidths = maximumWidths(result); separator(sb, maxWidths); header(sb, maxWidths, result.getHeaderDefinition()); separator(sb, maxWidths); for (final Row row : result) { row(sb, maxWidths, row); } separator(sb, maxWidths); return sb.toString(); }
/** * The main body of the code. */ private void run() { QuandlSession session = QuandlSession.create(); TabularResult tabularResult = session.getDataSet( DataSetRequest.Builder.of("WIKI/AAPL").build()); System.out.println(tabularResult.toPrettyPrintedString()); }
@Test public void testSize() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition3 = HeaderDefinition.of("B", "A", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row2 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); Row row4 = Row.of(headerDefinition3, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row2, row3, row4)); TabularResult tr2 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row4)); TabularResult tr3 = TabularResult.of(headerDefinition3, Collections.<Row>emptyList()); Assert.assertEquals(tr1.size(), 4); Assert.assertFalse(tr1.isEmpty()); Assert.assertEquals(tr2.size(), 2); Assert.assertFalse(tr2.isEmpty()); Assert.assertEquals(tr3.size(), 0); Assert.assertTrue(tr3.isEmpty()); } // CHECKSTYLE:ON
/** * The main body of the code. */ private void run() { QuandlSession session = QuandlSession.create(); TabularResult tabularResultMulti = session.getDataSets( MultiDataSetRequest.Builder .of( QuandlCodeRequest.singleColumn("WIKI/AAPL", CLOSE_COLUMN), QuandlCodeRequest.allColumns("DOE/RWTC") ) .withStartDate(RECENTISH_DATE) .withFrequency(Frequency.MONTHLY) .build()); System.out.println("Header definition: " + tabularResultMulti.getHeaderDefinition()); Iterator<Row> iter = tabularResultMulti.iterator(); while (iter.hasNext()) { Row row = iter.next(); LocalDate date = row.getLocalDate("Date"); Double value = row.getDouble("DOE/RWTC - Value"); System.out.println("Value on date " + date + " was " + value); } }
Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); Row row4 = Row.of(headerDefinition3, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); TabularResult tr2 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row4)); TabularResult tr3 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row1)); Iterator<Row> iter1 = tr1.iterator(); Iterator<Row> iter2 = tr2.iterator(); Iterator<Row> iter3 = tr3.iterator(); Assert.assertTrue(iter1.hasNext()); Assert.assertTrue(iter2.hasNext());
TabularResult result = TabularResult.of(headerDef, rows); return result; } else {
@Test public void testTabularResult() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition3 = HeaderDefinition.of("B", "A", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row2 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); Row row4 = Row.of(headerDefinition3, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); Assert.assertEquals(tr1, tr1); Assert.assertEquals(tr1.hashCode(), tr1.hashCode()); Assert.assertNotEquals(null, tr1); TabularResult tr2 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row4)); Assert.assertNotEquals(tr1, tr2); Assert.assertNotEquals(tr1.hashCode(), tr2.hashCode()); TabularResult tr3 = TabularResult.of(headerDefinition2, Arrays.asList(row2, row1)); Assert.assertNotEquals(tr2, tr3); Assert.assertNotEquals(tr2.hashCode(), tr3.hashCode()); }
/** * The main body of the code. */ private void run() { ClassicQuandlSession session = ClassicQuandlSession.create(); TabularResult tabularResult = session.getDataSet( DataSetRequest.Builder .of("SSE/VROS") // VERIANOS REAL ESTATE AG on Boerse Stuttgart .withColumn(3) // Last (looked up previously) .withStartDate(RECENTISH_DATE) .withFrequency(Frequency.MONTHLY) .build()); System.out.println("Header definition: " + tabularResult.getHeaderDefinition()); for (final Row row : tabularResult) { LocalDate date = row.getLocalDate("Date"); Double value = row.getDouble("Last"); System.out.println("Value on date " + date + " was " + value); } }
/** * The main body of the code. */ private void run() { ClassicQuandlSession session = ClassicQuandlSession.create(); TabularResult tabularResult = session.getDataSet( DataSetRequest.Builder.of("WIKI/AAPL").withMaxRows(10).build()); System.out.println(tabularResult.toPrettyPrintedString()); }
TabularResult result = TabularResult.of(headerDef, rows); return result; } else {
@Test public void runAccessorTests() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); Assert.assertEquals(tr1.get(0).getString(0), "Jim"); Assert.assertEquals(tr1.get(0).getString(1), "Miranda"); Assert.assertEquals(tr1.get(0).getString(2), "1.2"); Assert.assertEquals(tr1.get(0).getDouble(2), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString(3), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate(3), LocalDate.of(2009, 9, 13)); Assert.assertEquals(tr1.get(0).getString("A"), "Jim"); Assert.assertEquals(tr1.get(0).getString("B"), "Miranda"); Assert.assertEquals(tr1.get(0).getString("C"), "1.2"); Assert.assertEquals(tr1.get(0).getDouble("C"), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString("D"), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate("D"), LocalDate.of(2009, 9, 13)); }
/** * The main body of the code. */ private void run() { QuandlSession session = QuandlSession.create(); TabularResult tabularResult = session.getDataSet( DataSetRequest.Builder .of("WIKI/AAPL") .withFrequency(Frequency.QUARTERLY) .withColumn(CLOSE_COLUMN) .withTransform(Transform.NORMALIZE) .build()); System.out.println(tabularResult.toPrettyPrintedString()); }