now all compiling
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/2d156bcd Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/2d156bcd Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/2d156bcd Branch: refs/heads/master Commit: 2d156bcd0721f436ea42c3bc4a0af314375873b4 Parents: ab5c948 Author: JoÌrg Unbehauen <jo...@unbehauen.net> Authored: Thu Jul 27 18:05:40 2017 +0200 Committer: JoÌrg Unbehauen <jo...@unbehauen.net> Committed: Thu Jul 27 18:05:40 2017 +0200 ---------------------------------------------------------------------- .../cassandra/CassandraDataContext.java | 3 +- .../metamodel/cassandra/CassandraDataSet.java | 7 +- .../cassandra/CassandraDataContextTest.java | 2 +- .../apache/metamodel/data/AbstractDataSet.java | 3 - .../org/apache/metamodel/data/EmptyDataSet.java | 5 ++ .../metamodel/data/SimpleDataSetHeader.java | 5 ++ .../intercept/InterceptableDataContext.java | 20 +++-- .../metamodel/schema/MutableRelationship.java | 2 +- .../apache/metamodel/schema/MutableSchema.java | 5 ++ .../create/AbstractCreateTableBuilderTest.java | 2 +- .../metamodel/couchdb/CouchDbDataContext.java | 7 +- .../metamodel/couchdb/CouchDbDataSet.java | 3 +- .../CouchDbSimpleTableDefSchemaBuilder.java | 3 +- .../couchdb/CouchDbDataContextTest.java | 10 +-- .../metamodel/csv/CsvCreateTableBuilder.java | 6 +- .../apache/metamodel/csv/CsvDataContext.java | 4 +- .../org/apache/metamodel/csv/CsvDataSet.java | 9 ++- .../org/apache/metamodel/csv/CsvSchema.java | 10 ++- .../java/org/apache/metamodel/csv/CsvTable.java | 29 +++---- .../metamodel/csv/SingleLineCsvDataSet.java | 9 ++- .../metamodel/csv/CsvBigFileMemoryTest.java | 4 +- .../metamodel/csv/CsvDataContextTest.java | 74 +++++++++--------- .../metamodel/csv/SingleLineCsvRowTest.java | 4 +- .../InterceptionCsvIntegrationTest.java | 6 +- .../metamodel/dynamodb/DynamoDbDataContext.java | 8 +- .../metamodel/dynamodb/DynamoDbDataSet.java | 7 +- .../dynamodb/DynamoDbTableCreationBuilder.java | 3 +- .../DynamoDbDataContextIntegrationTest.java | 2 +- .../nativeclient/ElasticSearchDataContext.java | 7 +- .../nativeclient/ElasticSearchDataSet.java | 9 +-- .../ElasticSearchDataContextTest.java | 16 ++-- .../rest/ElasticSearchRestDataContext.java | 7 +- .../rest/JestElasticSearchDataSet.java | 6 -- .../rest/JestElasticSearchDataContextTest.java | 16 ++-- .../rest/JestElasticSearchUtilsTest.java | 14 ++-- .../excel/DefaultSpreadsheetReaderDelegate.java | 7 +- .../metamodel/excel/ExcelDataContext.java | 3 +- .../metamodel/excel/ExcelDeleteBuilder.java | 3 +- .../excel/ExcelTableCreationBuilder.java | 4 +- .../org/apache/metamodel/excel/ExcelUtils.java | 4 +- .../excel/SpreadsheetReaderDelegate.java | 4 +- .../org/apache/metamodel/excel/XlsDataSet.java | 5 +- .../metamodel/excel/XlsxRowPublisherAction.java | 12 +-- .../excel/XlsxSpreadsheetReaderDelegate.java | 10 +-- .../DefaultSpreadsheetReaderDelegateTest.java | 27 +++---- .../metamodel/excel/ExcelDataContextTest.java | 82 ++++++++++---------- .../excel/ExcelUpdateCallbackTest.java | 4 +- .../fixedwidth/FixedWidthDataContext.java | 3 +- .../metamodel/fixedwidth/FixedWidthDataSet.java | 8 +- .../FixedWidthConfigurationReaderTest.java | 2 +- .../fixedwidth/FixedWidthDataContextTest.java | 26 +++---- .../metamodel/hbase/HBaseDataContext.java | 2 +- .../apache/metamodel/hbase/HBaseDataSet.java | 7 +- .../metamodel/hbase/HBaseDataContextTest.java | 2 +- .../metamodel/jdbc/JdbcCreateTableBuilder.java | 15 ++-- .../apache/metamodel/jdbc/JdbcDataContext.java | 28 +++---- .../metamodel/jdbc/JdbcMetadataLoader.java | 5 +- .../org/apache/metamodel/jdbc/JdbcSchema.java | 3 +- .../apache/metamodel/jdbc/QuerySplitter.java | 4 +- .../org/apache/metamodel/jdbc/DerbyTest.java | 16 ++-- .../apache/metamodel/jdbc/H2databaseTest.java | 20 ++--- .../org/apache/metamodel/jdbc/HsqldbTest.java | 14 ++-- .../metamodel/jdbc/JdbcDataContextTest.java | 31 ++++---- .../metamodel/jdbc/JdbcDeleteBuilderTest.java | 4 +- .../metamodel/jdbc/JdbcInsertBuilderTest.java | 6 +- .../apache/metamodel/jdbc/JdbcSchemaTest.java | 10 +-- .../metamodel/jdbc/JdbcTestTemplates.java | 2 +- .../metamodel/jdbc/JdbcUpdateBuilderTest.java | 8 +- .../metamodel/jdbc/QuerySplitterTest.java | 15 ++-- .../org/apache/metamodel/jdbc/SqliteTest.java | 11 ++- .../jdbc/integrationtests/DB2Test.java | 6 +- .../jdbc/integrationtests/FirebirdTest.java | 54 +++++++------ .../jdbc/integrationtests/MysqlTest.java | 18 ++--- .../jdbc/integrationtests/OracleTest.java | 43 ++++++---- .../jdbc/integrationtests/PostgresqlTest.java | 52 ++++++------- .../SQLServerJtdsDriverTest.java | 8 +- .../SQLServerMicrosoftDriverTest.java | 6 +- .../apache/metamodel/json/JsonDataContext.java | 6 +- .../metamodel/json/JsonDataContextTest.java | 11 ++- .../mongodb/mongo2/MongoDbDataContext.java | 41 +++++----- .../mongodb/mongo2/MongoDbDataSet.java | 11 +-- .../mongodb/mongo2/MongoDbDataContextTest.java | 17 ++-- .../mongodb/mongo2/MongoDbDataCopyer.java | 3 +- .../mongodb/mongo3/MongoDbDataContext.java | 42 +++++----- .../mongodb/mongo3/MongoDbDataSet.java | 10 +-- .../mongodb/mongo3/MongoDbDataContextTest.java | 17 ++-- .../mongodb/mongo3/MongoDbDataCopyer.java | 2 +- .../neo4j/Neo4jCypherQueryBuilder.java | 12 +-- .../metamodel/neo4j/Neo4jDataContext.java | 9 ++- .../apache/metamodel/neo4j/Neo4jDataSet.java | 4 +- .../metamodel/neo4j/Neo4jDataContextTest.java | 10 +-- .../openoffice/OpenOfficeDataContext.java | 3 +- .../openoffice/OpenOfficeDataContextTest.java | 6 +- .../apache/metamodel/pojo/PojoDataContext.java | 5 +- .../org/apache/metamodel/pojo/PojoDataSet.java | 3 +- .../metamodel/pojo/PojoDataContextTest.java | 4 +- .../salesforce/SalesforceDataContext.java | 17 ++-- .../metamodel/salesforce/SalesforceDataSet.java | 7 +- .../metamodel/salesforce/SalesforceSchema.java | 6 +- .../metamodel/salesforce/SalesforceTable.java | 11 +-- .../salesforce/SalesforceDataContextTest.java | 14 ++-- .../salesforce/SalesforceDataSetTest.java | 5 +- ...CsvDefaultConfigurationFromResourceTest.java | 2 +- ...vSpecifiedConfigurationFromFilenameTest.java | 2 +- ...lSpecifiedConfigurationFromFilenameTest.java | 2 +- .../PojoDataContextFactoryBeanDelegateTest.java | 6 +- .../metamodel/sugarcrm/SugarCrmDataContext.java | 4 +- .../metamodel/sugarcrm/SugarCrmDataSet.java | 14 ++-- .../metamodel/sugarcrm/SugarCrmSchema.java | 5 +- .../metamodel/sugarcrm/SugarCrmTable.java | 13 ++-- .../metamodel/sugarcrm/SugarCrmXmlHelper.java | 2 +- .../sugarcrm/SugarCrmDataContextTest.java | 31 ++++---- .../apache/metamodel/xml/XmlDomDataContext.java | 4 +- 113 files changed, 662 insertions(+), 620 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java b/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java index 3a1684e..08d3fd9 100644 --- a/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java +++ b/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java @@ -69,7 +69,6 @@ import com.datastax.driver.core.querybuilder.Select.Selection; public class CassandraDataContext extends QueryPostprocessDataContext implements DataContext { private static final Logger logger = LoggerFactory.getLogger(CassandraDataContext.class); - private final Cluster cassandraCluster; private final SimpleTableDef[] tableDefs; private final String keySpaceName; @@ -188,7 +187,7 @@ public class CassandraDataContext extends QueryPostprocessDataContext implements } @Override - protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { + protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { final Select query = QueryBuilder.select().all().from(keySpaceName, table.getName()); if (limitMaxRowsIsSet(maxRows)) { query.limit(maxRows); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataSet.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataSet.java b/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataSet.java index ea02176..ff222a1 100644 --- a/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataSet.java +++ b/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataSet.java @@ -20,10 +20,13 @@ package org.apache.metamodel.cassandra; import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; import org.apache.metamodel.data.AbstractDataSet; import org.apache.metamodel.data.DataSet; import org.apache.metamodel.data.Row; +import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; /** @@ -36,8 +39,8 @@ final class CassandraDataSet extends AbstractDataSet { private volatile com.datastax.driver.core.Row _dbObject; - public CassandraDataSet(Iterator<com.datastax.driver.core.Row> cursor, Column[] columns) { - super(columns); + public CassandraDataSet(Iterator<com.datastax.driver.core.Row> cursor, List<Column> columns) { + super(columns.stream().map(SelectItem::new).collect(Collectors.toList())); _cursor = cursor; } http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java ---------------------------------------------------------------------- diff --git a/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java b/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java index a9d9605..575bb5f 100644 --- a/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java +++ b/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java @@ -83,7 +83,7 @@ public class CassandraDataContextTest { @Test public void testSchemaAndSimpleQuery() throws Exception { - String existingTables = Arrays.toString(dc.getDefaultSchema().getTableNames()); + String existingTables = Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()); assertTrue(existingTables.contains(testTableName)); assertTrue(existingTables.contains(testCounterTableName)); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java b/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java index 6e64446..17699b5 100644 --- a/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java +++ b/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java @@ -64,9 +64,6 @@ public abstract class AbstractDataSet extends BaseObject implements DataSet { _header = Objects.requireNonNull(header); } - public AbstractDataSet(Column[] columns) { - this(MetaModelHelper.createSelectItems(columns)); - } /** * {@inheritDoc} http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java b/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java index fd71be3..89d5d35 100644 --- a/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java +++ b/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java @@ -19,6 +19,7 @@ package org.apache.metamodel.data; import java.util.List; +import java.util.stream.Collectors; import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; @@ -36,6 +37,10 @@ public final class EmptyDataSet extends AbstractDataSet { this(new SimpleDataSetHeader(selectItems)); } + public static EmptyDataSet fromColumns(List<Column> cols){ + return new EmptyDataSet(cols.stream().map(SelectItem::new).collect(Collectors.toList())); + } + @Override public boolean next() { return false; http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java b/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java index afc6226..71703d5 100644 --- a/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java +++ b/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java @@ -49,6 +49,11 @@ public class SimpleDataSetHeader implements DataSetHeader { } + public static SimpleDataSetHeader fromColumns(List<Column> cols){ + return new SimpleDataSetHeader(cols.stream().map(SelectItem::new).collect(Collectors.toList())); + } + + @Override public final List<SelectItem> getSelectItems() { return Collections.unmodifiableList(_items); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java b/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java index 1811e78..3076ca8 100644 --- a/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java +++ b/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java @@ -194,17 +194,15 @@ public class InterceptableDataContext implements UpdateableDataContext { @Override public List<Schema> getSchemas() throws MetaModelException { - List<Schema> schemas = _delegate.getSchemas(); - List<Schema> result = new ArrayList<>(schemas.size()); - if (!_schemaInterceptors.isEmpty()) { - for (int i = 0; i < schemas.size(); i++) { - schemas.set(i, _schemaInterceptors.interceptAll(schemas.get(i))); - } - }else { - result = schemas; - } - return result; - + return _delegate.getSchemas().stream() + .map(schema -> { + if(_schemaInterceptors.isEmpty()){ + return schema; + }else{ + return _schemaInterceptors.interceptAll(schema); + } + + }).collect(Collectors.toList()); } @Override http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java b/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java index 466244c..3ea624c 100644 --- a/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java +++ b/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java @@ -110,7 +110,7 @@ public class MutableRelationship extends AbstractRelationship implements List<Column> pcols = new ArrayList<>(); pcols.add(primaryColumn); List<Column> fcols = new ArrayList<>(); - pcols.add(foreignColumn); + fcols.add(foreignColumn); return createRelationship(pcols, fcols); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java b/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java index 29d361b..f01b5c0 100644 --- a/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java +++ b/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java @@ -68,6 +68,11 @@ public class MutableSchema extends AbstractSchema implements Serializable, return Collections.unmodifiableList(_tables); } + public List<MutableTable> getMutableTables() { + return Collections.unmodifiableList(_tables); + } + + public MutableSchema setTables(Collection<? extends MutableTable> tables) { clearTables(); for (MutableTable table : tables) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java index f5e7356..e108277 100644 --- a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java +++ b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java @@ -102,6 +102,6 @@ public class AbstractCreateTableBuilderTest extends TestCase { assertEquals("Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]", table.getColumn(1).toString()); assertEquals("Column[name=baz,columnNumber=2,type=null,nullable=null,nativeType=null,columnSize=null]", - table.getColumn(1).toString()); + table.getColumn(2).toString()); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java ---------------------------------------------------------------------- diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java index f98fa81..bc0a19d 100644 --- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java +++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java @@ -19,6 +19,7 @@ package org.apache.metamodel.couchdb; import java.util.List; +import java.util.stream.Collectors; import org.apache.metamodel.MetaModelException; import org.apache.metamodel.MetaModelHelper; @@ -111,7 +112,7 @@ public class CouchDbDataContext extends QueryPostprocessDataContext implements U } @Override - protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int firstRow, int maxRows) { + protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int firstRow, int maxRows) { // the connector represents a handle to the the couchdb "database". final String databaseName = table.getName(); final CouchDbConnector connector = _couchDbInstance.createConnector(databaseName, false); @@ -128,12 +129,12 @@ public class CouchDbDataContext extends QueryPostprocessDataContext implements U final StreamingViewResult streamingView = connector.queryForStreamingView(query); - final SelectItem[] selectItems = MetaModelHelper.createSelectItems(columns); + final List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList()); return new CouchDbDataSet(selectItems, streamingView); } @Override - protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { + protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { return materializeMainSchemaTable(table, columns, 1, maxRows); } http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataSet.java ---------------------------------------------------------------------- diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataSet.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataSet.java index 47b0ac9..fef648e 100644 --- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataSet.java +++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataSet.java @@ -19,6 +19,7 @@ package org.apache.metamodel.couchdb; import java.util.Iterator; +import java.util.List; import org.apache.metamodel.data.AbstractDataSet; import org.apache.metamodel.data.DataSetHeader; @@ -37,7 +38,7 @@ final class CouchDbDataSet extends AbstractDataSet { private final StreamingViewResult _streamingViewResult; private Row _row; - public CouchDbDataSet(SelectItem[] selectItems, StreamingViewResult streamingViewResult) { + public CouchDbDataSet(List<SelectItem> selectItems, StreamingViewResult streamingViewResult) { super(selectItems); _streamingViewResult = streamingViewResult; http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbSimpleTableDefSchemaBuilder.java ---------------------------------------------------------------------- diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbSimpleTableDefSchemaBuilder.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbSimpleTableDefSchemaBuilder.java index 308d8f2..97e0f8b 100644 --- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbSimpleTableDefSchemaBuilder.java +++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbSimpleTableDefSchemaBuilder.java @@ -40,8 +40,7 @@ public class CouchDbSimpleTableDefSchemaBuilder extends SimpleTableDefSchemaBuil @Override public MutableSchema build() { MutableSchema schema = super.build(); - MutableTable[] tables = schema.getTables(); - for (MutableTable table : tables) { + for (MutableTable table : schema.getMutableTables()) { CouchDbTableCreationBuilder.addMandatoryColumns(table); } return schema; http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java ---------------------------------------------------------------------- diff --git a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java index c2ec998..508f3f1 100644 --- a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java +++ b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java @@ -166,7 +166,7 @@ public class CouchDbDataContextTest extends CouchDbTestCase { + "Column[name=bar,columnNumber=2,type=STRING,nullable=null,nativeType=null,columnSize=null], " + "Column[name=baz,columnNumber=3,type=INTEGER,nullable=null,nativeType=null,columnSize=null], " + "Column[name=foo,columnNumber=4,type=STRING,nullable=null,nativeType=null,columnSize=null]]", - Arrays.toString(table.getColumns())); + Arrays.toString(table.getColumns().toArray())); // first delete the manually created database! dc.executeUpdate(new UpdateScript() { @@ -184,7 +184,7 @@ public class CouchDbDataContextTest extends CouchDbTestCase { public void run(UpdateCallback callback) { Table table = callback.createTable(dc.getDefaultSchema(), databaseName).withColumn("foo") .ofType(ColumnType.STRING).withColumn("greeting").ofType(ColumnType.STRING).execute(); - assertEquals("[_id, _rev, foo, greeting]", Arrays.toString(table.getColumnNames())); + assertEquals("[_id, _rev, foo, greeting]", Arrays.toString(table.getColumnNames().toArray())); } }); @@ -256,10 +256,10 @@ public class CouchDbDataContextTest extends CouchDbTestCase { // verify schema and execute query Schema schema = dc.getMainSchema(); - assertEquals("[" + getDatabaseName() + "]", Arrays.toString(schema.getTableNames())); + assertEquals("[" + getDatabaseName() + "]", Arrays.toString(schema.getTableNames().toArray())); assertEquals("[_id, _rev, age, gender, name]", - Arrays.toString(schema.getTableByName(getDatabaseName()).getColumnNames())); + Arrays.toString(schema.getTableByName(getDatabaseName()).getColumnNames().toArray())); Column idColumn = schema.getTableByName(getDatabaseName()).getColumnByName("_id"); assertEquals("Column[name=_id,columnNumber=0,type=STRING,nullable=false,nativeType=null,columnSize=null]", idColumn.toString()); @@ -404,7 +404,7 @@ public class CouchDbDataContextTest extends CouchDbTestCase { Table table = dc.getTableByQualifiedLabel(getDatabaseName()); assertNotNull(table); - assertEquals("[_id, _rev, name, gender, age]", Arrays.toString(table.getColumnNames())); + assertEquals("[_id, _rev, name, gender, age]", Arrays.toString(table.getColumnNames().toArray())); DataSet ds; http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java b/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java index cd0bb38..b197f31 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java @@ -23,6 +23,8 @@ import org.apache.metamodel.schema.MutableTable; import org.apache.metamodel.schema.Schema; import org.apache.metamodel.schema.Table; +import java.util.List; + final class CsvCreateTableBuilder extends AbstractTableCreationBuilder<CsvUpdateCallback> { public CsvCreateTableBuilder(CsvUpdateCallback updateCallback, Schema schema, String name) { @@ -37,12 +39,12 @@ final class CsvCreateTableBuilder extends AbstractTableCreationBuilder<CsvUpdate CsvUpdateCallback csvUpdateCallback = getUpdateCallback(); MutableTable table = getTable(); - String[] columnNames = table.getColumnNames(); + List<String> columnNames = table.getColumnNames(); CsvDataContext csvDataContext = (CsvDataContext) csvUpdateCallback.getDataContext(); if (csvDataContext.getConfiguration().getColumnNameLineNumber() != CsvConfiguration.NO_COLUMN_NAME_LINE) { - csvUpdateCallback.writeRow(columnNames, false); + csvUpdateCallback.writeRow(columnNames.toArray(new String[columnNames.size()]), false); } CsvSchema schema = (CsvSchema) table.getSchema(); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java b/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java index 2e66ebe..34b25fa 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java @@ -270,7 +270,7 @@ public final class CsvDataContext extends QueryPostprocessDataContext implements } @Override - public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { + public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { final int lineNumber = _configuration.getColumnNameLineNumber(); final int columnCount = table.getColumnCount(); @@ -282,7 +282,7 @@ public final class CsvDataContext extends QueryPostprocessDataContext implements String line = reader.readLine(); if (line == null) { FileHelper.safeClose(reader); - return new EmptyDataSet(columns); + return EmptyDataSet.fromColumns(columns); } } } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/main/java/org/apache/metamodel/csv/CsvDataSet.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvDataSet.java b/csv/src/main/java/org/apache/metamodel/csv/CsvDataSet.java index b93db3e..96acae7 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/CsvDataSet.java +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvDataSet.java @@ -19,11 +19,14 @@ package org.apache.metamodel.csv; import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; import org.apache.metamodel.MetaModelException; import org.apache.metamodel.data.AbstractDataSet; import org.apache.metamodel.data.DefaultRow; import org.apache.metamodel.data.Row; +import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; import org.apache.metamodel.util.FileHelper; @@ -41,9 +44,9 @@ final class CsvDataSet extends AbstractDataSet { private volatile Integer _rowsRemaining; private volatile Row _row; - public CsvDataSet(CSVReader reader, Column[] columns, Integer maxRows, int columnsInTable, - boolean failOnInconsistentRowLength) { - super(columns); + public CsvDataSet(CSVReader reader, List<Column> columns, Integer maxRows, int columnsInTable, + boolean failOnInconsistentRowLength) { + super(columns.stream().map(SelectItem::new).collect(Collectors.toList())); _reader = reader; _columnsInTable = columnsInTable; _failOnInconsistentRowLength = failOnInconsistentRowLength; http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java index 6de36a6..6c9a01e 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java @@ -18,9 +18,13 @@ */ package org.apache.metamodel.csv; +import com.google.common.collect.Lists; import org.apache.metamodel.schema.AbstractSchema; import org.apache.metamodel.schema.Table; +import java.util.ArrayList; +import java.util.List; + final class CsvSchema extends AbstractSchema { private static final long serialVersionUID = 1L; @@ -54,10 +58,10 @@ final class CsvSchema extends AbstractSchema { } @Override - public Table[] getTables() { + public List<Table> getTables() { if (_table == null) { - return new Table[0]; + return new ArrayList<>(); } - return new Table[] { _table }; + return Lists.newArrayList(_table); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java index 0887eee..c786e70 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java @@ -19,7 +19,9 @@ package org.apache.metamodel.csv; import java.io.IOException; +import java.util.*; +import com.google.common.collect.Lists; import org.apache.metamodel.schema.AbstractTable; import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.ColumnType; @@ -40,7 +42,7 @@ final class CsvTable extends AbstractTable { private final CsvSchema _schema; private final String _tableName; - private Column[] _columns; + private List<Column> _columns; /** * Constructor for creating a new CSV table which has not yet been written. @@ -48,7 +50,7 @@ final class CsvTable extends AbstractTable { * @param schema * @param columnNames */ - public CsvTable(CsvSchema schema, String tableName, String[] columnNames) { + public CsvTable(CsvSchema schema, String tableName, List<String> columnNames) { this(schema, tableName); _columns = buildColumns(columnNames); } @@ -75,7 +77,7 @@ final class CsvTable extends AbstractTable { } @Override - public Column[] getColumns() { + public List<Column> getColumns() { if (_columns == null) { synchronized (this) { if (_columns == null) { @@ -86,7 +88,7 @@ final class CsvTable extends AbstractTable { return _columns; } - private Column[] buildColumns() { + private List<Column> buildColumns() { CSVReader reader = null; try { reader = _schema.getDataContext().createCsvReader(0); @@ -95,7 +97,7 @@ final class CsvTable extends AbstractTable { for (int i = 1; i < columnNameLineNumber; i++) { reader.readNext(); } - final String[] columnHeaders = reader.readNext(); + final List<String> columnHeaders = Arrays.asList(Optional.ofNullable(reader.readNext()).orElse(new String[0])); reader.close(); return buildColumns(columnHeaders); @@ -107,9 +109,9 @@ final class CsvTable extends AbstractTable { } } - private Column[] buildColumns(final String[] columnNames) { + private List<Column> buildColumns(final List<String> columnNames) { if (columnNames == null) { - return new Column[0]; + return new ArrayList<>(); } final CsvConfiguration configuration = _schema.getDataContext().getConfiguration(); @@ -117,16 +119,17 @@ final class CsvTable extends AbstractTable { final boolean nullable = !configuration.isFailOnInconsistentRowLength(); final ColumnNamingStrategy columnNamingStrategy = configuration.getColumnNamingStrategy(); - final Column[] columns = new Column[columnNames.length]; + List<Column> columns = new ArrayList<>(); + try (final ColumnNamingSession namingSession = columnNamingStrategy.startColumnNamingSession()) { - for (int i = 0; i < columnNames.length; i++) { + for (int i = 0; i < columnNames.size(); i++) { final String intrinsicColumnName = columnNameLineNumber == CsvConfiguration.NO_COLUMN_NAME_LINE ? null - : columnNames[i]; + : columnNames.get(i); final String columnName = namingSession.getNextColumnName(new ColumnNamingContextImpl(this, intrinsicColumnName, i)); final Column column = new MutableColumn(columnName, ColumnType.STRING, this, i, null, null, nullable, null, false, null); - columns[i] = column; + columns.add(column); } } return columns; @@ -143,8 +146,8 @@ final class CsvTable extends AbstractTable { } @Override - public Relationship[] getRelationships() { - return new Relationship[0]; + public Collection<Relationship> getRelationships() { + return Lists.newArrayList(); } @Override http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvDataSet.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvDataSet.java b/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvDataSet.java index 250c249..4b24892 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvDataSet.java +++ b/csv/src/main/java/org/apache/metamodel/csv/SingleLineCsvDataSet.java @@ -20,11 +20,14 @@ package org.apache.metamodel.csv; import java.io.BufferedReader; import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; import org.apache.metamodel.MetaModelException; import org.apache.metamodel.data.AbstractDataSet; import org.apache.metamodel.data.DataSetHeader; import org.apache.metamodel.data.Row; +import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; import org.apache.metamodel.util.FileHelper; @@ -46,9 +49,9 @@ final class SingleLineCsvDataSet extends AbstractDataSet { private volatile Integer _rowsRemaining; private volatile Row _row; - public SingleLineCsvDataSet(BufferedReader reader, ICSVParser csvParser, Column[] columns, Integer maxRows, - int columnsInTable, boolean failOnInconsistentRowLength) { - super(columns); + public SingleLineCsvDataSet(BufferedReader reader, ICSVParser csvParser, List<Column> columns, Integer maxRows, + int columnsInTable, boolean failOnInconsistentRowLength) { + super(columns.stream().map(SelectItem::new).collect(Collectors.toList())); _reader = reader; _csvParser = csvParser; _columnsInTable = columnsInTable; http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/test/java/org/apache/metamodel/csv/CsvBigFileMemoryTest.java ---------------------------------------------------------------------- diff --git a/csv/src/test/java/org/apache/metamodel/csv/CsvBigFileMemoryTest.java b/csv/src/test/java/org/apache/metamodel/csv/CsvBigFileMemoryTest.java index cf76c75..5c7d229 100644 --- a/csv/src/test/java/org/apache/metamodel/csv/CsvBigFileMemoryTest.java +++ b/csv/src/test/java/org/apache/metamodel/csv/CsvBigFileMemoryTest.java @@ -62,7 +62,7 @@ public class CsvBigFileMemoryTest extends TestCase { System.out.println("time at start: " + timeAtStart); final DataContext dc = new CsvDataContext(file, new CsvConfiguration(1, false, false)); - final Table t = dc.getDefaultSchema().getTables()[0]; + final Table t = dc.getDefaultSchema().getTables().get(0); final long timeAfterDataContext = System.currentTimeMillis(); System.out.println("time after DataContext: " + timeAfterDataContext); @@ -116,7 +116,7 @@ public class CsvBigFileMemoryTest extends TestCase { public void testApproximatedCountHugeFile() throws Exception { DataContext dc = new CsvDataContext(getHugeFile()); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query q = dc.query().from(table).selectCount().toQuery(); SelectItem selectItem = q.getSelectClause().getItem(0); selectItem.setFunctionApproximationAllowed(true); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java ---------------------------------------------------------------------- diff --git a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java index 39f9d43..029a179 100644 --- a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java +++ b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java @@ -79,10 +79,10 @@ public class CsvDataContextTest extends TestCase { CsvDataContext dc1 = new CsvDataContext(file, csvConfiguration); - Table[] tables = dc1.getDefaultSchema().getTables(); - assertEquals(1, tables.length); + List<Table> tables = dc1.getDefaultSchema().getTables(); + assertEquals(1, tables.size()); - Table table = tables[0]; + Table table = tables.get(0); assertEquals("testEmptyFileNoColumnHeaderLine.csv", table.getName()); assertEquals(2, table.getColumnCount()); @@ -100,7 +100,7 @@ public class CsvDataContextTest extends TestCase { final CsvDataContext dc = new CsvDataContext(file); assertEquals(1, dc.getDefaultSchema().getTableCount()); - final Table table1 = dc.getDefaultSchema().getTables()[0]; + final Table table1 = dc.getDefaultSchema().getTables().get(0); assertEquals("testEmptyFileNoColumnHeaderLine.csv", table1.getName()); assertEquals(0, table1.getColumnCount()); @@ -139,7 +139,7 @@ public class CsvDataContextTest extends TestCase { .replaceAll("\n", "!LINEBREAK!")); final CsvDataContext dc = new CsvDataContext(targetFile); - final Table table = dc.getDefaultSchema().getTables()[0]; + final Table table = dc.getDefaultSchema().getTables().get(0); dc.executeUpdate(new UpdateScript() { @Override @@ -181,7 +181,7 @@ public class CsvDataContextTest extends TestCase { CsvConfiguration.NO_COLUMN_NAME_LINE)); assertEquals(1, dc.getDefaultSchema().getTableCount()); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); assertEquals("empty_file.csv", table.getName()); assertEquals(0, table.getColumnCount()); } @@ -190,7 +190,7 @@ public class CsvDataContextTest extends TestCase { DataContext dc = new CsvDataContext(new File("src/test/resources/csv_people.csv"), new CsvConfiguration(20)); assertEquals(1, dc.getDefaultSchema().getTableCount()); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); assertEquals("csv_people.csv", table.getName()); assertEquals(0, table.getColumnCount()); } @@ -236,7 +236,7 @@ public class CsvDataContextTest extends TestCase { public void testApproximatedCountSmallFile() throws Exception { DataContext dc = new CsvDataContext(new File("src/test/resources/csv_people.csv")); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query q = dc.query().from(table).selectCount().toQuery(); SelectItem selectItem = q.getSelectClause().getItem(0); selectItem.setFunctionApproximationAllowed(true); @@ -252,7 +252,7 @@ public class CsvDataContextTest extends TestCase { public void testFilterOnNumberColumn() throws Exception { CsvDataContext dc = new CsvDataContext(new File("src/test/resources/csv_people.csv")); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query q = dc.query().from(table).select("name").where("age").greaterThan(18).toQuery(); List<Object[]> result = dc.executeQuery(q).toObjectArrays(); @@ -297,7 +297,7 @@ public class CsvDataContextTest extends TestCase { } public void doTicketFileTests(DataContext dc) { - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query q = dc.query().from(table).select(table.getColumns()).toQuery(); DataSet dataSet = dc.executeQuery(q); @@ -318,18 +318,18 @@ public class CsvDataContextTest extends TestCase { public void testHighColumnNameLineNumber() throws Exception { File file = new File("src/test/resources/csv_people.csv"); QueryPostprocessDataContext dc = new CsvDataContext(file, new CsvConfiguration(3)); - Schema[] schemas = dc.getSchemas(); - assertEquals(2, schemas.length); + + assertEquals(2, dc.getSchemas().size()); Schema schema = dc.getDefaultSchema(); assertEquals("resources", schema.getName()); assertEquals(1, schema.getTableCount()); - Table table = schema.getTables()[0]; + Table table = schema.getTables().get(0); assertEquals("csv_people.csv", table.getName()); assertEquals(4, table.getColumnCount()); assertEquals(0, table.getRelationshipCount()); - Column[] columns = table.getColumns(); + Column[] columns = table.getColumns().toArray(new Column[0]); assertEquals("2", columns[0].getName()); assertEquals("michael", columns[1].getName()); assertEquals("male", columns[2].getName()); @@ -350,18 +350,17 @@ public class CsvDataContextTest extends TestCase { File file = new File("src/test/resources/csv_people.csv"); QueryPostprocessDataContext dc = new CsvDataContext(file, new CsvConfiguration( CsvConfiguration.NO_COLUMN_NAME_LINE)); - Schema[] schemas = dc.getSchemas(); - assertEquals(2, schemas.length); + assertEquals(2, dc.getSchemas().size()); Schema schema = dc.getDefaultSchema(); assertEquals("resources", schema.getName()); assertEquals(1, schema.getTableCount()); - Table table = schema.getTables()[0]; + Table table = schema.getTables().get(0); assertEquals("csv_people.csv", table.getName()); assertEquals(4, table.getColumnCount()); assertEquals(0, table.getRelationshipCount()); - Column[] columns = table.getColumns(); + Column[] columns = table.getColumns().toArray(new Column[0]); assertEquals("A", columns[0].getName()); assertEquals("B", columns[1].getName()); assertEquals("C", columns[2].getName()); @@ -381,18 +380,17 @@ public class CsvDataContextTest extends TestCase { public void testGetSchemas() throws Exception { File file = new File("src/test/resources/csv_people.csv"); QueryPostprocessDataContext dc = new CsvDataContext(file); - Schema[] schemas = dc.getSchemas(); - assertEquals(2, schemas.length); + assertEquals(2, dc.getSchemas().size()); Schema schema = dc.getDefaultSchema(); assertEquals("resources", schema.getName()); assertEquals(1, schema.getTableCount()); - Table table = schema.getTables()[0]; + Table table = schema.getTables().get(0); assertEquals("csv_people.csv", table.getName()); assertEquals(4, table.getColumnCount()); assertEquals(0, table.getRelationshipCount()); - Column[] columns = table.getColumns(); + Column[] columns = table.getColumns().toArray(new Column[0]); assertEquals("id", columns[0].getName()); assertEquals("name", columns[1].getName()); assertEquals("gender", columns[2].getName()); @@ -452,7 +450,7 @@ public class CsvDataContextTest extends TestCase { DataSet data = dc.executeQuery(q); assertEquals( "[csv_people.csv.gender, MAX(csv_people.csv.age), MIN(csv_people.csv.age), COUNT(*) AS total, MIN(csv_people.csv.id) AS firstId]", - Arrays.toString(data.getSelectItems())); + Arrays.toString(data.getSelectItems().toArray())); String[] expectations = new String[] { "Row[values=[female, 20, 17, 5, 5]]", "Row[values=[male, 19, 17, 4, 1]]" }; @@ -466,7 +464,7 @@ public class CsvDataContextTest extends TestCase { public void testMaterializeTable() throws Exception { File file = new File("src/test/resources/csv_people.csv"); CsvDataContext dc = new CsvDataContext(file, new CsvConfiguration(1, false, false)); - Table table = dc.getSchemas()[0].getTables()[0]; + Table table = dc.getSchemas().get(0).getTables().get(0); DataSet dataSet = dc.materializeMainSchemaTable(table, table.getColumns(), -1); assertNull(dataSet.getRow()); assertTrue(dataSet.next()); @@ -494,7 +492,7 @@ public class CsvDataContextTest extends TestCase { public void testAlternativeDelimitors() throws Exception { File file = new File("src/test/resources/csv_semicolon_singlequote.csv"); CsvDataContext dc = new CsvDataContext(file, semicolonConfiguration); - Table table = dc.getSchemas()[0].getTables()[0]; + Table table = dc.getSchemas().get(0).getTables().get(0); DataSet dataSet = dc.materializeMainSchemaTable(table, table.getColumns(), -1); assertTrue(dataSet.next()); assertEquals("Row[values=[1, mike, male, 18]]", dataSet.getRow().toString()); @@ -517,7 +515,7 @@ public class CsvDataContextTest extends TestCase { public void testMaxRows() throws Exception { File file = new File("src/test/resources/csv_semicolon_singlequote.csv"); CsvDataContext dc = new CsvDataContext(file, semicolonConfiguration); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query query = new Query().from(table).select(table.getColumns()).setMaxRows(5); DataSet dataSet = dc.executeQuery(query); @@ -528,7 +526,7 @@ public class CsvDataContextTest extends TestCase { public void testQueryOnlyAggregate() throws Exception { File file = new File("src/test/resources/csv_people.csv"); QueryPostprocessDataContext dc = new CsvDataContext(file); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query q = new Query().selectCount().from(table); assertEquals("SELECT COUNT(*) FROM resources.csv_people.csv", q.toString()); @@ -539,7 +537,7 @@ public class CsvDataContextTest extends TestCase { assertEquals(1, row.length); assertEquals("[9]", Arrays.toString(row)); - q.select(table.getColumns()[0]); + q.select(table.getColumns().get(0)); assertEquals("SELECT COUNT(*), csv_people.csv.id FROM resources.csv_people.csv", q.toString()); data = dc.executeQuery(q).toObjectArrays(); assertEquals(9, data.size()); @@ -563,7 +561,7 @@ public class CsvDataContextTest extends TestCase { public void testOffsetAndMaxrows() throws Exception { DataContext dc = new CsvDataContext(new File("src/test/resources/csv_people.csv")); - Table table = dc.getDefaultSchema().getTables()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); Query q = dc.query().from(table).select(table.getColumnByName("name")).toQuery(); q.setFirstRow(3); q.setMaxRows(2); @@ -571,7 +569,7 @@ public class CsvDataContextTest extends TestCase { DataSet ds; ds = dc.executeQuery(q); - assertEquals(1, ds.getSelectItems().length); + assertEquals(1, ds.getSelectItems().size()); assertTrue(ds.next()); assertEquals("peter", ds.getRow().getValue(0).toString()); assertTrue(ds.next()); @@ -594,7 +592,7 @@ public class CsvDataContextTest extends TestCase { FileHelper.copy(new File("src/test/resources/csv_to_be_truncated.csv"), file); CsvDataContext dc = new CsvDataContext(file, new CsvConfiguration(1, "UTF8", ',', '"', '\\', true)); - assertEquals("[id, name, gender, age]", Arrays.toString(dc.getDefaultSchema().getTable(0).getColumnNames())); + assertEquals("[id, name, gender, age]", Arrays.toString(dc.getDefaultSchema().getTable(0).getColumnNames().toArray())); dc.executeUpdate(new UpdateScript() { @Override @@ -628,10 +626,10 @@ public class CsvDataContextTest extends TestCase { Table table = cb.createTable(schema, "foobar").withColumn("foo").withColumn("bar").execute(); tableRef.set(table); assertEquals(schema, table.getSchema()); - assertEquals(schema.getTables()[0], table); + assertEquals(schema.getTables().get(0), table); assertTrue(file.exists()); - assertEquals("[foo, bar]", Arrays.toString(table.getColumnNames())); + assertEquals("[foo, bar]", Arrays.toString(table.getColumnNames().toArray())); cb.insertInto(table).value(0, "f").value(1, "b").execute(); cb.insertInto(table).value(0, "o").value(table.getColumnByName("bar"), "a").execute(); @@ -640,9 +638,9 @@ public class CsvDataContextTest extends TestCase { }); // query the file to check results - final Table readTable = schema.getTables()[0]; + final Table readTable = schema.getTables().get(0); assertEquals(tableRef.get(), readTable); - assertEquals("[foo, bar]", Arrays.toString(readTable.getColumnNames())); + assertEquals("[foo, bar]", Arrays.toString(readTable.getColumnNames().toArray())); final Query query = dc.query().from(readTable).select("bar").and("foo").toQuery(); DataSet ds = dc.executeQuery(query); @@ -723,15 +721,15 @@ public class CsvDataContextTest extends TestCase { public void testOnlyNumberOneSymbol() throws Exception { DataContext dc = new CsvDataContext(new File("src/test/resources/csv_only_number_one.csv")); Map<Column, TypeConverter<?, ?>> converters = Converters.autoDetectConverters(dc, dc.getDefaultSchema() - .getTables()[0], 1000); + .getTables().get(0), 1000); assertEquals(1, converters.size()); assertEquals(StringToBooleanConverter.class, converters.values().iterator().next().getClass()); dc = Converters.addTypeConverters(dc, converters); - Table table = dc.getDefaultSchema().getTables()[0]; - MutableColumn col = (MutableColumn) table.getColumns()[0]; + Table table = dc.getDefaultSchema().getTables().get(0); + MutableColumn col = (MutableColumn) table.getColumns().get(0); Query q = dc.query().from(table).select(col).toQuery(); assertEquals("SELECT csv_only_number_one.csv.number FROM resources.csv_only_number_one.csv", q.toSql()); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java ---------------------------------------------------------------------- diff --git a/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java b/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java index a01821c..0686cab 100644 --- a/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java +++ b/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java @@ -22,7 +22,9 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.List; +import com.google.common.collect.Lists; import org.apache.metamodel.data.Row; import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.MutableColumn; @@ -35,7 +37,7 @@ public class SingleLineCsvRowTest { @Test public void testSerialize() throws Exception { - final Column[] columns = new Column[] { new MutableColumn("1"), new MutableColumn("2") }; + final List<Column> columns = Lists.newArrayList( new MutableColumn("1"), new MutableColumn("2")); CSVParser csvParser = new CSVParser(); final SingleLineCsvDataSet dataSet = new SingleLineCsvDataSet(null, csvParser, columns, null, 2, false); final SingleLineCsvRow originalRow = new SingleLineCsvRow(dataSet, "foo,bar", 2, false, 1); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java ---------------------------------------------------------------------- diff --git a/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java b/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java index 7974beb..06c1822 100644 --- a/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java +++ b/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java @@ -68,10 +68,10 @@ public class InterceptionCsvIntegrationTest extends TestCase { }); assertEquals("[table]", - Arrays.toString(dc.getDefaultSchema().getTableNames())); - Table table = dc.getDefaultSchema().getTables()[0]; + Arrays.toString(dc.getDefaultSchema().getTableNames().toArray())); + Table table = dc.getDefaultSchema().getTables().get(0); assertEquals("[col1, col2, foobar]", - Arrays.toString(table.getColumnNames())); + Arrays.toString(table.getColumnNames().toArray())); DataSet ds = dc.query().from(table).select(table.getColumns()) .execute(); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java ---------------------------------------------------------------------- diff --git a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java index 255120c..504769d 100644 --- a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java +++ b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java @@ -24,6 +24,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.apache.metamodel.MetaModelException; import org.apache.metamodel.QueryPostprocessDataContext; @@ -257,11 +258,8 @@ public class DynamoDbDataContext extends QueryPostprocessDataContext implements } @Override - protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { - final List<String> attributeNames = new ArrayList<>(columns.length); - for (final Column column : columns) { - attributeNames.add(column.getName()); - } + protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { + final List<String> attributeNames = columns.stream().map(col-> col.getName()).collect(Collectors.toList()); final ScanRequest scanRequest = new ScanRequest(table.getName()); scanRequest.setAttributesToGet(attributeNames); if (maxRows > 0) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataSet.java ---------------------------------------------------------------------- diff --git a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataSet.java b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataSet.java index 17b781b..887b3e4 100644 --- a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataSet.java +++ b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataSet.java @@ -19,12 +19,15 @@ package org.apache.metamodel.dynamodb; import java.util.Iterator; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.apache.metamodel.data.AbstractDataSet; import org.apache.metamodel.data.DataSetHeader; import org.apache.metamodel.data.DefaultRow; import org.apache.metamodel.data.Row; +import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; import com.amazonaws.services.dynamodbv2.model.AttributeValue; @@ -35,8 +38,8 @@ final class DynamoDbDataSet extends AbstractDataSet { private final Iterator<Map<String, AttributeValue>> _iterator; private Map<String, AttributeValue> _currentItem; - public DynamoDbDataSet(Column[] columns, ScanResult result) { - super(columns); + public DynamoDbDataSet(List<Column> columns, ScanResult result) { + super(columns.stream().map(SelectItem::new).collect(Collectors.toList())); _iterator = result.getItems().iterator(); } http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbTableCreationBuilder.java ---------------------------------------------------------------------- diff --git a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbTableCreationBuilder.java b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbTableCreationBuilder.java index c9779df..f989b5d 100644 --- a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbTableCreationBuilder.java +++ b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbTableCreationBuilder.java @@ -63,8 +63,7 @@ class DynamoDbTableCreationBuilder extends AbstractTableCreationBuilder<DynamoDb DynamoDbDataContext.SYSTEM_PROPERTY_THROUGHPUT_WRITE_CAPACITY, "5")); final ProvisionedThroughput provisionedThroughput = new ProvisionedThroughput(readCapacity, writeCapacity); - final Column[] columns = table.getColumns(); - for (Column column : columns) { + for (Column column : table.getColumns()) { if (column.isPrimaryKey()) { final KeyType keyType = getKeyType(column.getRemarks()); keySchema.add(new KeySchemaElement(column.getName(), keyType)); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/dynamodb/src/test/java/org/apache/metamodel/dynamodb/DynamoDbDataContextIntegrationTest.java ---------------------------------------------------------------------- diff --git a/dynamodb/src/test/java/org/apache/metamodel/dynamodb/DynamoDbDataContextIntegrationTest.java b/dynamodb/src/test/java/org/apache/metamodel/dynamodb/DynamoDbDataContextIntegrationTest.java index 967655d..ba60096 100644 --- a/dynamodb/src/test/java/org/apache/metamodel/dynamodb/DynamoDbDataContextIntegrationTest.java +++ b/dynamodb/src/test/java/org/apache/metamodel/dynamodb/DynamoDbDataContextIntegrationTest.java @@ -147,7 +147,7 @@ public class DynamoDbDataContextIntegrationTest { assertEquals(tableName, table.getName()); // Right now we can only discover indexed columns - assertEquals("[id, counter, project, foundation]", Arrays.toString(table.getColumnNames())); + assertEquals("[id, counter, project, foundation]", Arrays.toString(table.getColumnNames().toArray())); final Column idColumn = table.getColumnByName("id"); assertEquals(true, idColumn.isPrimaryKey()); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java ---------------------------------------------------------------------- diff --git a/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java b/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java index 7353cbd..83d89c7 100644 --- a/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java +++ b/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java @@ -24,6 +24,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.apache.metamodel.DataContext; import org.apache.metamodel.MetaModelException; @@ -253,7 +254,7 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext implem dynamicTableDefinitions.clear(); dynamicTableDefinitions.addAll(Arrays.asList(tables)); for (final SimpleTableDef tableDef : dynamicTableDefinitions) { - final List<String> tableNames = Arrays.asList(theSchema.getTableNames()); + final List<String> tableNames = theSchema.getTableNames(); if (!tableNames.contains(tableDef.getName())) { addTable(theSchema, tableDef); @@ -294,10 +295,10 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext implem } @Override - protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { + protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { final SearchRequestBuilder searchRequest = createSearchRequest(table, 1, maxRows, null); final SearchResponse response = searchRequest.execute().actionGet(); - return new ElasticSearchDataSet(elasticSearchClient, response, columns, false); + return new ElasticSearchDataSet(elasticSearchClient, response, columns.stream().map(SelectItem::new).collect(Collectors.toList()), false); } private SearchRequestBuilder createSearchRequest(Table table, int firstRow, int maxRows, QueryBuilder queryBuilder) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataSet.java ---------------------------------------------------------------------- diff --git a/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataSet.java b/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataSet.java index 7f4048a..1a04bc8 100644 --- a/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataSet.java +++ b/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataSet.java @@ -55,14 +55,7 @@ final class ElasticSearchDataSet extends AbstractDataSet { _searchResponse = searchResponse; _closed = new AtomicBoolean(false); } - - public ElasticSearchDataSet(Client client, SearchResponse searchResponse, Column[] columns, - boolean queryPostProcessed) { - super(columns); - _client = client; - _searchResponse = searchResponse; - _closed = new AtomicBoolean(false); - } + @Override public void close() { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/native/src/test/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContextTest.java ---------------------------------------------------------------------- diff --git a/elasticsearch/native/src/test/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContextTest.java b/elasticsearch/native/src/test/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContextTest.java index 8a83263..ec5ecba 100644 --- a/elasticsearch/native/src/test/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContextTest.java +++ b/elasticsearch/native/src/test/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContextTest.java @@ -125,11 +125,11 @@ public class ElasticSearchDataContextTest { @Test public void testSimpleQuery() throws Exception { assertEquals("[bulktype, peopletype, tweet1, tweet2]", - Arrays.toString(dataContext.getDefaultSchema().getTableNames())); + Arrays.toString(dataContext.getDefaultSchema().getTableNames().toArray())); Table table = dataContext.getDefaultSchema().getTableByName("tweet1"); - assertEquals("[_id, message, postDate, user]", Arrays.toString(table.getColumnNames())); + assertEquals("[_id, message, postDate, user]", Arrays.toString(table.getColumnNames().toArray())); assertEquals(ColumnType.STRING, table.getColumnByName("user").getType()); assertEquals(ColumnType.DATE, table.getColumnByName("postDate").getType()); @@ -146,7 +146,7 @@ public class ElasticSearchDataContextTest { @Test public void testDocumentIdAsPrimaryKey() throws Exception { Table table = dataContext.getDefaultSchema().getTableByName("tweet2"); - Column[] pks = table.getPrimaryKeys(); + Column[] pks = table.getPrimaryKeys().toArray(new Column[0]); assertEquals(1, pks.length); assertEquals("_id", pks[0].getName()); @@ -159,7 +159,7 @@ public class ElasticSearchDataContextTest { @Test public void testExecutePrimaryKeyLookupQuery() throws Exception { Table table = dataContext.getDefaultSchema().getTableByName("tweet2"); - Column[] pks = table.getPrimaryKeys(); + Column[] pks = table.getPrimaryKeys().toArray(new Column[0]); try (DataSet ds = dataContext.query().from(table).selectAll().where(pks[0]).eq("tweet_tweet2_1").execute()) { assertTrue(ds.next()); @@ -209,10 +209,10 @@ public class ElasticSearchDataContextTest { dataContext.executeUpdate(createTable); final Table table = schema.getTableByName("testCreateTable"); - assertEquals("[" + ElasticSearchUtils.FIELD_ID + ", foo, bar]", Arrays.toString(table.getColumnNames())); + assertEquals("[" + ElasticSearchUtils.FIELD_ID + ", foo, bar]", Arrays.toString(table.getColumnNames().toArray())); final Column fooColumn = table.getColumnByName("foo"); - final Column idColumn = table.getPrimaryKeys()[0]; + final Column idColumn = table.getPrimaryKeys().get(0); assertEquals("Column[name=_id,columnNumber=0,type=STRING,nullable=null,nativeType=null,columnSize=null]", idColumn.toString()); @@ -491,7 +491,7 @@ public class ElasticSearchDataContextTest { DataSet data = dataContext.executeQuery(q); assertEquals( "[peopletype.gender, MAX(peopletype.age), MIN(peopletype.age), COUNT(*) AS total, MIN(peopletype.id) AS firstId]", - Arrays.toString(data.getSelectItems())); + Arrays.toString(data.getSelectItems().toArray())); assertTrue(data.next()); assertEquals("Row[values=[female, 20, 17, 5, 5]]", data.getRow().toString()); @@ -553,7 +553,7 @@ public class ElasticSearchDataContextTest { ElasticSearchDataContext dataContext2 = new ElasticSearchDataContext(client, indexName2); - assertEquals("[tweet3]", Arrays.toString(dataContext2.getDefaultSchema().getTableNames())); + assertEquals("[tweet3]", Arrays.toString(dataContext2.getDefaultSchema().getTableNames().toArray())); } private static void createIndex() { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java ---------------------------------------------------------------------- diff --git a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java index 57ad267..8d89c05 100644 --- a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java +++ b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java @@ -25,6 +25,7 @@ import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import org.apache.metamodel.BatchUpdateScript; import org.apache.metamodel.DataContext; @@ -234,7 +235,7 @@ public class ElasticSearchRestDataContext extends QueryPostprocessDataContext im dynamicTableDefinitions.clear(); dynamicTableDefinitions.addAll(Arrays.asList(tables)); for (final SimpleTableDef tableDef : dynamicTableDefinitions) { - final List<String> tableNames = Arrays.asList(theSchema.getTableNames()); + final List<String> tableNames = theSchema.getTableNames(); if (!tableNames.contains(tableDef.getName())) { addTable(theSchema, tableDef); @@ -299,11 +300,11 @@ public class ElasticSearchRestDataContext extends QueryPostprocessDataContext im } @Override - protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { + protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { SearchResult searchResult = executeSearch(table, createSearchRequest(1, maxRows, null), scrollNeeded( maxRows)); - return new JestElasticSearchDataSet(elasticSearchClient, searchResult, columns); + return new JestElasticSearchDataSet(elasticSearchClient, searchResult, columns.stream().map(SelectItem::new).collect(Collectors.toList())); } private SearchSourceBuilder createSearchRequest(int firstRow, int maxRows, QueryBuilder queryBuilder) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataSet.java ---------------------------------------------------------------------- diff --git a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataSet.java b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataSet.java index 7f485ba..0414358 100644 --- a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataSet.java +++ b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataSet.java @@ -56,12 +56,6 @@ final class JestElasticSearchDataSet extends AbstractDataSet { _closed = new AtomicBoolean(false); } - public JestElasticSearchDataSet(JestClient client, JestResult searchResponse, Column[] columns) { - super(columns); - _client = client; - _searchResponse = searchResponse; - _closed = new AtomicBoolean(false); - } @Override public void close() { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataContextTest.java ---------------------------------------------------------------------- diff --git a/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataContextTest.java b/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataContextTest.java index 9d7d2a8..53dbdf6 100644 --- a/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataContextTest.java +++ b/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchDataContextTest.java @@ -124,11 +124,11 @@ public class JestElasticSearchDataContextTest { @Test public void testSimpleQuery() throws Exception { assertEquals("[bulktype, peopletype, tweet1, tweet2]", - Arrays.toString(dataContext.getDefaultSchema().getTableNames())); + Arrays.toString(dataContext.getDefaultSchema().getTableNames().toArray())); Table table = dataContext.getDefaultSchema().getTableByName("tweet1"); - assertEquals("[_id, message, postDate, user]", Arrays.toString(table.getColumnNames())); + assertEquals("[_id, message, postDate, user]", Arrays.toString(table.getColumnNames().toArray())); assertEquals(ColumnType.STRING, table.getColumnByName("user").getType()); assertEquals(ColumnType.DATE, table.getColumnByName("postDate").getType()); @@ -145,7 +145,7 @@ public class JestElasticSearchDataContextTest { @Test public void testDocumentIdAsPrimaryKey() throws Exception { Table table = dataContext.getDefaultSchema().getTableByName("tweet2"); - Column[] pks = table.getPrimaryKeys(); + Column[] pks = table.getPrimaryKeys().toArray(new Column[0]); assertEquals(1, pks.length); assertEquals("_id", pks[0].getName()); @@ -158,7 +158,7 @@ public class JestElasticSearchDataContextTest { @Test public void testExecutePrimaryKeyLookupQuery() throws Exception { Table table = dataContext.getDefaultSchema().getTableByName("tweet2"); - Column[] pks = table.getPrimaryKeys(); + Column[] pks = table.getPrimaryKeys().toArray(new Column[0]); try (DataSet ds = dataContext.query().from(table).selectAll().where(pks[0]).eq("tweet_tweet2_1").execute()) { assertTrue(ds.next()); @@ -209,10 +209,10 @@ public class JestElasticSearchDataContextTest { final Table table = schema.getTableByName("testCreateTable"); assertNotNull(table); - assertEquals("[" + ElasticSearchRestDataContext.FIELD_ID + ", foo, bar]", Arrays.toString(table.getColumnNames())); + assertEquals("[" + ElasticSearchRestDataContext.FIELD_ID + ", foo, bar]", Arrays.toString(table.getColumnNames().toArray())); final Column fooColumn = table.getColumnByName("foo"); - final Column idColumn = table.getPrimaryKeys()[0]; + final Column idColumn = table.getPrimaryKeys().get(0); assertEquals("Column[name=_id,columnNumber=0,type=STRING,nullable=null,nativeType=null,columnSize=null]", idColumn.toString()); @@ -490,7 +490,7 @@ public class JestElasticSearchDataContextTest { DataSet data = dataContext.executeQuery(q); assertEquals( "[peopletype.gender, MAX(peopletype.age), MIN(peopletype.age), COUNT(*) AS total, MIN(peopletype.id) AS firstId]", - Arrays.toString(data.getSelectItems())); + Arrays.toString(data.getSelectItems().toArray())); assertTrue(data.next()); assertEquals("Row[values=[female, 20, 17, 5, 5]]", data.getRow().toString()); @@ -552,7 +552,7 @@ public class JestElasticSearchDataContextTest { ElasticSearchRestDataContext dataContext2 = new ElasticSearchRestDataContext(client, indexName2); - assertEquals("[tweet3]", Arrays.toString(dataContext2.getDefaultSchema().getTableNames())); + assertEquals("[tweet3]", Arrays.toString(dataContext2.getDefaultSchema().getTableNames().toArray())); } private static void createIndex() { http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUtilsTest.java ---------------------------------------------------------------------- diff --git a/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUtilsTest.java b/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUtilsTest.java index f114826..4c8cca1 100644 --- a/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUtilsTest.java +++ b/elasticsearch/rest/src/test/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUtilsTest.java @@ -26,7 +26,9 @@ import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import com.google.common.collect.Lists; import org.apache.metamodel.data.DataSetHeader; import org.apache.metamodel.data.Row; import org.apache.metamodel.data.SimpleDataSetHeader; @@ -62,7 +64,7 @@ public class JestElasticSearchUtilsTest { public void testCreateRowWithNullValues() throws Exception { final Column col1 = new MutableColumn("col1", ColumnType.STRING); final Column col2 = new MutableColumn("col2", ColumnType.STRING); - final DataSetHeader header = new SimpleDataSetHeader(new Column[] { col1, col2 }); + final DataSetHeader header = new SimpleDataSetHeader(Lists.newArrayList(col1, col2).stream().map(SelectItem::new).collect(Collectors.toList())); final JsonObject source = new JsonObject(); source.addProperty("col1", "foo"); source.addProperty("col2", (String) null); @@ -75,7 +77,7 @@ public class JestElasticSearchUtilsTest { @Test public void testCreateRowWithNumberValueAndStringType() throws Exception { final Column col1 = new MutableColumn("col1", ColumnType.STRING); - final DataSetHeader header = new SimpleDataSetHeader(new Column[] { col1 }); + final DataSetHeader header = SimpleDataSetHeader.fromColumns(Lists.newArrayList(col1)); final JsonObject source = new JsonObject(); source.addProperty("col1", 42); final String documentId = "row1"; @@ -87,7 +89,7 @@ public class JestElasticSearchUtilsTest { @Test public void testCreateRowWithStringValueAndNumberType() throws Exception { final Column col1 = new MutableColumn("col1", ColumnType.NUMBER); - final DataSetHeader header = new SimpleDataSetHeader(new Column[] { col1 }); + final DataSetHeader header = SimpleDataSetHeader.fromColumns(Lists.newArrayList(col1)); final JsonObject source = new JsonObject(); source.addProperty("col1", "hello world"); final String documentId = "row1"; @@ -104,7 +106,7 @@ public class JestElasticSearchUtilsTest { @Test public void testCreateRowWithJsonObject() throws Exception { final Column col1 = new MutableColumn("col1", ColumnType.MAP); - final DataSetHeader header = new SimpleDataSetHeader(new Column[] { col1 }); + final DataSetHeader header = SimpleDataSetHeader.fromColumns(Lists.newArrayList(col1)); final JsonObject source = new JsonObject(); final JsonObject value = new JsonObject(); value.addProperty("foo1", "bar"); @@ -122,7 +124,7 @@ public class JestElasticSearchUtilsTest { @Test public void testCreateRowWithJsonArray() throws Exception { final Column col1 = new MutableColumn("col1", ColumnType.LIST); - final DataSetHeader header = new SimpleDataSetHeader(new Column[] { col1 }); + final DataSetHeader header = SimpleDataSetHeader.fromColumns(Lists.newArrayList(col1)); final JsonObject source = new JsonObject(); final JsonArray value = new JsonArray(); value.add(new JsonPrimitive("foo")); @@ -140,7 +142,7 @@ public class JestElasticSearchUtilsTest { @Test public void testCreateRowWithDeepNesting() throws Exception { final Column col1 = new MutableColumn("col1", ColumnType.LIST); - final DataSetHeader header = new SimpleDataSetHeader(new Column[] { col1 }); + final DataSetHeader header = SimpleDataSetHeader.fromColumns(Lists.newArrayList(col1)); final JsonObject source = new JsonObject(); final JsonObject obj2 = new JsonObject(); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegate.java ---------------------------------------------------------------------- diff --git a/excel/src/main/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegate.java b/excel/src/main/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegate.java index 009fad4..934d47c 100644 --- a/excel/src/main/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegate.java +++ b/excel/src/main/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegate.java @@ -19,10 +19,13 @@ package org.apache.metamodel.excel; import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; import org.apache.metamodel.data.DataSet; import org.apache.metamodel.data.EmptyDataSet; import org.apache.metamodel.data.MaxRowsDataSet; +import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.ColumnType; import org.apache.metamodel.schema.MutableColumn; @@ -78,12 +81,12 @@ final class DefaultSpreadsheetReaderDelegate implements SpreadsheetReaderDelegat } @Override - public DataSet executeQuery(Table table, Column[] columns, int maxRows) { + public DataSet executeQuery(Table table, List<Column> columns, int maxRows) { final Workbook wb = ExcelUtils.readWorkbook(_resource); final Sheet sheet = wb.getSheet(table.getName()); if (sheet == null || sheet.getPhysicalNumberOfRows() == 0) { - return new EmptyDataSet(columns); + return new EmptyDataSet(columns.stream().map(SelectItem::new).collect(Collectors.toList())); } DataSet dataSet = ExcelUtils.getDataSet(wb, sheet, table, _configuration); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java ---------------------------------------------------------------------- diff --git a/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java b/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java index 9ef931b..1ce4244 100644 --- a/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java +++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java @@ -21,6 +21,7 @@ package org.apache.metamodel.excel; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.util.List; import org.apache.metamodel.DataContext; import org.apache.metamodel.MetaModelException; @@ -128,7 +129,7 @@ public final class ExcelDataContext extends QueryPostprocessDataContext implemen } @Override - public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { + public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) { try { SpreadsheetReaderDelegate delegate = getSpreadsheetReaderDelegate(); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java ---------------------------------------------------------------------- diff --git a/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java b/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java index 7d835c7..e4731b3 100644 --- a/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java +++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.stream.Collectors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -55,7 +56,7 @@ final class ExcelDeleteBuilder extends AbstractRowDeletionBuilder { final Workbook workbook = _updateCallback.getWorkbook(false); final String tableName = getTable().getName(); - final SelectItem[] selectItems = MetaModelHelper.createSelectItems(getTable().getColumns()); + final List<SelectItem> selectItems = getTable().getColumns().stream().map(SelectItem::new).collect(Collectors.toList()); final DataSetHeader header = new SimpleDataSetHeader(selectItems); final Sheet sheet = workbook.getSheet(tableName); http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java ---------------------------------------------------------------------- diff --git a/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java b/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java index 765886e..2d68a69 100644 --- a/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java +++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java @@ -48,9 +48,7 @@ final class ExcelTableCreationBuilder extends AbstractTableCreationBuilder<Excel if (lineNumber != ExcelConfiguration.NO_COLUMN_NAME_LINE) { final int zeroBasedLineNumber = lineNumber - 1; final Row row = sheet.createRow(zeroBasedLineNumber); - final Column[] columns = table.getColumns(); - for (int i = 0; i < columns.length; i++) { - final Column column = columns[i]; + for (final Column column : table.getColumns()) { final int columnNumber = column.getColumnNumber(); row.createCell(columnNumber).setCellValue(column.getName()); }