You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2017/08/07 04:36:36 UTC
[01/20] metamodel git commit: first round of refactoring
Repository: metamodel
Updated Branches:
refs/heads/master 2fe6a2b73 -> 57e48be23
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/query/FromItemTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/query/FromItemTest.java b/core/src/test/java/org/apache/metamodel/query/FromItemTest.java
index b026f8d..adca140 100644
--- a/core/src/test/java/org/apache/metamodel/query/FromItemTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/FromItemTest.java
@@ -27,6 +27,9 @@ import org.apache.metamodel.schema.Relationship;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.Collection;
+import java.util.List;
+
public class FromItemTest extends MetaModelTestCase {
private Schema _schema = getExampleSchema();
@@ -44,9 +47,9 @@ public class FromItemTest extends MetaModelTestCase {
public void testRelationJoinToString() throws Exception {
Table contributorTable = _schema.getTableByName(TABLE_CONTRIBUTOR);
Table roleTable = _schema.getTableByName(TABLE_ROLE);
- Relationship[] relationships = roleTable
+ Collection<Relationship> relationships = roleTable
.getRelationships(contributorTable);
- FromItem from = new FromItem(JoinType.INNER, relationships[0]);
+ FromItem from = new FromItem(JoinType.INNER, relationships.iterator().next());
assertEquals(
"MetaModelSchema.contributor INNER JOIN MetaModelSchema.role ON contributor.contributor_id = role.contributor_id",
from.toString());
@@ -73,7 +76,7 @@ public class FromItemTest extends MetaModelTestCase {
leftSide.setAlias("a");
SelectItem[] leftOn = new SelectItem[] { new SelectItem(projectIdColumn) };
- Column[] columns = roleTable.getColumns();
+ List<Column> columns = roleTable.getColumns();
Query subQuery = new Query();
FromItem subQueryFrom = new FromItem(roleTable);
@@ -107,7 +110,7 @@ public class FromItemTest extends MetaModelTestCase {
final QueryPostprocessDataContext dc = new QueryPostprocessDataContext() {
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
throw new UnsupportedOperationException("This method is not used");
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/query/QueryTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/query/QueryTest.java b/core/src/test/java/org/apache/metamodel/query/QueryTest.java
index 823c4d9..8e518c9 100644
--- a/core/src/test/java/org/apache/metamodel/query/QueryTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/QueryTest.java
@@ -106,7 +106,7 @@ public class QueryTest extends MetaModelTestCase {
Query q1 = new Query();
Table contributorTable = _schema.getTableByName(TABLE_CONTRIBUTOR);
Table roleTable = _schema.getTableByName(TABLE_ROLE);
- FromItem fromItem = new FromItem(JoinType.INNER, contributorTable.getRelationships(roleTable)[0]);
+ FromItem fromItem = new FromItem(JoinType.INNER, contributorTable.getRelationships(roleTable).iterator().next());
q1.from(fromItem);
Column nameColumn = contributorTable.getColumnByName(COLUMN_CONTRIBUTOR_NAME);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/query/SelectItemTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/query/SelectItemTest.java b/core/src/test/java/org/apache/metamodel/query/SelectItemTest.java
index e6bbdca..7f412c0 100644
--- a/core/src/test/java/org/apache/metamodel/query/SelectItemTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/SelectItemTest.java
@@ -24,14 +24,16 @@ import org.apache.metamodel.schema.MutableColumn;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.List;
+
public class SelectItemTest extends MetaModelTestCase {
private Schema _schema = getExampleSchema();
public void testSelectColumnInFromItem() throws Exception {
final Table projectTable = _schema.getTableByName(TABLE_PROJECT);
- final Column column1 = projectTable.getColumns()[0];
- final Column column2 = projectTable.getColumns()[1];
+ final Column column1 = projectTable.getColumns().get(0);
+ final Column column2 = projectTable.getColumns().get(1);
Query q = new Query().from(projectTable, "a").from(projectTable, "b");
q.select(column1, q.getFromClause().getItem(1));
@@ -41,12 +43,12 @@ public class SelectItemTest extends MetaModelTestCase {
}
public void testToSql() throws Exception {
- SelectItem selectItem = new SelectItem(_schema.getTableByName(TABLE_PROJECT).getColumns()[0]);
+ SelectItem selectItem = new SelectItem(_schema.getTableByName(TABLE_PROJECT).getColumns().get(0));
assertEquals("project.project_id", selectItem.toSql());
}
public void testToSqlFuntionApproximation() throws Exception {
- SelectItem selectItem = new SelectItem(FunctionType.MAX, _schema.getTableByName(TABLE_PROJECT).getColumns()[0]);
+ SelectItem selectItem = new SelectItem(FunctionType.MAX, _schema.getTableByName(TABLE_PROJECT).getColumns().get(0));
selectItem.setFunctionApproximationAllowed(true);
assertEquals("APPROXIMATE MAX(project.project_id)", selectItem.toSql());
}
@@ -65,10 +67,10 @@ public class SelectItemTest extends MetaModelTestCase {
FromItem subQueryFrom = new FromItem(roleTable);
subQueryFrom.setAlias("c");
subQuery.from(subQueryFrom);
- Column[] columns = roleTable.getColumns();
+ List<Column> columns = roleTable.getColumns();
subQuery.select(columns);
- SelectItem subQuerySelectItem = subQuery.getSelectClause().getSelectItem(columns[1]);
+ SelectItem subQuerySelectItem = subQuery.getSelectClause().getSelectItem(columns.get(1));
FromItem rightSide = new FromItem(subQuery);
rightSide.setAlias("b");
SelectItem[] rightOn = new SelectItem[] { subQuerySelectItem };
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImplTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImplTest.java b/core/src/test/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImplTest.java
index 238889f..b4baf34 100644
--- a/core/src/test/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImplTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImplTest.java
@@ -32,6 +32,8 @@ import org.apache.metamodel.schema.MutableTable;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.List;
+
public class GroupedQueryBuilderImplTest extends TestCase {
public void testFindColumnWithAlias() throws Exception {
@@ -76,7 +78,7 @@ public class GroupedQueryBuilderImplTest extends TestCase {
}
@Override
- protected String[] getSchemaNamesInternal() {
+ protected List<String> getSchemaNamesInternal() {
throw new UnsupportedOperationException();
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/query/builder/SyntaxExamplesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/query/builder/SyntaxExamplesTest.java b/core/src/test/java/org/apache/metamodel/query/builder/SyntaxExamplesTest.java
index af81801..d83e82a 100644
--- a/core/src/test/java/org/apache/metamodel/query/builder/SyntaxExamplesTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/builder/SyntaxExamplesTest.java
@@ -42,11 +42,11 @@ public class SyntaxExamplesTest extends TestCase {
super.setUp();
dc = new MockDataContext("sch", "tab1", "foo");
MutableSchema schema = (MutableSchema) dc.getDefaultSchema();
- table1 = schema.getTables()[0];
+ table1 = schema.getTables().get(0);
schema.addTable(new MutableTable("tab2").setSchema(schema));
table2 = schema.getTableByName("tab2");
- col1 = table1.getColumns()[0];
- col2 = table1.getColumns()[1];
+ col1 = table1.getColumns().get(0);
+ col2 = table1.getColumns().get(1);
}
public void testSchema() throws Exception {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/schema/MutableTableTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/schema/MutableTableTest.java b/core/src/test/java/org/apache/metamodel/schema/MutableTableTest.java
index c738a2b..1e1351b 100644
--- a/core/src/test/java/org/apache/metamodel/schema/MutableTableTest.java
+++ b/core/src/test/java/org/apache/metamodel/schema/MutableTableTest.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.schema;
import java.util.Arrays;
+import java.util.List;
import junit.framework.TestCase;
@@ -53,17 +54,17 @@ public class MutableTableTest extends TestCase {
t.addColumn(new MutableColumn("a").setType(ColumnType.VARCHAR));
t.addColumn(new MutableColumn("r").setType(ColumnType.INTEGER));
- Column[] cols = t.getColumnsOfType(ColumnType.VARCHAR);
- assertEquals(2, cols.length);
- assertEquals("b", cols[0].getName());
- assertEquals("a", cols[1].getName());
+ List<Column> cols = t.getColumnsOfType(ColumnType.VARCHAR);
+ assertEquals(2, cols.size());
+ assertEquals("b", cols.get(0).getName());
+ assertEquals("a", cols.get(1).getName());
cols = t.getColumnsOfType(ColumnType.INTEGER);
- assertEquals(1, cols.length);
- assertEquals("r", cols[0].getName());
+ assertEquals(1, cols.size());
+ assertEquals("r", cols.get(0).getName());
cols = t.getColumnsOfType(ColumnType.FLOAT);
- assertEquals(0, cols.length);
+ assertEquals(0, cols.size());
}
public void testGetIndexedColumns() throws Exception {
@@ -71,10 +72,10 @@ public class MutableTableTest extends TestCase {
t.addColumn(new MutableColumn("b").setIndexed(true));
t.addColumn(new MutableColumn("a").setIndexed(false));
t.addColumn(new MutableColumn("r").setIndexed(true));
- Column[] indexedColumns = t.getIndexedColumns();
+ List<Column> indexedColumns = t.getIndexedColumns();
assertEquals(
"[Column[name=b,columnNumber=0,type=null,nullable=null,nativeType=null,columnSize=null], Column[name=r,columnNumber=0,type=null,nullable=null,nativeType=null,columnSize=null]]",
- Arrays.toString(indexedColumns));
+ Arrays.toString(indexedColumns.toArray()));
for (Column column : indexedColumns) {
assertTrue(column.isIndexed());
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/schema/SchemaModelTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/schema/SchemaModelTest.java b/core/src/test/java/org/apache/metamodel/schema/SchemaModelTest.java
index 956f7e8..0c00277 100644
--- a/core/src/test/java/org/apache/metamodel/schema/SchemaModelTest.java
+++ b/core/src/test/java/org/apache/metamodel/schema/SchemaModelTest.java
@@ -19,6 +19,8 @@
package org.apache.metamodel.schema;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
import org.apache.metamodel.MetaModelTestCase;
@@ -28,7 +30,7 @@ public class SchemaModelTest extends MetaModelTestCase {
Schema schema = getExampleSchema();
assertEquals("MetaModelSchema", schema.getName());
assertEquals("Schema[name=MetaModelSchema]", schema.toString());
- assertEquals(5, schema.getRelationships().length);
+ assertEquals(5, schema.getRelationships().size());
assertEquals(4, schema.getTableCount());
assertEquals(3, schema.getTableCount(TableType.TABLE));
@@ -47,18 +49,18 @@ public class SchemaModelTest extends MetaModelTestCase {
assertNotNull(projectTable.getColumnByName("project_id"));
assertEquals("[project_id, name, lines_of_code, parent_project_id]",
- Arrays.toString(projectTable.getColumnNames()));
+ Arrays.toString(projectTable.getColumnNames().toArray()));
assertEquals(
"[Column[name=project_id,columnNumber=0,type=INTEGER,nullable=false,nativeType=null,columnSize=null], "
+ "Column[name=lines_of_code,columnNumber=2,type=BIGINT,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=parent_project_id,columnNumber=3,type=INTEGER,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(projectTable.getNumberColumns()));
+ Arrays.toString(projectTable.getNumberColumns().toArray()));
assertEquals("[Column[name=name,columnNumber=1,type=VARCHAR,nullable=false,nativeType=null,columnSize=null]]",
- Arrays.toString(projectTable.getLiteralColumns()));
+ Arrays.toString(projectTable.getLiteralColumns().toArray()));
- assertEquals("[]", Arrays.toString(projectTable.getTimeBasedColumns()));
+ assertEquals("[]", Arrays.toString(projectTable.getTimeBasedColumns().toArray()));
assertNull(projectTable.getColumnByName("foobar"));
assertNull(projectTable.getColumnByName(null));
@@ -71,34 +73,34 @@ public class SchemaModelTest extends MetaModelTestCase {
assertEquals(3, projectContributorView.getColumnCount());
assertEquals(3, projectContributorView.getRelationshipCount());
- Relationship[] projectContributorToContributorRelations = projectContributorView
+ Collection<Relationship> projectContributorToContributorRelations = projectContributorView
.getRelationships(contributorTable);
- assertEquals(1, projectContributorToContributorRelations.length);
- Relationship[] contributorToProjectContributorRelations = contributorTable
+ assertEquals(1, projectContributorToContributorRelations.size());
+ Collection<Relationship> contributorToProjectContributorRelations = contributorTable
.getRelationships(projectContributorView);
- assertEquals(1, contributorToProjectContributorRelations.length);
- assertTrue(Arrays.equals(projectContributorToContributorRelations, contributorToProjectContributorRelations));
+ assertEquals(1, contributorToProjectContributorRelations.size());
+ assertTrue(projectContributorToContributorRelations.equals(contributorToProjectContributorRelations));
assertEquals(
"Relationship[primaryTable=contributor,primaryColumns=[name],foreignTable=project_contributor,foreignColumns=[contributor]]",
- projectContributorToContributorRelations[0].toString());
+ projectContributorToContributorRelations.iterator().next().toString());
- ((MutableRelationship) projectContributorToContributorRelations[0]).remove();
+ ((MutableRelationship) projectContributorToContributorRelations.iterator().next()).remove();
projectContributorToContributorRelations = projectContributorView.getRelationships(contributorTable);
- assertEquals(0, projectContributorToContributorRelations.length);
+ assertEquals(0, projectContributorToContributorRelations.size());
contributorToProjectContributorRelations = contributorTable.getRelationships(projectContributorView);
- assertEquals(0, contributorToProjectContributorRelations.length);
+ assertEquals(0, contributorToProjectContributorRelations.size());
// Get primary keys / Get foreign keys test
assertEquals(
"[Column[name=contributor_id,columnNumber=0,type=INTEGER,nullable=false,nativeType=null,columnSize=null]]",
- Arrays.toString(contributorTable.getPrimaryKeys()));
- assertEquals("[]", Arrays.toString(contributorTable.getForeignKeys()));
+ Arrays.toString(contributorTable.getPrimaryKeys().toArray()));
+ assertEquals("[]", Arrays.toString(contributorTable.getForeignKeys().toArray()));
assertEquals(
"[Column[name=contributor_id,columnNumber=0,type=INTEGER,nullable=false,nativeType=null,columnSize=null], Column[name=project_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=null,columnSize=null]]",
- Arrays.toString(roleTable.getPrimaryKeys()));
- Column[] foreignKeys = roleTable.getForeignKeys();
- assertEquals(2, foreignKeys.length);
+ Arrays.toString(roleTable.getPrimaryKeys().toArray()));
+ List<Column> foreignKeys = roleTable.getForeignKeys();
+ assertEquals(2, foreignKeys.size());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
index fffb679..7753539 100644
--- a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
+++ b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
@@ -75,13 +75,12 @@ public class LegacyDeserializationObjectInputStreamTest extends TestCase {
final Query q = (Query) obj;
final Table table = q.getFromClause().getItem(0).getTable();
- final Column[] columns = table.getColumns();
assertEquals("Table[name=mytable,type=TABLE,remarks=null]", table.toString());
assertEquals("Column[name=mycol1,columnNumber=0,type=INTEGER,nullable=false,nativeType=int,columnSize=16]",
- columns[0].toString());
+ table.getColumn(0).toString());
assertEquals("Column[name=mycol1,columnNumber=1,type=VARCHAR,nullable=true,nativeType=text,columnSize=255]",
- columns[1].toString());
+ table.getColumn(1).toString());
assertEquals("SELECT mytable.\"mycol1\" FROM myschema.mytable WHERE mytable.mycol1 = 'foo'", q.toSql());
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
index 22446fc..e3908c0 100644
--- a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
+++ b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
@@ -38,7 +38,7 @@ import org.apache.metamodel.util.LazyRef;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.sugarcrm.ws.soap.EntryValue;
+import com.sugarcrm.ws.soapyxyx.EntryValue;
import com.sugarcrm.ws.soap.GetEntriesCountResult;
import com.sugarcrm.ws.soap.GetEntryListResultVersion2;
import com.sugarcrm.ws.soap.LinkNamesToFieldsArray;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
index b9936af..0d0bebb 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
@@ -21,13 +21,10 @@ package org.apache.metamodel.xml;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -178,7 +175,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
@Override
- public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
loadSchema();
List<Object[]> tableData = _tableData.get(table.getName());
if (tableData == null) {
@@ -186,7 +183,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
+ _tableData.keySet());
}
- final SelectItem[] selectItems = MetaModelHelper.createSelectItems(columns);
+ final List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
final DataSetHeader header = new CachingDataSetHeader(selectItems);
final List<Row> resultData = new ArrayList<Row>();
@@ -195,9 +192,9 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
break;
}
maxRows--;
- Object[] dataValues = new Object[columns.length];
- for (int i = 0; i < columns.length; i++) {
- Column column = columns[i];
+ Object[] dataValues = new Object[columns.size()];
+ for (int i = 0; i < columns.size(); i++) {
+ Column column = columns.get(i);
int columnNumber = column.getColumnNumber();
// Some rows may not contain values for all columns
// (attributes)
@@ -259,7 +256,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
// Remove tables from schema that has no data (typically root
// node or pure XML structure)
- Table[] tables = _schema.getTables();
+ List<Table> tables = _schema.getTables();
for (Table table : tables) {
String tableName = table.getName();
List<Object[]> tableRows = _tableData.get(tableName);
@@ -330,8 +327,8 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
foreignKeyColumn.setNativeType(NATIVE_TYPE_FOREIGN_KEY);
table.addColumn(foreignKeyColumn);
- MutableRelationship.createRelationship(new Column[] { parentKeyColumn }, new Column[] {
- foreignKeyColumn });
+ MutableRelationship.createRelationship(parentKeyColumn ,
+ foreignKeyColumn );
} else {
foreignKeyColumn = null;
@@ -339,9 +336,9 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
} else {
idColumn = getIdColumn(table);
tableRows = _tableData.get(tableName);
- Column[] foreignKeys = table.getForeignKeys();
- if (foreignKeys.length == 1) {
- foreignKeyColumn = (MutableColumn) foreignKeys[0];
+ List<Column> foreignKeys = table.getForeignKeys();
+ if (foreignKeys.size() == 1) {
+ foreignKeyColumn = (MutableColumn) foreignKeys.get(0);
} else {
foreignKeyColumn = null;
}
@@ -401,7 +398,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
private Column getTextContentColumn(MutableTable table, String preferredColumnName) {
- Column[] columns = table.getColumns();
+ List<Column> columns = table.getColumns();
MutableColumn column = null;
for (Column col : columns) {
if (NATIVE_TYPE_TEXT.equals(col.getNativeType())) {
@@ -420,7 +417,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
private MutableColumn getIdColumn(MutableTable table) {
- Column[] columns = table.getColumns();
+ List<Column> columns = table.getColumns();
MutableColumn column = null;
for (Column col : columns) {
if (NATIVE_TYPE_PRIMARY_KEY.equals(col.getNativeType())) {
@@ -507,18 +504,15 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
// Check that foreignTable is not primary table in other relationships
// (if so we can't flatten as that would require id-rewriting of those
// foreign tables as well)
- if (foreignTable.getPrimaryKeyRelationships().length != 0) {
- Relationship[] foreignPrimaryRelationships = foreignTable.getPrimaryKeyRelationships();
- String[] foreignPrimaryNames = new String[foreignPrimaryRelationships.length];
- for (int i = 0; i < foreignPrimaryRelationships.length; i++) {
- foreignPrimaryNames[i] = foreignPrimaryRelationships[i].getForeignTable().getName();
- }
+ if (!foreignTable.getPrimaryKeyRelationships().isEmpty()) {
+ Collection<Relationship> foreignPrimaryRelationships = foreignTable.getPrimaryKeyRelationships();
throw new UnsupportedOperationException("Cannot flatten foreign table '" + foreignTable.getName()
- + "' as it acts as primary table for tables: " + Arrays.toString(foreignPrimaryNames));
+ + "' as it acts as primary table for tables: " + foreignPrimaryRelationships.stream()
+ .map(ftRel -> ftRel.getForeignTable().getName()).collect(Collectors.joining(", ")));
}
- List<Column> primaryColumns = new ArrayList<Column>(Arrays.asList(primaryTable.getColumns()));
- List<Column> foreignColumns = new ArrayList<Column>(Arrays.asList(foreignTable.getColumns()));
+ List<Column> primaryColumns = primaryTable.getColumns();
+ List<Column> foreignColumns = foreignTable.getColumns();
// Remove the surrogate id
String primaryTableName = primaryTable.getName();
@@ -527,8 +521,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
foreignColumns.remove(idColumn);
// Remove the foreign keys
- Column[] foreignKeys = foreignTable.getForeignKeys();
- for (Column foreignKey : foreignKeys) {
+ for (Column foreignKey : foreignTable.getForeignKeys()) {
foreignColumns.remove(foreignKey);
}
@@ -560,7 +553,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
logger.info("Tables '" + primaryTableName + "' and '" + foreignTableName + "' flattened to: "
+ primaryTableName);
if (logger.isDebugEnabled()) {
- logger.debug(primaryTableName + " columns: " + Arrays.toString(primaryTable.getColumns()));
+ logger.debug(primaryTableName + " columns: " + Arrays.toString(primaryTable.getColumns().toArray()));
}
}
@@ -574,22 +567,20 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
* mapped tables).
*/
public XmlDomDataContext autoFlattenTables() {
- Table[] tables = _schema.getTables();
- for (Table table : tables) {
+ for (Table table : _schema.getTables()) {
// First check to see that this table still exist (ie. has not been
// flattened in a previous loop)
if (_tableData.containsKey(table.getName())) {
// Find all tables that represent inner tags
- Relationship[] foreignKeyRelationships = table.getForeignKeyRelationships();
- if (foreignKeyRelationships.length == 1 && table.getPrimaryKeyRelationships().length == 0) {
- Relationship foreignKeyRelationship = foreignKeyRelationships[0];
+ Collection<Relationship> foreignKeyRelationships = table.getForeignKeyRelationships();
+ if (foreignKeyRelationships.size() == 1 && table.getPrimaryKeyRelationships().size() == 0) {
+ Relationship foreignKeyRelationship = foreignKeyRelationships.iterator().next();
// If there is exactly one inner tag then we can probably
// flatten the tables, but it's only relevant if the inner
// tag only carry a single data column
int nonDataColumns = 0;
- Column[] columns = table.getColumns();
- for (Column column : columns) {
+ for (Column column : table.getColumns()) {
String nativeType = column.getNativeType();
// Use the native column type constants to determine if
// the column is an artificial column
@@ -598,14 +589,14 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
}
- if (columns.length == nonDataColumns + 1) {
+ if (table.getColumns().size() == nonDataColumns + 1) {
// If the foreign key is unique for all rows, we will
// flatten it (otherwise it means that multiple inner
// tags occur, which requires two tables to deal with
// multiplicity)
boolean uniqueForeignKeys = true;
- Column[] foreignColumns = foreignKeyRelationship.getForeignColumns();
+ List<Column> foreignColumns = foreignKeyRelationship.getForeignColumns();
SelectItem countAllItem = SelectItem.getCountAllItem();
Query q = new Query().select(foreignColumns).select(countAllItem).from(table).groupBy(
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java b/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
index f1c2d6c..217503c 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
@@ -22,6 +22,7 @@ import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@@ -205,13 +206,13 @@ public class XmlSaxDataContext extends QueryPostprocessDataContext {
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
final XmlSaxTableDef tableDef = getTableDef(table);
- final String[] valueXpaths = new String[columns.length];
- final SelectItem[] selectItems = new SelectItem[columns.length];
- for (int i = 0; i < columns.length; i++) {
- final Column column = columns[i];
+ final String[] valueXpaths = new String[columns.size()];
+ final SelectItem[] selectItems = new SelectItem[columns.size()];
+ for (int i = 0; i < columns.size(); i++) {
+ final Column column = columns.get(i);
selectItems[i] = new SelectItem(column);
valueXpaths[i] = getXpath(tableDef, column);
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
----------------------------------------------------------------------
diff --git a/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java b/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
index 6985852..b5a7a02 100644
--- a/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
+++ b/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
@@ -51,7 +51,7 @@ public class XmlDomDataContextTest extends TestCase {
try {
XmlDomDataContext dataContext = new XmlDomDataContext(url, false);
assertEquals("xml_input_eobjects.xml", dataContext.getDefaultSchema().getName());
- assertEquals(2, dataContext.getSchemaNames().length);
+ assertEquals(2, dataContext.getSchemaNames().size());
Schema schema = dataContext.getSchemaByName("xml_input_eobjects.xml");
assertEquals("Schema[name=xml_input_eobjects.xml]", schema.toString());
assertEquals(5, schema.getTableCount());
@@ -68,31 +68,30 @@ public class XmlDomDataContextTest extends TestCase {
XmlDomDataContext dataContext = new XmlDomDataContext(file, false);
assertEquals("xml_input_eobjects.xml", dataContext.getDefaultSchema().getName());
- assertEquals(2, dataContext.getSchemaNames().length);
+ assertEquals(2, dataContext.getSchemaNames().size());
Schema schema = dataContext.getSchemaByName("xml_input_eobjects.xml");
assertEquals("Schema[name=xml_input_eobjects.xml]", schema.toString());
- Table[] tables = schema.getTables();
assertEquals(5, schema.getTableCount());
assertEquals("[Table[name=eobjects.dk,type=TABLE,remarks=null], "
+ "Table[name=contributors_person,type=TABLE,remarks=null], "
+ "Table[name=contributors_person_name,type=TABLE,remarks=null], "
+ "Table[name=contributors_person_address,type=TABLE,remarks=null], "
- + "Table[name=projects_project,type=TABLE,remarks=null]]", Arrays.toString(tables));
+ + "Table[name=projects_project,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables().toArray()));
Table table = schema.getTableByName("eobjects.dk");
assertEquals(2, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=website,columnNumber=2,type=STRING,nullable=true,nativeType=XML Attribute,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
table = schema.getTableByName("contributors_person");
assertEquals(1, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
table = schema.getTableByName("contributors_person_name");
assertEquals(3, table.getColumnCount());
@@ -100,10 +99,10 @@ public class XmlDomDataContextTest extends TestCase {
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=Auto-generated foreign key,columnSize=null], "
+ "Column[name=name,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
assertEquals("[Relationship[primaryTable=contributors_person,primaryColumns=[id],"
+ "foreignTable=contributors_person_name,foreignColumns=[contributors_person_id]]]",
- Arrays.toString(table.getRelationships()));
+ Arrays.toString(table.getRelationships().toArray()));
table = schema.getTableByName("contributors_person_address");
assertEquals(3, table.getColumnCount());
@@ -111,10 +110,10 @@ public class XmlDomDataContextTest extends TestCase {
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=Auto-generated foreign key,columnSize=null], "
+ "Column[name=address,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
assertEquals("[Relationship[primaryTable=contributors_person,primaryColumns=[id],"
+ "foreignTable=contributors_person_address,foreignColumns=[contributors_person_id]]]",
- Arrays.toString(table.getRelationships()));
+ Arrays.toString(table.getRelationships().toArray()));
table = schema.getTableByName("projects_project");
assertEquals(3, table.getColumnCount());
@@ -122,7 +121,7 @@ public class XmlDomDataContextTest extends TestCase {
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=project,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=name,columnNumber=2,type=STRING,nullable=true,nativeType=XML Attribute,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
dataContext.autoFlattenTables();
table = schema.getTableByName("contributors_person");
@@ -130,7 +129,7 @@ public class XmlDomDataContextTest extends TestCase {
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=name,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
}
public void testExecuteQuery() throws Exception {
@@ -159,7 +158,7 @@ public class XmlDomDataContextTest extends TestCase {
// Make a new query that joins the normalized tables together
table = schema.getTableByName("contributors_person_address");
- Relationship relationShip = table.getRelationships()[0];
+ Relationship relationShip = table.getRelationships().iterator().next();
q = new Query().select(relationShip.getPrimaryTable().getColumns())
.select(relationShip.getForeignTable().getColumns()).from(new FromItem(JoinType.INNER, relationShip));
@@ -211,12 +210,12 @@ public class XmlDomDataContextTest extends TestCase {
XmlDomDataContext strategy = new XmlDomDataContext("foobarSchema", document, true);
Schema schema = strategy.getSchemaByName("foobarSchema");
assertEquals("Schema[name=foobarSchema]", schema.toString());
- assertEquals("[Table[name=child,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables()));
- Table table = schema.getTables()[0];
+ assertEquals("[Table[name=child,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables().toArray()));
+ Table table = schema.getTable(0);
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=child,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
}
public void testFlattenTables() throws Exception {
@@ -227,18 +226,18 @@ public class XmlDomDataContextTest extends TestCase {
+ "Table[name=dependency_groupId,type=TABLE,remarks=null], "
+ "Table[name=dependency_artifactId,type=TABLE,remarks=null], "
+ "Table[name=dependency_version,type=TABLE,remarks=null], "
- + "Table[name=dependency_scope,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables()));
+ + "Table[name=dependency_scope,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables().toArray()));
Table dependencyTable = schema.getTableByName("dependency");
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null]]",
- Arrays.toString(dependencyTable.getColumns()));
+ Arrays.toString(dependencyTable.getColumns().toArray()));
List<Object[]> dependencyData = dc
.materializeMainSchemaTable(dependencyTable, dependencyTable.getColumns(), -1).toObjectArrays();
assertEquals(11, dependencyData.size());
assertEquals("[1]", Arrays.toString(dependencyData.get(0)));
assertEquals("[11]", Arrays.toString(dependencyData.get(10)));
- Relationship relationship = schema.getTableByName("dependency_groupId").getRelationships()[0];
+ Relationship relationship = schema.getTableByName("dependency_groupId").getRelationships().iterator().next();
assertEquals(
"Relationship[primaryTable=dependency,primaryColumns=[id],foreignTable=dependency_groupId,foreignColumns=[dependency_id]]",
relationship.toString());
@@ -248,12 +247,12 @@ public class XmlDomDataContextTest extends TestCase {
assertEquals("[Table[name=dependency,type=TABLE,remarks=null], "
+ "Table[name=dependency_artifactId,type=TABLE,remarks=null], "
+ "Table[name=dependency_version,type=TABLE,remarks=null], "
- + "Table[name=dependency_scope,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables()));
+ + "Table[name=dependency_scope,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables().toArray()));
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=groupId,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(dependencyTable.getColumns()));
+ Arrays.toString(dependencyTable.getColumns().toArray()));
dependencyData = dc.materializeMainSchemaTable(dependencyTable, dependencyTable.getColumns(), -1)
.toObjectArrays();
@@ -263,14 +262,14 @@ public class XmlDomDataContextTest extends TestCase {
dc.autoFlattenTables();
- assertEquals("[Table[name=dependency,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables()));
+ assertEquals("[Table[name=dependency,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables().toArray()));
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=groupId,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=artifactId,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=version,columnNumber=3,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=scope,columnNumber=4,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(dependencyTable.getColumns()));
+ Arrays.toString(dependencyTable.getColumns().toArray()));
dependencyData = dc.materializeMainSchemaTable(dependencyTable, dependencyTable.getColumns(), -1)
.toObjectArrays();
@@ -290,13 +289,13 @@ public class XmlDomDataContextTest extends TestCase {
+ "Column[name=artifactId,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=version,columnNumber=3,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=scope,columnNumber=4,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
table = schema.getTableByName("inceptionYear");
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=inceptionYear,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
// first read
DataSet data = dc.executeQuery(new Query().select(table.getColumnByName("inceptionYear")).from(table)
@@ -323,10 +322,10 @@ public class XmlDomDataContextTest extends TestCase {
+ "Machine_Hardware_Network_Adapter, Machine_Hardware_UART_Port, Machine_Hardware_LPT_Port, "
+ "Machine_Hardware_AudioAdapter, Machine_Hardware_SharedFolders_SharedFolder, "
+ "Machine_Hardware_Guest, Machine_HardDiskAttachments_HardDiskAttachment]",
- Arrays.toString(schema.getTableNames()));
+ Arrays.toString(schema.getTableNames().toArray()));
assertEquals(
"[id, OSType, lastStateChange, name, uuid, enabled, enabled, RAMSize, enabled, enabled, mode, value, "
+ "enabled, type, enabled, mode]",
- Arrays.toString(schema.getTableByName("Machine").getColumnNames()));
+ Arrays.toString(schema.getTableByName("Machine").getColumnNames().toArray()));
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/xml/src/test/java/org/apache/metamodel/xml/XmlSaxDataContextTest.java
----------------------------------------------------------------------
diff --git a/xml/src/test/java/org/apache/metamodel/xml/XmlSaxDataContextTest.java b/xml/src/test/java/org/apache/metamodel/xml/XmlSaxDataContextTest.java
index d150aac..4ee8dba 100644
--- a/xml/src/test/java/org/apache/metamodel/xml/XmlSaxDataContextTest.java
+++ b/xml/src/test/java/org/apache/metamodel/xml/XmlSaxDataContextTest.java
@@ -44,11 +44,11 @@ public class XmlSaxDataContextTest extends TestCase {
final Schema schema = dc.getDefaultSchema();
assertEquals("Schema[name=/dependencies]", schema.toString());
- assertEquals("[/dependency]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[/dependency]", Arrays.toString(schema.getTableNames().toArray()));
final Table table = schema.getTableByName("/dependency");
assertEquals("[row_id, /artifactId, /groupId, /version, /scope]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
// perform a regular query
DataSet ds = dc.query().from(table).select(table.getColumns())
@@ -112,13 +112,13 @@ public class XmlSaxDataContextTest extends TestCase {
final Schema schema = dc.getDefaultSchema();
assertEquals("Schema[name=/root]", schema.toString());
assertEquals("[/employee, /organization]",
- Arrays.toString(schema.getTableNames()));
+ Arrays.toString(schema.getTableNames().toArray()));
// organization assertions
final Table organizationTable = schema.getTableByName("/organization");
{
assertEquals("[row_id, /name, @type]",
- Arrays.toString(organizationTable.getColumnNames()));
+ Arrays.toString(organizationTable.getColumnNames().toArray()));
DataSet ds = dc.query().from(organizationTable)
.select(organizationTable.getColumns()).execute();
@@ -140,7 +140,7 @@ public class XmlSaxDataContextTest extends TestCase {
{
assertEquals(
"[row_id, /name, /gender, index(/root/organization/employees), index(/root/organization)]",
- Arrays.toString(employeeTable.getColumnNames()));
+ Arrays.toString(employeeTable.getColumnNames().toArray()));
DataSet ds = dc.query().from(employeeTable)
.select(employeeTable.getColumns()).execute();
[18/20] metamodel git commit: Merge pull request #1 from
kaspersorensen/feature/collectionsInterfaces
Posted by ka...@apache.org.
Merge pull request #1 from kaspersorensen/feature/collectionsInterfaces
Fixed unused import and deprecation warnings
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/a07b8fe1
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/a07b8fe1
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/a07b8fe1
Branch: refs/heads/master
Commit: a07b8fe100925c9e4ed328b80319e48c72045dda
Parents: 840aea4 d24c3e5
Author: tomatophantastico <jo...@unbehauen.net>
Authored: Fri Aug 4 12:12:26 2017 +0200
Committer: GitHub <no...@github.com>
Committed: Fri Aug 4 12:12:26 2017 +0200
----------------------------------------------------------------------
.../apache/metamodel/data/UnionDataSetTest.java | 4 +-
.../metamodel/couchdb/CouchDbDataContext.java | 1 -
.../apache/metamodel/couchdb/CouchDbUtils.java | 8 +--
.../nativeclient/ElasticSearchDataSet.java | 1 -
.../rest/JestElasticSearchDataSet.java | 19 ++++---
.../rest/JestElasticSearchUpdateCallback.java | 1 -
.../metamodel/excel/ExcelDataContext.java | 21 +++----
.../metamodel/excel/ExcelDeleteBuilder.java | 7 +--
.../org/apache/metamodel/excel/ExcelUtils.java | 59 +++++++++-----------
.../excel/XlsxSpreadsheetReaderDelegate.java | 1 -
.../fixedwidth/EbcdicConfiguration.java | 2 +
.../apache/metamodel/jdbc/JdbcDataContext.java | 1 -
.../org/apache/metamodel/jdbc/JdbcSchema.java | 1 -
.../metamodel/jdbc/JdbcDataContextTest.java | 3 +-
.../jdbc/integrationtests/FirebirdTest.java | 4 +-
.../jdbc/integrationtests/OracleTest.java | 4 +-
.../apache/metamodel/json/JsonDataContext.java | 1 -
.../metamodel/json/JsonDataContextTest.java | 5 +-
.../mongodb/mongo2/MongoDbDataSet.java | 5 +-
.../mongodb/mongo3/MongoDbDataSet.java | 5 +-
.../mongodb/mongo3/MongoDbDataContextTest.java | 5 +-
.../metamodel/neo4j/Neo4jDataContext.java | 1 -
.../metamodel/neo4j/Neo4jDataContextTest.java | 1 -
.../apache/metamodel/pojo/PojoDataContext.java | 1 -
.../salesforce/SalesforceDataContext.java | 3 +-
.../salesforce/SalesforceUpdateCallback.java | 1 -
.../apache/metamodel/xml/XmlDomDataContext.java | 1 -
27 files changed, 69 insertions(+), 97 deletions(-)
----------------------------------------------------------------------
[02/20] metamodel git commit: first round of refactoring
Posted by ka...@apache.org.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java b/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
index 2bcf95b..b930359 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
@@ -19,27 +19,30 @@
package org.apache.metamodel.schema;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
public final class ImmutableRelationship extends AbstractRelationship implements Serializable {
private static final long serialVersionUID = 1L;
- private final Column[] primaryColumns;
- private final Column[] foreignColumns;
+ private final List<Column> primaryColumns;
+ private final List<Column> foreignColumns;
public static void create(Relationship origRelationship,
ImmutableSchema schema) {
ImmutableTable primaryTable = getSimilarTable(
origRelationship.getPrimaryTable(), schema);
assert primaryTable != null;
- Column[] primaryColumns = getSimilarColumns(
+ List<Column> primaryColumns = getSimilarColumns(
origRelationship.getPrimaryColumns(), primaryTable);
checkSameTable(primaryColumns);
ImmutableTable foreignTable = getSimilarTable(
origRelationship.getForeignTable(), schema);
assert foreignTable != null;
- Column[] foreignColumns = getSimilarColumns(
+ List<Column> foreignColumns = getSimilarColumns(
origRelationship.getForeignColumns(), foreignTable);
checkSameTable(foreignColumns);
@@ -49,13 +52,11 @@ public final class ImmutableRelationship extends AbstractRelationship implements
foreignTable.addRelationship(relationship);
}
- private static Column[] getSimilarColumns(Column[] columns, Table table) {
- Column[] result = new Column[columns.length];
- for (int i = 0; i < columns.length; i++) {
- String name = columns[i].getName();
- result[i] = table.getColumnByName(name);
- }
- return result;
+ private static List<Column> getSimilarColumns(List<Column> columns, Table table) {
+ return columns.stream()
+ .map( col -> table.getColumnByName(col.getName()))
+ .collect(Collectors.toList());
+
}
private static ImmutableTable getSimilarTable(Table table,
@@ -64,19 +65,19 @@ public final class ImmutableRelationship extends AbstractRelationship implements
return (ImmutableTable) schema.getTableByName(name);
}
- private ImmutableRelationship(Column[] primaryColumns,
- Column[] foreignColumns) {
+ private ImmutableRelationship(List<Column> primaryColumns,
+ List<Column> foreignColumns) {
this.primaryColumns = primaryColumns;
this.foreignColumns = foreignColumns;
}
@Override
- public Column[] getPrimaryColumns() {
+ public List<Column> getPrimaryColumns() {
return primaryColumns;
}
@Override
- public Column[] getForeignColumns() {
+ public List<Column> getForeignColumns() {
return foreignColumns;
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/ImmutableSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ImmutableSchema.java b/core/src/main/java/org/apache/metamodel/schema/ImmutableSchema.java
index ddceb12..8da76eb 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ImmutableSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ImmutableSchema.java
@@ -20,6 +20,8 @@ package org.apache.metamodel.schema;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
/**
@@ -42,20 +44,20 @@ public final class ImmutableSchema extends AbstractSchema implements
public ImmutableSchema(Schema schema) {
this(schema.getName(), schema.getQuote());
- Table[] origTables = schema.getTables();
+ List<Table> origTables = schema.getTables();
for (Table table : origTables) {
tables.add(new ImmutableTable(table, this));
}
- Relationship[] origRelationships = schema.getRelationships();
+ Collection<Relationship> origRelationships = schema.getRelationships();
for (Relationship relationship : origRelationships) {
ImmutableRelationship.create(relationship, this);
}
}
@Override
- public Table[] getTables() {
- return tables.toArray(new Table[tables.size()]);
+ public List<Table> getTables() {
+ return Collections.unmodifiableList(tables);
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java b/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
index d807290..150384c 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
@@ -20,6 +20,8 @@ package org.apache.metamodel.schema;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
/**
@@ -54,7 +56,7 @@ final class ImmutableTable extends AbstractTable implements Serializable {
protected ImmutableTable(Table table, ImmutableSchema schema) {
this(table.getName(), table.getType(), schema, table.getRemarks(),
table.getQuote());
- Column[] origColumns = table.getColumns();
+ List<Column> origColumns = table.getColumns();
for (Column column : origColumns) {
columns.add(new ImmutableColumn(column, this));
}
@@ -67,8 +69,8 @@ final class ImmutableTable extends AbstractTable implements Serializable {
}
@Override
- public Column[] getColumns() {
- return columns.toArray(new Column[columns.size()]);
+ public List<Column> getColumns() {
+ return Collections.unmodifiableList(columns);
}
@Override
@@ -82,8 +84,8 @@ final class ImmutableTable extends AbstractTable implements Serializable {
}
@Override
- public Relationship[] getRelationships() {
- return relationships.toArray(new Relationship[relationships.size()]);
+ public Collection<Relationship> getRelationships() {
+ return Collections.unmodifiableCollection(relationships);
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 e96c86c..466244c 100644
--- a/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java
+++ b/core/src/main/java/org/apache/metamodel/schema/MutableRelationship.java
@@ -19,6 +19,8 @@
package org.apache.metamodel.schema;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,8 +38,8 @@ public class MutableRelationship extends AbstractRelationship implements
private static final Logger logger = LoggerFactory
.getLogger(MutableRelationship.class);
- private final Column[] _primaryColumns;
- private final Column[] _foreignColumns;
+ private final List<Column> _primaryColumns;
+ private final List<Column> _foreignColumns;
/**
* Factory method to create relations between two tables by specifying which
@@ -49,8 +51,8 @@ public class MutableRelationship extends AbstractRelationship implements
* the columns from the foreign key table
* @return the relation created
*/
- public static Relationship createRelationship(Column[] primaryColumns,
- Column[] foreignColumns) {
+ public static Relationship createRelationship(List<Column> primaryColumns,
+ List<Column> foreignColumns) {
Table primaryTable = checkSameTable(primaryColumns);
Table foreignTable = checkSameTable(foreignColumns);
MutableRelationship relation = new MutableRelationship(primaryColumns,
@@ -105,25 +107,30 @@ public class MutableRelationship extends AbstractRelationship implements
public static Relationship createRelationship(Column primaryColumn,
Column foreignColumn) {
- return createRelationship(new Column[] { primaryColumn },
- new Column[] { foreignColumn });
+ List<Column> pcols = new ArrayList<>();
+ pcols.add(primaryColumn);
+ List<Column> fcols = new ArrayList<>();
+ pcols.add(foreignColumn);
+
+
+ return createRelationship(pcols, fcols);
}
/**
* Prevent external instantiation
*/
- private MutableRelationship(Column[] primaryColumns, Column[] foreignColumns) {
+ private MutableRelationship(List<Column> primaryColumns, List<Column> foreignColumns) {
_primaryColumns = primaryColumns;
_foreignColumns = foreignColumns;
}
@Override
- public Column[] getPrimaryColumns() {
+ public List<Column> getPrimaryColumns() {
return _primaryColumns;
}
@Override
- public Column[] getForeignColumns() {
+ public List<Column> getForeignColumns() {
return _foreignColumns;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 c4cfe2e..29d361b 100644
--- a/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java
@@ -21,6 +21,7 @@ package org.apache.metamodel.schema;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
/**
@@ -63,9 +64,8 @@ public class MutableSchema extends AbstractSchema implements Serializable,
}
@Override
- public MutableTable[] getTables() {
- MutableTable[] array = new MutableTable[_tables.size()];
- return _tables.toArray(array);
+ public List<Table> getTables() {
+ return Collections.unmodifiableList(_tables);
}
public MutableSchema setTables(Collection<? extends MutableTable> tables) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableTable.java b/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
index 904fc81..0b3475c 100644
--- a/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
+++ b/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
@@ -21,6 +21,7 @@ package org.apache.metamodel.schema;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
/**
@@ -100,9 +101,8 @@ public class MutableTable extends AbstractTable implements Serializable {
}
@Override
- public Column[] getColumns() {
- List<Column> columns = getColumnsInternal();
- return columns.toArray(new Column[columns.size()]);
+ public List<Column> getColumns() {
+ return Collections.unmodifiableList(_columns);
}
public MutableTable setColumns(Column... columns) {
@@ -157,9 +157,8 @@ public class MutableTable extends AbstractTable implements Serializable {
}
@Override
- public Relationship[] getRelationships() {
- List<Relationship> relationships = getRelationshipsInternal();
- return relationships.toArray(new Relationship[relationships.size()]);
+ public List<Relationship> getRelationships() {
+ return Collections.unmodifiableList(_relationships);
}
/**
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/Relationship.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/Relationship.java b/core/src/main/java/org/apache/metamodel/schema/Relationship.java
index 1ae3132..12a5c8c 100644
--- a/core/src/main/java/org/apache/metamodel/schema/Relationship.java
+++ b/core/src/main/java/org/apache/metamodel/schema/Relationship.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.schema;
import java.io.Serializable;
+import java.util.List;
/**
* Represents a relationship between two tables where one set of columns is the
@@ -41,7 +42,7 @@ public interface Relationship extends Serializable, Comparable<Relationship> {
*
* @return an array of primary key columns.
*/
- public Column[] getPrimaryColumns();
+ public List<Column> getPrimaryColumns();
/**
* Gets the table of the foreign key column(s).
@@ -55,7 +56,7 @@ public interface Relationship extends Serializable, Comparable<Relationship> {
*
* @return an array of foreign key columns.
*/
- public Column[] getForeignColumns();
+ public List<Column> getForeignColumns();
/**
* Determines whether this relationship contains a specific pair of columns
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/Schema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/Schema.java b/core/src/main/java/org/apache/metamodel/schema/Schema.java
index 1184954..082acb1 100644
--- a/core/src/main/java/org/apache/metamodel/schema/Schema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/Schema.java
@@ -19,6 +19,8 @@
package org.apache.metamodel.schema;
import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
import org.apache.metamodel.DataContext;
@@ -61,14 +63,14 @@ public interface Schema extends Comparable<Schema>, Serializable, NamedStructure
*
* @return an array of table names.
*/
- public String[] getTableNames();
+ public List<String> getTableNames();
/**
* Gets all tables in this Schema.
*
* @return the tables that reside in the schema
*/
- public Table[] getTables();
+ public List<Table> getTables();
/**
* Gets all tables in this Schema of a particular type.
@@ -78,7 +80,7 @@ public interface Schema extends Comparable<Schema>, Serializable, NamedStructure
* @return an array of tables in this schema that matches the specified
* type.
*/
- public Table[] getTables(TableType type);
+ public List<Table> getTables(TableType type);
/**
* Gets a table by index. Use {@link #getTableCount()} to get the (0-based)
@@ -108,7 +110,7 @@ public interface Schema extends Comparable<Schema>, Serializable, NamedStructure
*
* @return an array of relationships.
*/
- public Relationship[] getRelationships();
+ public Collection<Relationship> getRelationships();
/**
* Gets the number of relationships to and from this Schema.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/Table.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/Table.java b/core/src/main/java/org/apache/metamodel/schema/Table.java
index f5c6680..d549dba 100644
--- a/core/src/main/java/org/apache/metamodel/schema/Table.java
+++ b/core/src/main/java/org/apache/metamodel/schema/Table.java
@@ -19,6 +19,8 @@
package org.apache.metamodel.schema;
import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
/**
* Represents a table and it's metadata description. Tables reside within a
@@ -49,7 +51,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
*
* @return the columns of this table.
*/
- public Column[] getColumns();
+ public List<Column> getColumns();
/**
* Convenience method for retrieving a column by it's name.
@@ -93,7 +95,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* @return all relationsips for this table. To add relations use
* TableRelation.createRelation();
*/
- public Relationship[] getRelationships();
+ public Collection<Relationship> getRelationships();
/**
* Gets relationships between this table and another table.
@@ -102,7 +104,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* another table for which to find relationships to and from.
* @return an array of relationsips between this and the other table.
*/
- public Relationship[] getRelationships(Table otherTable);
+ public Collection<Relationship> getRelationships(Table otherTable);
/**
* Gets a count of relationships to and from this table.
@@ -124,7 +126,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* @return an array of columns.
* @see ColumnType
*/
- public Column[] getNumberColumns();
+ public List<Column> getNumberColumns();
/**
* Gets all of this table's columns that are of literal (String/text) type.
@@ -132,7 +134,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* @return an array of columns.
* @see ColumnType
*/
- public Column[] getLiteralColumns();
+ public List<Column> getLiteralColumns();
/**
* Gets all of this table's columns that are time and/or date based.
@@ -140,7 +142,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* @return an array of columns.
* @see ColumnType
*/
- public Column[] getTimeBasedColumns();
+ public List<Column> getTimeBasedColumns();
/**
* Gets all of this table's columns that are of boolean type.
@@ -148,24 +150,24 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* @return an array of columns.
* @see ColumnType
*/
- public Column[] getBooleanColumns();
+ public List<Column> getBooleanColumns();
/**
* Gets all of this table's columns that are indexed.
*
* @return an array of columns.
*/
- public Column[] getIndexedColumns();
+ public List<Column> getIndexedColumns();
/**
* @return the relationships where this table is the foreign table
*/
- public Relationship[] getForeignKeyRelationships();
+ public Collection<Relationship> getForeignKeyRelationships();
/**
* @return the relationships where this table is the primary table
*/
- public Relationship[] getPrimaryKeyRelationships();
+ public Collection<Relationship> getPrimaryKeyRelationships();
/**
* Gets the columns of this table that are known to be foreign keys (ie.
@@ -173,7 +175,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
*
* @return an array of columns that are known to be foreign keys.
*/
- public Column[] getForeignKeys();
+ public List<Column> getForeignKeys();
/**
* Gets the columns of this table that are known to be primary keys. See
@@ -181,14 +183,14 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
*
* @return an array of columns that are known to be primary keys.
*/
- public Column[] getPrimaryKeys();
+ public List<Column> getPrimaryKeys();
/**
* Gets the names of this table's columns.
*
* @return an array of column names.
*/
- public String[] getColumnNames();
+ public List<String> getColumnNames();
/**
* Gets the columns of this table that conforms to a specified
@@ -198,7 +200,7 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* the column type to search for.
* @return an array of columns that match the specified ColumnType.
*/
- public Column[] getColumnsOfType(ColumnType columnType);
+ public List<Column> getColumnsOfType(ColumnType columnType);
/**
* Gets the columns of this table that conforms to a specified
@@ -208,6 +210,6 @@ public interface Table extends Comparable<Table>, Serializable, NamedStructure {
* the super type of the column
* @return an array of columns that match the specified SuperColumnType.
*/
- public Column[] getColumnsOfSuperType(SuperColumnType superColumnType);
+ public List<Column> getColumnsOfSuperType(SuperColumnType superColumnType);
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java b/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
index ea8a9de..c526df5 100644
--- a/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
@@ -18,10 +18,10 @@
*/
package org.apache.metamodel;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.*;
+import com.google.common.collect.Lists;
+import javafx.scene.Scene;
import junit.framework.TestCase;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.Query;
@@ -57,8 +57,8 @@ public class AbstractDataContextTest extends TestCase {
}
@Override
- protected String[] getSchemaNamesInternal() {
- return _schemas.keySet().toArray(new String[0]);
+ protected List<String> getSchemaNamesInternal() {
+ return new ArrayList<>(_schemas.keySet());
}
@Override
@@ -154,8 +154,8 @@ public class AbstractDataContextTest extends TestCase {
}
@Override
- protected String[] getSchemaNamesInternal() {
- return new String[] { "test" };
+ protected List<String> getSchemaNamesInternal() {
+ return Lists.newArrayList("test");
}
@Override
@@ -209,12 +209,12 @@ public class AbstractDataContextTest extends TestCase {
public void testGetSchemas() throws Exception {
MyDataContext dc = new MyDataContext();
- Schema[] schemas = dc.getSchemas();
- assertEquals("[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", Arrays.toString(schemas));
+ List<Schema> schemas = dc.getSchemas();
+ assertEquals("[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", Arrays.toString(schemas.toArray()));
dc.refreshSchemas();
schemas = dc.getSchemas();
- assertEquals("[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", Arrays.toString(schemas));
+ assertEquals("[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", Arrays.toString(schemas.toArray()));
}
public void testGetColumnByQualifiedLabelWithNameOverlaps() throws Exception {
@@ -226,8 +226,8 @@ public class AbstractDataContextTest extends TestCase {
}
@Override
- protected String[] getSchemaNamesInternal() {
- return new String[] { "sch" };
+ protected List<String> getSchemaNamesInternal() {
+ return Lists.newArrayList( "sch" );
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/CompositeDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/CompositeDataContextTest.java b/core/src/test/java/org/apache/metamodel/CompositeDataContextTest.java
index 61e0dcc..f2ae8e0 100644
--- a/core/src/test/java/org/apache/metamodel/CompositeDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/CompositeDataContextTest.java
@@ -42,11 +42,11 @@ public class CompositeDataContextTest extends TestCase {
DataContext composite = new CompositeDataContext(dc1, dc2);
assertEquals("[schema1, schema2]",
- Arrays.toString(composite.getSchemaNames()));
+ Arrays.toString(composite.getSchemaNames().toArray()));
assertSame(dc1.getDefaultSchema(), composite.getDefaultSchema());
DataSet ds = composite.query()
- .from(dc1.getDefaultSchema().getTables()[0]).select("foo")
+ .from(dc1.getDefaultSchema().getTables().get(0)).select("foo")
.execute();
List<Object[]> objectArrays = ds.toObjectArrays();
assertEquals("1", objectArrays.get(0)[0]);
@@ -61,12 +61,12 @@ public class CompositeDataContextTest extends TestCase {
DataContext composite = new CompositeDataContext(dc1, dc2);
assertEquals("[schema]",
- Arrays.toString(composite.getSchemaNames()));
+ Arrays.toString(composite.getSchemaNames().toArray()));
Schema schema = composite.getDefaultSchema();
assertEquals(4, schema.getTableCount());
assertEquals("[table1, an_empty_table, table2, an_empty_table]",
- Arrays.toString(schema.getTableNames()));
+ Arrays.toString(schema.getTableNames().toArray()));
assertTrue(schema instanceof CompositeSchema);
}
@@ -77,15 +77,14 @@ public class CompositeDataContextTest extends TestCase {
DataContext composite = new CompositeDataContext(dc1, dc2);
assertEquals("[schema]",
- Arrays.toString(composite.getSchemaNames()));
+ Arrays.toString(composite.getSchemaNames().toArray()));
Schema schema = composite.getDefaultSchema();
assertEquals(4, schema.getTableCount());
- assertEquals("[table, an_empty_table, table, an_empty_table]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[table, an_empty_table, table, an_empty_table]", Arrays.toString(schema.getTableNames().toArray()));
assertTrue(schema instanceof CompositeSchema);
- Table[] tables = schema.getTables();
- Table table1 = tables[0];
- Table table2 = tables[2];
+ Table table1 = schema.getTable(0);
+ Table table2 = schema.getTable(2);
assertNotSame(table1, table2);
Query q = composite
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java b/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
index 540aa95..84a09b2 100644
--- a/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
+++ b/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import com.google.common.collect.Lists;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetHeader;
import org.apache.metamodel.data.DefaultRow;
@@ -66,8 +67,8 @@ public class MetaModelHelperTest extends MetaModelTestCase {
data2.add(new Object[] { 2, "bad boy", "bb" });
data2.add(new Object[] { 4, "trying harder", "try" });
- DataSet ds1 = createDataSet(new SelectItem[] { si1, si2, si3, si4 }, data1);
- DataSet ds2 = createDataSet(new SelectItem[] { si5, si6, si7 }, data2);
+ DataSet ds1 = createDataSet(Lists.newArrayList(si1, si2, si3, si4 ), data1);
+ DataSet ds2 = createDataSet(Lists.newArrayList(si5, si6, si7 ), data2);
FilterItem[] onConditions = new FilterItem[1];
onConditions[0] = new FilterItem(si4, OperatorType.EQUALS_TO, si5);
@@ -100,8 +101,8 @@ public class MetaModelHelperTest extends MetaModelTestCase {
data2.add(new Object[] { 2, "bad boy", "bb" });
data2.add(new Object[] { 4, "trying harder", "try" });
- DataSet ds1 = createDataSet(new SelectItem[] { si1, si2, si3, si4 }, data1);
- DataSet ds2 = createDataSet(new SelectItem[] { si5, si6, si7 }, data2);
+ DataSet ds1 = createDataSet(Lists.newArrayList(si1, si2, si3, si4 ), data1);
+ DataSet ds2 = createDataSet(Lists.newArrayList( si5, si6, si7 ), data2);
FilterItem[] onConditions = new FilterItem[1];
onConditions[0] = new FilterItem(si4, OperatorType.EQUALS_TO, si5);
@@ -116,7 +117,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
public void testSimpleCarthesianProduct() throws Exception {
DataSet dataSet = MetaModelHelper.getCarthesianProduct(createDataSet1(), createDataSet2());
- assertEquals(2, dataSet.getSelectItems().length);
+ assertEquals(2, dataSet.getSelectItems().size());
assertTrue(dataSet.next());
assertEquals("Row[values=[f, b]]", dataSet.getRow().toString());
assertTrue(dataSet.next());
@@ -134,7 +135,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
public void testTripleCarthesianProduct() throws Exception {
DataSet dataSet = MetaModelHelper.getCarthesianProduct(createDataSet1(), createDataSet2(), createDataSet3());
- assertEquals(4, dataSet.getSelectItems().length);
+ assertEquals(4, dataSet.getSelectItems().size());
for (int i = 0; i < 3 * 3 * 2; i++) {
assertTrue("Assertion failed at i=" + i, dataSet.next());
}
@@ -145,9 +146,9 @@ public class MetaModelHelperTest extends MetaModelTestCase {
DataSet ds1 = createDataSet1();
DataSet ds2 = createDataSet2();
DataSet[] dataSets = new DataSet[] { ds1, ds2, };
- FilterItem w1 = new FilterItem(ds1.getSelectItems()[0], OperatorType.EQUALS_TO, "f");
+ FilterItem w1 = new FilterItem(ds1.getSelectItems().get(0), OperatorType.EQUALS_TO, "f");
DataSet dataSet = MetaModelHelper.getCarthesianProduct(dataSets, w1);
- assertEquals(2, dataSet.getSelectItems().length);
+ assertEquals(2, dataSet.getSelectItems().size());
for (int i = 0; i < 1 * 3; i++) {
assertTrue("Assertion failed at i=" + i, dataSet.next());
assertEquals("f", dataSet.getRow().getValue(0));
@@ -157,22 +158,22 @@ public class MetaModelHelperTest extends MetaModelTestCase {
public void testGetCarthesianProductNoRows() throws Exception {
DataSet dataSet = MetaModelHelper.getCarthesianProduct(createDataSet4(), createDataSet2(), createDataSet3());
- assertEquals(4, dataSet.getSelectItems().length);
+ assertEquals(4, dataSet.getSelectItems().size());
assertFalse(dataSet.next());
dataSet = MetaModelHelper.getCarthesianProduct(createDataSet1(), createDataSet4(), createDataSet3());
- assertEquals(4, dataSet.getSelectItems().length);
+ assertEquals(4, dataSet.getSelectItems().size());
assertFalse(dataSet.next());
dataSet = MetaModelHelper.getCarthesianProduct(createDataSet1(), createDataSet2(), createDataSet4());
- assertEquals(3, dataSet.getSelectItems().length);
+ assertEquals(3, dataSet.getSelectItems().size());
assertFalse(dataSet.next());
}
public void testGetOrdered() throws Exception {
DataSet dataSet = createDataSet3();
List<OrderByItem> orderByItems = new ArrayList<OrderByItem>();
- orderByItems.add(new OrderByItem(dataSet.getSelectItems()[0]));
+ orderByItems.add(new OrderByItem(dataSet.getSelectItems().get(0)));
dataSet = MetaModelHelper.getOrdered(dataSet, orderByItems);
assertTrue(dataSet.next());
@@ -188,7 +189,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
data1.add(new Object[] { "o" });
data1.add(new Object[] { "o" });
DataSet dataSet1 = createDataSet(
- new SelectItem[] { new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR)) }, data1);
+ Lists.newArrayList( new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR)) ), data1);
return dataSet1;
}
@@ -197,7 +198,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
data2.add(new Object[] { "b" });
data2.add(new Object[] { "a" });
data2.add(new Object[] { "r" });
- DataSet dataSet2 = createDataSet(new SelectItem[] { new SelectItem("bar", "bar") }, data2);
+ DataSet dataSet2 = createDataSet(Lists.newArrayList(new SelectItem("bar", "bar") ), data2);
return dataSet2;
}
@@ -205,14 +206,14 @@ public class MetaModelHelperTest extends MetaModelTestCase {
List<Object[]> data3 = new ArrayList<Object[]>();
data3.add(new Object[] { "w00p", true });
data3.add(new Object[] { "yippie", false });
- DataSet dataSet3 = createDataSet(new SelectItem[] { new SelectItem("expression", "e"),
- new SelectItem("webish?", "w") }, data3);
+ DataSet dataSet3 = createDataSet(Lists.newArrayList(new SelectItem("expression", "e"),
+ new SelectItem("webish?", "w") ), data3);
return dataSet3;
}
private DataSet createDataSet4() {
List<Object[]> data4 = new ArrayList<Object[]>();
- DataSet dataSet4 = createDataSet(new SelectItem[] { new SelectItem("abc", "abc") }, data4);
+ DataSet dataSet4 = createDataSet(Lists.newArrayList(new SelectItem("abc", "abc") ), data4);
return dataSet4;
}
@@ -294,7 +295,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
DataSet ds = MetaModelHelper.getSelection(selectItems2, new EmptyDataSet(selectItems1));
assertEquals(SubSelectionDataSet.class, ds.getClass());
- assertEquals("[bar AS b, foo AS f]", Arrays.toString(ds.getSelectItems()));
+ assertEquals("[bar AS b, foo AS f]", Arrays.toString(ds.getSelectItems().toArray()));
}
public void testLeftJoinNoRowsOrSingleRow() throws Exception {
@@ -311,7 +312,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
OperatorType.EQUALS_TO, item3) });
assertEquals(SubSelectionDataSet.class, joinedDs.getClass());
- assertEquals("[foo AS f, bar AS b, baz AS z]", Arrays.toString(joinedDs.getSelectItems()));
+ assertEquals("[foo AS f, bar AS b, baz AS z]", Arrays.toString(joinedDs.getSelectItems().toArray()));
DataSetHeader header1 = new SimpleDataSetHeader(selectItems1);
Row row = new DefaultRow(header1, new Object[] { 1, 2 }, null);
@@ -319,7 +320,7 @@ public class MetaModelHelperTest extends MetaModelTestCase {
joinedDs = MetaModelHelper.getLeftJoin(ds1, ds2, new FilterItem[] { new FilterItem(item2,
OperatorType.EQUALS_TO, item3) });
- assertEquals("[foo AS f, bar AS b, baz AS z]", Arrays.toString(joinedDs.getSelectItems()));
+ assertEquals("[foo AS f, bar AS b, baz AS z]", Arrays.toString(joinedDs.getSelectItems().toArray()));
assertTrue(joinedDs.next());
assertEquals("Row[values=[1, 2, null]]", joinedDs.getRow().toString());
assertFalse(joinedDs.next());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/MetaModelTestCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/MetaModelTestCase.java b/core/src/test/java/org/apache/metamodel/MetaModelTestCase.java
index 3e1e5a9..56d57c8 100644
--- a/core/src/test/java/org/apache/metamodel/MetaModelTestCase.java
+++ b/core/src/test/java/org/apache/metamodel/MetaModelTestCase.java
@@ -124,25 +124,25 @@ public abstract class MetaModelTestCase extends TestCase {
table4.setColumns(columnList);
// one-Contributor-to-many-Role's
- MutableRelationship.createRelationship(new Column[] { column1 }, new Column[] { column8 });
+ MutableRelationship.createRelationship( column1 , column8 );
// one-Project-to-many-Role's
- MutableRelationship.createRelationship(new Column[] { column4 }, new Column[] { column9 });
+ MutableRelationship.createRelationship(column4 , column9 );
// view relation [contributor -> contributor_name]
- MutableRelationship.createRelationship(new Column[] { column2 }, new Column[] { column11 });
+ MutableRelationship.createRelationship(column2 , column11 );
// view relation [project -> project_name]
- MutableRelationship.createRelationship(new Column[] { column5 }, new Column[] { column12 });
+ MutableRelationship.createRelationship(column5 , column12 );
// view relation [role -> role_name]
- MutableRelationship.createRelationship(new Column[] { column10 }, new Column[] { column13 });
+ MutableRelationship.createRelationship( column10 , column13 );
schema.setTables(table1, table2, table3, table4);
return schema;
}
- protected static DataSet createDataSet(SelectItem[] selectItems, List<Object[]> data) {
+ protected static DataSet createDataSet(List<SelectItem> selectItems, List<Object[]> data) {
if (data.isEmpty()) {
return new EmptyDataSet(selectItems);
}
@@ -179,7 +179,7 @@ public abstract class MetaModelTestCase extends TestCase {
}
public void assertEquals(DataSet ds1, DataSet ds2) {
- assertEquals(Arrays.toString(ds1.getSelectItems()), Arrays.toString(ds2.getSelectItems()));
+ assertEquals(Arrays.toString(ds1.getSelectItems().toArray()), Arrays.toString(ds2.getSelectItems().toArray()));
boolean ds1next = true;
while (ds1next) {
ds1next = ds1.next();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/MockDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/MockDataContext.java b/core/src/test/java/org/apache/metamodel/MockDataContext.java
index 74d2464..0c217f2 100644
--- a/core/src/test/java/org/apache/metamodel/MockDataContext.java
+++ b/core/src/test/java/org/apache/metamodel/MockDataContext.java
@@ -20,6 +20,7 @@ package org.apache.metamodel;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.metamodel.data.CachingDataSetHeader;
import org.apache.metamodel.data.DataSet;
@@ -79,9 +80,9 @@ public class MockDataContext extends QueryPostprocessDataContext {
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
if (_tableName.equals(table.getName())) {
- final SelectItem[] allSelectItems = MetaModelHelper.createSelectItems(table.getColumns());
+ final List<SelectItem> allSelectItems = table.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
final DataSetHeader header = new CachingDataSetHeader(allSelectItems);
final List<Row> data = new ArrayList<Row>();
data.add(new DefaultRow(header, new Object[] { "1", "hello", "world" }, null));
@@ -91,11 +92,11 @@ public class MockDataContext extends QueryPostprocessDataContext {
final DataSet sourceDataSet = new InMemoryDataSet(header, data);
- final SelectItem[] columnSelectItems = MetaModelHelper.createSelectItems(columns);
+ final List<SelectItem> columnSelectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
final DataSet selectionDataSet = MetaModelHelper.getSelection(columnSelectItems, sourceDataSet);
return selectionDataSet;
} else if ("an_empty_table".equals(table.getName())) {
- return new EmptyDataSet(columns);
+ return new EmptyDataSet(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
}
throw new UnsupportedOperationException();
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/MockUpdateableDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/MockUpdateableDataContext.java b/core/src/test/java/org/apache/metamodel/MockUpdateableDataContext.java
index 8d6d48e..4e6563a 100644
--- a/core/src/test/java/org/apache/metamodel/MockUpdateableDataContext.java
+++ b/core/src/test/java/org/apache/metamodel/MockUpdateableDataContext.java
@@ -21,6 +21,7 @@ package org.apache.metamodel;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.metamodel.create.TableCreationBuilder;
import org.apache.metamodel.data.CachingDataSetHeader;
@@ -68,16 +69,16 @@ public class MockUpdateableDataContext extends QueryPostprocessDataContext imple
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
List<Row> rows = new ArrayList<Row>();
- SelectItem[] items = MetaModelHelper.createSelectItems(columns);
+ List<SelectItem> items = columns.stream().map(SelectItem::new).collect(Collectors.toList());
CachingDataSetHeader header = new CachingDataSetHeader(items);
for (final Object[] values : _values) {
- Object[] rowValues = new Object[columns.length];
- for (int i = 0; i < columns.length; i++) {
- int columnNumber = columns[i].getColumnNumber();
+ Object[] rowValues = new Object[columns.size()];
+ for (int i = 0; i < columns.size(); i++) {
+ int columnNumber = columns.get(i).getColumnNumber();
rowValues[i] = values[columnNumber];
}
rows.add(new DefaultRow(header, rowValues));
@@ -161,7 +162,7 @@ public class MockUpdateableDataContext extends QueryPostprocessDataContext imple
}
private void delete(List<FilterItem> whereItems) {
- final SelectItem[] selectItems = MetaModelHelper.createSelectItems(_table.getColumns());
+ final List<SelectItem> selectItems = _table.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
final CachingDataSetHeader header = new CachingDataSetHeader(selectItems);
for (Iterator<Object[]> it = _values.iterator(); it.hasNext();) {
Object[] values = (Object[]) it.next();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
index d6955a9..f6352d4 100644
--- a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
@@ -22,6 +22,7 @@ import java.nio.channels.UnsupportedAddressTypeException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
import javax.swing.table.TableModel;
@@ -61,7 +62,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testQueryMaxRows0() throws Exception {
final MockDataContext dc = new MockDataContext("sch", "tab", "1");
- final Table table = dc.getDefaultSchema().getTables()[0];
+ final Table table = dc.getDefaultSchema().getTable(0);
final DataSet dataSet = dc.query().from(table).selectAll().limit(0).execute();
assertTrue(dataSet instanceof EmptyDataSet);
assertFalse(dataSet.next());
@@ -77,12 +78,12 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
final QueryPostprocessDataContext dc = new QueryPostprocessDataContext() {
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
- Object[] values = new Object[columns.length];
- for (int i = 0; i < columns.length; i++) {
- values[i] = columns[i].getColumnNumber();
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
+ Object[] values = new Object[columns.size()];
+ for (int i = 0; i < columns.size(); i++) {
+ values[i] = columns.get(i).getColumnNumber();
}
- DataSetHeader header = new SimpleDataSetHeader(columns);
+ DataSetHeader header = new SimpleDataSetHeader(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
DefaultRow row = new DefaultRow(header, values);
return new InMemoryDataSet(row);
}
@@ -110,13 +111,13 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testAggregateQueryNoWhereClause() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", "1");
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
assertSingleRowResult("Row[values=[4]]", dc.query().from(table).selectCount().execute());
}
public void testAggregateQueryRegularWhereClause() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", "1");
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
assertSingleRowResult("Row[values=[3]]", dc.query().from(table).selectCount().where("baz").eq("world")
.execute());
}
@@ -124,14 +125,10 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testApplyFunctionToNullValues() throws Exception {
QueryPostprocessDataContext dataContext = new QueryPostprocessDataContext() {
@Override
- public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
if (table == table1) {
- Column[] columns1 = table1.getColumns();
- SelectItem[] selectItems = new SelectItem[columns1.length];
- for (int i = 0; i < selectItems.length; i++) {
- SelectItem selectItem = new SelectItem(columns1[i]);
- selectItems[i] = selectItem;
- }
+ List<Column> columns1 = table1.getColumns();
+ List<SelectItem> selectItems = columns1.stream().map(SelectItem::new).collect(Collectors.toList());
List<Object[]> data = new ArrayList<Object[]>();
data.add(new Object[] { 1, "no nulls", 1 });
data.add(new Object[] { 2, "onlynull", null });
@@ -175,7 +172,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testGroupByNulls() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", null);
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
DataSet dataSet = dc.query().from(table).select(FunctionType.SUM, "foo").select("baz").groupBy("baz").execute();
assertTrue(dataSet.next());
assertEquals("Row[values=[7.0, world]]", dataSet.getRow().toString());
@@ -187,7 +184,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testNewAggregateFunctions() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", null);
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
DataSet dataSet = dc.query().from(table).select(FunctionType.FIRST, "foo").select(FunctionType.LAST, "foo")
.select(FunctionType.RANDOM, "foo").execute();
assertTrue(dataSet.next());
@@ -226,10 +223,10 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testMixedAggregateAndRawQuery() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", "1");
- Table table = dc.getDefaultSchema().getTables()[0];
- Column[] columns = table.getColumns();
+ Table table = dc.getDefaultSchema().getTable(0);
+ List<Column> columns = table.getColumns();
- Query query = dc.query().from(table).select(FunctionType.MAX, columns[0]).and(columns[1]).toQuery();
+ Query query = dc.query().from(table).select(FunctionType.MAX, columns.get(0)).and(columns.get(1)).toQuery();
assertEquals("SELECT MAX(tab.foo), tab.bar FROM sch.tab", query.toSql());
DataSet ds = dc.executeQuery(query);
@@ -246,7 +243,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testScalarFunctionSelect() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", "1");
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
Query query = dc.query().from(table).select("foo").select(FunctionType.TO_NUMBER, "foo").select("bar")
.select(FunctionType.TO_STRING, "bar").select(FunctionType.TO_NUMBER, "bar").toQuery();
@@ -278,7 +275,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testScalarFunctionWhere() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", "1");
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
Query query = dc.query().from(table).select("foo").where(FunctionType.TO_NUMBER, "bar").eq(1).toQuery();
assertEquals("SELECT tab.foo FROM sch.tab WHERE TO_NUMBER(tab.bar) = 1", query.toSql());
@@ -297,7 +294,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testSelectItemReferencesToFromItems() throws Exception {
MockDataContext dc = new MockDataContext("sch", "tab", "1");
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTable(0);
Query q = new Query();
FromItem fromItem1 = q.from(table, "t1").getFromClause().getItem(0);
@@ -308,10 +305,10 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
assertEquals("SELECT t1.foo, t2.foo FROM sch.tab t1, sch.tab t2 WHERE t1.foo = '2'", q.toSql());
DataSet ds = dc.executeQuery(q);
- SelectItem[] selectItems = ds.getSelectItems();
- assertEquals(2, selectItems.length);
- assertEquals("t1.foo", selectItems[0].toSql());
- assertEquals("t2.foo", selectItems[1].toSql());
+ List<SelectItem> selectItems = ds.getSelectItems();
+ assertEquals(2, selectItems.size());
+ assertEquals("t1.foo", selectItems.get(0).toSql());
+ assertEquals("t2.foo", selectItems.get(1).toSql());
assertTrue(ds.next());
assertEquals("Row[values=[2, 1]]", ds.getRow().toString());
assertTrue(ds.next());
@@ -328,14 +325,10 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
QueryPostprocessDataContext dataContext = new QueryPostprocessDataContext() {
@Override
- public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
if (table == table1) {
- Column[] columns1 = table1.getColumns();
- SelectItem[] selectItems = new SelectItem[columns1.length];
- for (int i = 0; i < selectItems.length; i++) {
- SelectItem selectItem = new SelectItem(columns1[i]);
- selectItems[i] = selectItem;
- }
+ List<Column> columns1 = table1.getColumns();
+ List<SelectItem> selectItems = columns1.stream().map(SelectItem::new).collect(Collectors.toList());
List<Object[]> data = new ArrayList<Object[]>();
data.add(new Object[] { 1, "kasper", "denmark" });
data.add(new Object[] { 2, "asbjorn", "denmark" });
@@ -350,12 +343,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
}
return createDataSet(selectItems, data);
} else if (table == table2) {
- Column[] columns2 = table2.getColumns();
- SelectItem[] selectItems = new SelectItem[columns2.length];
- for (int i = 0; i < selectItems.length; i++) {
- SelectItem selectItem = new SelectItem(columns2[i]);
- selectItems[i] = selectItem;
- }
+ List<SelectItem> selectItems = table2.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
List<Object[]> data = new ArrayList<Object[]>();
data.add(new Object[] { 1, 1, "founder" });
data.add(new Object[] { 1, 1, "developer" });
@@ -408,25 +396,25 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testInformationSchema() throws Exception {
DataContext dc = getDataContext();
- assertEquals("[information_schema, MetaModelSchema]", Arrays.toString(dc.getSchemaNames()));
+ assertEquals("[information_schema, MetaModelSchema]", Arrays.toString(dc.getSchemaNames().toArray()));
Schema informationSchema = dc.getSchemaByName("information_schema");
assertEquals(
"[Table[name=tables,type=TABLE,remarks=null], Table[name=columns,type=TABLE,remarks=null], Table[name=relationships,type=TABLE,remarks=null]]",
- Arrays.toString(informationSchema.getTables()));
+ Arrays.toString(informationSchema.getTables().toArray()));
assertEquals(
"[Relationship[primaryTable=tables,primaryColumns=[name],foreignTable=columns,foreignColumns=[table]], "
+ "Relationship[primaryTable=tables,primaryColumns=[name],foreignTable=relationships,foreignColumns=[primary_table]], "
+ "Relationship[primaryTable=tables,primaryColumns=[name],foreignTable=relationships,foreignColumns=[foreign_table]], "
+ "Relationship[primaryTable=columns,primaryColumns=[name],foreignTable=relationships,foreignColumns=[primary_column]], "
+ "Relationship[primaryTable=columns,primaryColumns=[name],foreignTable=relationships,foreignColumns=[foreign_column]]]",
- Arrays.toString(informationSchema.getRelationships()));
+ Arrays.toString(informationSchema.getRelationships().toArray()));
Table tablesTable = informationSchema.getTableByName("tables");
assertEquals(
"[Column[name=name,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], "
+ "Column[name=type,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=num_columns,columnNumber=2,type=INTEGER,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=remarks,columnNumber=3,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(tablesTable.getColumns()));
+ Arrays.toString(tablesTable.getColumns().toArray()));
Table columnsTable = informationSchema.getTableByName("columns");
assertEquals(
"[Column[name=name,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], "
@@ -437,14 +425,14 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+ "Column[name=indexed,columnNumber=5,type=BOOLEAN,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=table,columnNumber=6,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], "
+ "Column[name=remarks,columnNumber=7,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(columnsTable.getColumns()));
+ Arrays.toString(columnsTable.getColumns().toArray()));
Table relationshipsTable = informationSchema.getTableByName("relationships");
assertEquals(
"[Column[name=primary_table,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], "
+ "Column[name=primary_column,columnNumber=1,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], "
+ "Column[name=foreign_table,columnNumber=2,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], "
+ "Column[name=foreign_column,columnNumber=3,type=VARCHAR,nullable=false,nativeType=null,columnSize=null]]",
- Arrays.toString(relationshipsTable.getColumns()));
+ Arrays.toString(relationshipsTable.getColumns().toArray()));
DataSet dataSet = dc.query().from(tablesTable).select(tablesTable.getColumns()).execute();
assertTrue(dataSet.next());
@@ -458,7 +446,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
assertFalse(dataSet.next());
dataSet.close();
- Relationship relationship = tablesTable.getRelationships(columnsTable)[0];
+ Relationship relationship = tablesTable.getRelationships(columnsTable).iterator().next();
FromItem joinFromItem = new FromItem(JoinType.INNER, relationship);
Query q = new Query().select(tablesTable.getColumnByName("name")).select(columnsTable.getColumnByName("name"))
.select(columnsTable.getBooleanColumns()).from(joinFromItem);
@@ -492,7 +480,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
DataContext dc = getDataContext();
DataSet data = dc.executeQuery(q);
- assertEquals(1, data.getSelectItems().length);
+ assertEquals(1, data.getSelectItems().size());
TableModel tableModel = new DataSetTableModel(data);
@@ -533,8 +521,8 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
DataContext dc = getDataContext();
DataSet data = dc.executeQuery(q);
- assertEquals(1, data.getSelectItems().length);
- assertEquals("SUM(r.project_id)", data.getSelectItems()[0].toString());
+ assertEquals(1, data.getSelectItems().size());
+ assertEquals("SUM(r.project_id)", data.getSelectItems().get(0).toString());
TableModel tableModel = new DataSetTableModel(data);
assertEquals(3, tableModel.getRowCount());
@@ -564,31 +552,31 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
DataContext dc = getDataContext();
DataSet data = dc.executeQuery(q);
- assertEquals(1, data.getSelectItems().length);
- assertEquals("r.name", data.getSelectItems()[0].toString());
+ assertEquals(1, data.getSelectItems().size());
+ assertEquals("r.name", data.getSelectItems().get(0).toString());
TableModel tableModel = new DataSetTableModel(data);
assertEquals(3, tableModel.getRowCount());
q.select(new SelectItem(FunctionType.COUNT, "*", "c"));
q.where(new FilterItem(new SelectItem(roleColumn), OperatorType.EQUALS_TO, "founder"));
data = dc.executeQuery(q);
- assertEquals(2, data.getSelectItems().length);
- assertEquals("r.name", data.getSelectItems()[0].toString());
- assertEquals("COUNT(*) AS c", data.getSelectItems()[1].toString());
+ assertEquals(2, data.getSelectItems().size());
+ assertEquals("r.name", data.getSelectItems().get(0).toString());
+ assertEquals("COUNT(*) AS c", data.getSelectItems().get(1).toString());
tableModel = new DataSetTableModel(data);
assertEquals(1, tableModel.getRowCount());
assertEquals("founder", tableModel.getValueAt(0, 0));
assertEquals(2l, tableModel.getValueAt(0, 1));
- q.select(new SelectItem(FunctionType.SUM, table2.getColumns()[0]));
+ q.select(new SelectItem(FunctionType.SUM, table2.getColumn(0)));
assertEquals(
"SELECT r.name, COUNT(*) AS c, SUM(r.contributor_id) FROM MetaModelSchema.role r WHERE r.name = 'founder' GROUP BY r.name",
q.toString());
data = dc.executeQuery(q);
- assertEquals(3, data.getSelectItems().length);
- assertEquals("r.name", data.getSelectItems()[0].toString());
- assertEquals("COUNT(*) AS c", data.getSelectItems()[1].toString());
- assertEquals("SUM(r.contributor_id)", data.getSelectItems()[2].toString());
+ assertEquals(3, data.getSelectItems().size());
+ assertEquals("r.name", data.getSelectItems().get(0).toString());
+ assertEquals("COUNT(*) AS c", data.getSelectItems().get(1).toString());
+ assertEquals("SUM(r.contributor_id)", data.getSelectItems().get(2).toString());
tableModel = new DataSetTableModel(data);
assertEquals(1, tableModel.getRowCount());
assertEquals("founder", tableModel.getValueAt(0, 0));
@@ -744,7 +732,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
q.select(table1.getColumns());
q.select(table2.getColumns());
DataSet data = dc.executeQuery(q);
- assertEquals(table1.getColumnCount() + table2.getColumnCount(), data.getSelectItems().length);
+ assertEquals(table1.getColumnCount() + table2.getColumnCount(), data.getSelectItems().size());
for (int i = 0; i < 6 * 8; i++) {
assertTrue(data.next());
if (i == 0) {
@@ -843,7 +831,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
q.toString());
DataSet data = dc.executeQuery(q);
- assertEquals(2, data.getSelectItems().length);
+ assertEquals(2, data.getSelectItems().size());
assertTrue(data.next());
assertEquals("Row[values=[kasper, founder]]", data.getRow().toString());
assertTrue(data.next());
@@ -888,7 +876,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
SelectItem s1 = new SelectItem(table1.getColumnByName(COLUMN_CONTRIBUTOR_NAME));
SelectItem s2 = new SelectItem(table2.getColumnByName(COLUMN_ROLE_ROLE_NAME));
- FromItem fromItem = new FromItem(JoinType.INNER, table1.getRelationships(table2)[0]);
+ FromItem fromItem = new FromItem(JoinType.INNER, table1.getRelationships(table2).iterator().next());
Query q = new Query();
q.select(s1);
@@ -899,7 +887,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
q.toString());
DataSet data = dc.executeQuery(q);
- assertEquals(2, data.getSelectItems().length);
+ assertEquals(2, data.getSelectItems().size());
assertTrue(data.next());
assertEquals("Row[values=[kasper, founder]]", data.getRow().toString());
assertTrue(data.next());
@@ -941,7 +929,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
DataContext dc = getDataContext();
DataSet data = dc.executeQuery(q2);
- assertEquals(1, data.getSelectItems().length);
+ assertEquals(1, data.getSelectItems().size());
assertTrue(data.next());
assertEquals("Row[values=[kasper]]", data.getRow().toString());
assertTrue(data.next());
@@ -968,7 +956,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
"SELECT d.e AS f FROM (SELECT c.name AS e FROM (SELECT contributor.contributor_id, contributor.name, contributor.country FROM MetaModelSchema.contributor) c) d",
q3.toString());
data = dc.executeQuery(q3);
- assertEquals(1, data.getSelectItems().length);
+ assertEquals(1, data.getSelectItems().size());
assertTrue(data.next());
assertEquals("Row[values=[kasper]]", data.getRow().toString());
assertTrue(data.next());
@@ -1015,7 +1003,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testExecuteCount() throws Exception {
QueryPostprocessDataContext dc = new QueryPostprocessDataContext() {
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
throw new UnsupportedOperationException();
}
@@ -1047,7 +1035,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
public void testExecutePrimaryKeyLookupQuery() throws Exception {
QueryPostprocessDataContext dc = new QueryPostprocessDataContext() {
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
throw new UnsupportedAddressTypeException();
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/convert/ConvertersTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/convert/ConvertersTest.java b/core/src/test/java/org/apache/metamodel/convert/ConvertersTest.java
index c68dfd2..f23cf1a 100644
--- a/core/src/test/java/org/apache/metamodel/convert/ConvertersTest.java
+++ b/core/src/test/java/org/apache/metamodel/convert/ConvertersTest.java
@@ -37,7 +37,7 @@ public class ConvertersTest extends TestCase {
public void testAutoDetectConverters() throws Exception {
final MockUpdateableDataContext decoratedDataContext = new MockUpdateableDataContext();
- final Table table = decoratedDataContext.getDefaultSchema().getTables()[0];
+ final Table table = decoratedDataContext.getDefaultSchema().getTables().get(0);
Map<Column, TypeConverter<?, ?>> converters = Converters.autoDetectConverters(decoratedDataContext, table, 2);
assertEquals(1, converters.size());
assertEquals(
@@ -92,7 +92,7 @@ public class ConvertersTest extends TestCase {
assertEquals("foo is expected to be string", String.class, physicalValues[0].getClass());
}
- final Table table = dc.getDefaultSchema().getTables()[0];
+ final Table table = dc.getDefaultSchema().getTables().get(0);
Map<Column, TypeConverter<?, ?>> converters = Converters.autoDetectConverters(dc, table, 1000);
assertEquals(1, converters.size());
dc = Converters.addTypeConverters(dc, converters);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 c4d320c..f5e7356 100644
--- a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
+++ b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
@@ -57,11 +57,11 @@ public class AbstractCreateTableBuilderTest extends TestCase {
assertEquals("tablename", table.getName());
assertEquals(3, table.getColumnCount());
assertEquals("Column[name=foo,columnNumber=0,type=VARCHAR,nullable=true,nativeType=vch,columnSize=1234]",
- table.getColumns()[0].toString());
+ table.getColumn(0).toString());
assertEquals("Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]",
- table.getColumns()[1].toString());
+ table.getColumn(1).toString());
assertEquals("Column[name=baz,columnNumber=2,type=null,nullable=false,nativeType=null,columnSize=null]",
- table.getColumns()[2].toString());
+ table.getColumn(2).toString());
System.out.println(builder.toSql());
assertEquals("CREATE TABLE schema.tablename (foo VARCHAR(1234),bar,baz NOT NULL, PRIMARY KEY(foo))", builder.toSql());
@@ -96,12 +96,12 @@ public class AbstractCreateTableBuilderTest extends TestCase {
assertEquals("tablename", table.getName());
assertEquals(3, table.getColumnCount());
assertEquals("Column[name=foo,columnNumber=0,type=VARCHAR,nullable=true,nativeType=vch,columnSize=1234]",
- table.getColumns()[0].toString());
- assertTrue(table.getColumns()[0].isPrimaryKey());
+ table.getColumn(0).toString());
+ assertTrue(table.getColumn(0).isPrimaryKey());
assertEquals("Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]",
- table.getColumns()[1].toString());
+ table.getColumn(1).toString());
assertEquals("Column[name=baz,columnNumber=2,type=null,nullable=null,nativeType=null,columnSize=null]",
- table.getColumns()[2].toString());
+ table.getColumn(1).toString());
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/data/DataSetTableModelTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/data/DataSetTableModelTest.java b/core/src/test/java/org/apache/metamodel/data/DataSetTableModelTest.java
index b70bc8c..6736c5f 100644
--- a/core/src/test/java/org/apache/metamodel/data/DataSetTableModelTest.java
+++ b/core/src/test/java/org/apache/metamodel/data/DataSetTableModelTest.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.swing.table.TableModel;
+import com.google.common.collect.Lists;
import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.MutableColumn;
@@ -34,7 +35,7 @@ public class DataSetTableModelTest extends TestCase {
public void testToTableModel() throws Exception {
SelectItem[] selectItems = MetaModelHelper.createSelectItems(new MutableColumn("CUSTOMERNUMBER"),
new MutableColumn("CUSTOMERNAME"), new MutableColumn("CONTACTLASTNAME"));
- CachingDataSetHeader header = new CachingDataSetHeader(selectItems);
+ CachingDataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(selectItems));
List<Row> rows = new ArrayList<Row>();
rows.add(new DefaultRow(header, new Object[] { 1, "John", "Doe" }));
rows.add(new DefaultRow(header, new Object[] { 2, "John", "Taylor" }));
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java b/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
index 40f0551..1f485ea 100644
--- a/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
+++ b/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
@@ -24,6 +24,7 @@ import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;
+import java.util.List;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
@@ -71,9 +72,9 @@ public class DefaultRowTest extends TestCase {
Row row = (Row) obj;
assertEquals(2, row.size());
- SelectItem[] selectItems = row.getSelectItems();
- assertEquals("foo", selectItems[0].toString());
- assertEquals("bar", selectItems[1].toString());
+ List<SelectItem> selectItems = row.getSelectItems();
+ assertEquals("foo", selectItems.get(0).toString());
+ assertEquals("bar", selectItems.get(1).toString());
assertEquals("foo", row.getValue(0));
assertEquals("bar", row.getValue(1));
@@ -81,7 +82,7 @@ public class DefaultRowTest extends TestCase {
assertEquals(Style.NO_STYLE, row.getStyle(0));
assertEquals(Style.NO_STYLE, row.getStyle(1));
- Column column = selectItems[0].getColumn();
+ Column column = selectItems.get(0).getColumn();
assertNotNull(column);
// the columns used to create the object did not have column types assigned.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/data/RowTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/data/RowTest.java b/core/src/test/java/org/apache/metamodel/data/RowTest.java
index daa846a..685a1d3 100644
--- a/core/src/test/java/org/apache/metamodel/data/RowTest.java
+++ b/core/src/test/java/org/apache/metamodel/data/RowTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.metamodel.data;
+import com.google.common.collect.Lists;
import org.apache.metamodel.MetaModelTestCase;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Schema;
@@ -28,29 +29,27 @@ public class RowTest extends MetaModelTestCase {
public void testRow() throws Exception {
Schema schema = getExampleSchema();
Table projectTable = schema.getTableByName(TABLE_PROJECT);
- SelectItem item = new SelectItem(projectTable.getColumns()[0]);
- SelectItem[] items = { item };
- DataSetHeader header = new CachingDataSetHeader(items);
+ SelectItem item = new SelectItem(projectTable.getColumn(0));
+ DataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(item));
Object[] values = { "foobar" };
Row row = new DefaultRow(header, values);
assertEquals("Row[values=[foobar]]", row.toString());
assertEquals("foobar", row.getValue(0));
assertEquals("foobar", row.getValues()[0]);
assertEquals("foobar", row.getValue(item));
- assertEquals(item, row.getSelectItems()[0]);
+ assertEquals(item, row.getSelectItems().get(0));
}
public void testGetSubSelection() throws Exception {
Schema schema = getExampleSchema();
Table projectTable = schema.getTableByName(TABLE_PROJECT);
- SelectItem item1 = new SelectItem(projectTable.getColumns()[0]);
- SelectItem item2 = new SelectItem(projectTable.getColumns()[0]);
- SelectItem[] items = { item1, item2 };
- DataSetHeader header = new CachingDataSetHeader(items);
+ SelectItem item1 = new SelectItem(projectTable.getColumn(0));
+ SelectItem item2 = new SelectItem(projectTable.getColumn(0));
+ DataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(item1,item2));
Object[] values = { "foo", "bar" };
Row row = new DefaultRow(header, values);
row = row.getSubSelection(new SimpleDataSetHeader(new SelectItem[] { item1 }));
- assertEquals(1, row.getSelectItems().length);
+ assertEquals(1, row.getSelectItems().size());
assertEquals(1, row.getValues().length);
assertEquals("foo", row.getValue(0));
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java b/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
index 44178b2..cce8b18 100644
--- a/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
+++ b/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
@@ -23,7 +23,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
+import java.util.stream.Collectors;
+import com.google.common.collect.Lists;
+import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.MutableColumn;
import org.junit.Test;
@@ -34,25 +37,33 @@ public class UnionDataSetTest {
public void testVanillaUnion() {
// data set 1
final DataSetHeader header1 =
- new SimpleDataSetHeader(new Column[] { new MutableColumn("foo1"), new MutableColumn("bar1") });
+ new SimpleDataSetHeader(
+ Lists.newArrayList(new MutableColumn("foo1"), new MutableColumn("bar1")).stream()
+ .map(SelectItem::new).collect(Collectors.toList()));
final Row row1 = new DefaultRow(header1, new Object[] { "1", "2" });
final Row row2 = new DefaultRow(header1, new Object[] { "3", "4" });
final DataSet ds1 = new InMemoryDataSet(header1, row1, row2);
// data set 2
final DataSetHeader header2 =
- new SimpleDataSetHeader(new Column[] { new MutableColumn("foo2"), new MutableColumn("bar2") });
+ new SimpleDataSetHeader(
+ Lists.newArrayList( new MutableColumn("foo2"), new MutableColumn("bar2") ).stream()
+ .map(SelectItem::new).collect(Collectors.toList()));
final Row row3 = new DefaultRow(header2, new Object[] { "5", "6" });
final DataSet ds2 = new InMemoryDataSet(header2, row3);
// data set 3
final DataSetHeader header3 =
- new SimpleDataSetHeader(new Column[] { new MutableColumn("foo3"), new MutableColumn("bar3") });
+ new SimpleDataSetHeader(
+ Lists.newArrayList( new MutableColumn("foo3"), new MutableColumn("bar3") ).stream()
+ .map(SelectItem::new).collect(Collectors.toList()));
final Row row4 = new DefaultRow(header2, new Object[] { "7", "8" });
final DataSet ds3 = new InMemoryDataSet(header3, row4);
final DataSetHeader unionHeader =
- new SimpleDataSetHeader(new Column[] { new MutableColumn("fooUnion"), new MutableColumn("barUnion") });
+ new SimpleDataSetHeader(
+ Lists.newArrayList( new MutableColumn("fooUnion"), new MutableColumn("barUnion") ).stream()
+ .map(SelectItem::new).collect(Collectors.toList()));
final DataSet unionDataSet = UnionDataSet.ofDataSets(unionHeader, Arrays.asList(ds1, ds2, ds3));
assertTrue(unionDataSet.next());
assertEquals("Row[values=[1, 2]]", unionDataSet.getRow().toString());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/delete/AbstractRowDeletionCallbackTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/delete/AbstractRowDeletionCallbackTest.java b/core/src/test/java/org/apache/metamodel/delete/AbstractRowDeletionCallbackTest.java
index f0774f0..0c0b98f 100644
--- a/core/src/test/java/org/apache/metamodel/delete/AbstractRowDeletionCallbackTest.java
+++ b/core/src/test/java/org/apache/metamodel/delete/AbstractRowDeletionCallbackTest.java
@@ -30,7 +30,7 @@ public class AbstractRowDeletionCallbackTest extends TestCase {
public void testDelete() throws Exception {
final MockUpdateableDataContext dc = new MockUpdateableDataContext();
- final Table table = dc.getDefaultSchema().getTables()[0];
+ final Table table = dc.getDefaultSchema().getTables().get(0);
DataSet ds = dc.query().from(table).selectCount().execute();
assertTrue(ds.next());
assertEquals("3", ds.getRow().getValue(0).toString());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
index e5ee2f1..647ace4 100644
--- a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.intercept;
import java.util.Arrays;
+import java.util.List;
import junit.framework.TestCase;
@@ -35,7 +36,7 @@ public class InterceptableDataContextTest extends TestCase {
private final MockUpdateableDataContext delegateDataContext = new MockUpdateableDataContext();
private final Table table = delegateDataContext.getDefaultSchema()
- .getTables()[0];
+ .getTables().get(0);
public void testInterceptSchema() throws Exception {
// without an interceptor
@@ -43,15 +44,15 @@ public class InterceptableDataContextTest extends TestCase {
DataContext dc = new InterceptableDataContext(delegateDataContext);
Schema schema = dc.getDefaultSchema();
- Schema[] schemas = dc.getSchemas();
+ List<Schema> schemas = dc.getSchemas();
assertEquals("schema", schema.getName());
assertEquals(MutableSchema.class, schema.getClass());
assertEquals("[information_schema, schema]",
- Arrays.toString(dc.getSchemaNames()));
- assertEquals(2, schemas.length);
- assertEquals("information_schema", schemas[0].getName());
- assertEquals("schema", schemas[1].getName());
+ Arrays.toString(dc.getSchemaNames().toArray()));
+ assertEquals(2, schemas.size());
+ assertEquals("information_schema", schemas.get(0).getName());
+ assertEquals("schema", schemas.get(1).getName());
}
// with an interceptor
@@ -65,15 +66,15 @@ public class InterceptableDataContextTest extends TestCase {
});
Schema schema = dc.getDefaultSchema();
- Schema[] schemas = dc.getSchemas();
+ List<Schema> schemas = dc.getSchemas();
assertEquals("schema foo!", schema.getName());
assertEquals(MutableSchema.class, schema.getClass());
assertEquals("[information_schema foo!, schema foo!]",
- Arrays.toString(dc.getSchemaNames()));
- assertEquals(2, schemas.length);
- assertEquals("information_schema foo!", schemas[0].getName());
- assertEquals("schema foo!", schemas[1].getName());
+ Arrays.toString(dc.getSchemaNames().toArray()));
+ assertEquals(2, schemas.size());
+ assertEquals("information_schema foo!", schemas.get(0).getName());
+ assertEquals("schema foo!", schemas.get(1).getName());
}
}
@@ -108,6 +109,6 @@ public class InterceptableDataContextTest extends TestCase {
});
DataSet ds = dc.executeQuery(new Query().from(table));
- assertEquals("[table.foo, table.bar]", Arrays.toString(ds.getSelectItems()));
+ assertEquals("[table.foo, table.bar]", Arrays.toString(ds.getSelectItems().toArray()));
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java b/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
index 3b89d9d..9053625 100644
--- a/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.metamodel.query;
+import com.google.common.collect.Lists;
import junit.framework.TestCase;
import org.apache.metamodel.DataContext;
@@ -43,6 +44,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
+import java.util.stream.Collectors;
public class FilterItemTest extends TestCase {
@@ -168,7 +170,7 @@ public class FilterItemTest extends TestCase {
Column col2 = new MutableColumn("Col2", ColumnType.DECIMAL);
SelectItem s1 = new SelectItem(col1);
SelectItem s2 = new SelectItem(col2);
- SelectItem[] selectItems = new SelectItem[] { s1, s2 };
+ List<SelectItem> selectItems = Lists.newArrayList( s1, s2 );
CachingDataSetHeader header = new CachingDataSetHeader(selectItems);
FilterItem c = new FilterItem(s1, OperatorType.EQUALS_TO, null);
@@ -235,8 +237,7 @@ public class FilterItemTest extends TestCase {
public void testEvaluateDates() throws Exception {
Column col1 = new MutableColumn("Col1", ColumnType.DATE);
SelectItem s1 = new SelectItem(col1);
- SelectItem[] selectItems = new SelectItem[] { s1 };
- CachingDataSetHeader header = new CachingDataSetHeader(selectItems);
+ CachingDataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(s1));
long currentTimeMillis = System.currentTimeMillis();
FilterItem c = new FilterItem(s1, OperatorType.LESS_THAN, new java.sql.Date(currentTimeMillis));
@@ -331,8 +332,7 @@ public class FilterItemTest extends TestCase {
FilterItem filter = new FilterItem(LogicalOperator.AND, c1, c2, c3);
assertEquals("(Col1 LIKE 'foo%' AND Col1 LIKE '%bar' AND Col1 <> 'foobar')", filter.toString());
- SelectItem[] items = new SelectItem[] { s1 };
- CachingDataSetHeader header = new CachingDataSetHeader(items);
+ CachingDataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(s1));
assertTrue(filter.evaluate(new DefaultRow(header, new Object[] { "foo bar" })));
assertTrue(filter.evaluate(new DefaultRow(header, new Object[] { "foosenbar" })));
assertFalse(filter.evaluate(new DefaultRow(header, new Object[] { "foo" })));
@@ -373,15 +373,16 @@ public class FilterItemTest extends TestCase {
DataContext dc = new QueryPostprocessDataContext() {
@Override
- public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
// we expect 3 columns to be materialized because the query has column references in both SELECT and WHERE clause
- assertEquals(3, columns.length);
- assertEquals("column_number", columns[0].getName());
- assertEquals("name", columns[1].getName());
- assertEquals("role", columns[2].getName());
- SelectItem[] selectItems = new SelectItem[] { new SelectItem(col1), new SelectItem(col2),
- new SelectItem(col3) };
- DataSetHeader header = new CachingDataSetHeader(selectItems);
+ assertEquals(3, columns.size());
+ assertEquals("column_number", columns.get(0).getName());
+ assertEquals("name", columns.get(1).getName());
+ assertEquals("role", columns.get(2).getName());
+
+ DataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(col1, col2, col3).stream()
+ .map(SelectItem::new)
+ .collect(Collectors.toList()));
List<Row> rows = new LinkedList<Row>();
rows.add(new DefaultRow(header, new Object[] { "foo", "bar", 1 }));
rows.add(new DefaultRow(header, new Object[] { "kasper", "developer", 2 }));
@@ -462,8 +463,7 @@ public class FilterItemTest extends TestCase {
Object operand = new String[] { "foo", "bar" };
FilterItem filterItem = new FilterItem(selectItem, OperatorType.IN, operand);
- SelectItem[] selectItems = new SelectItem[] { selectItem };
- DataSetHeader header = new CachingDataSetHeader(selectItems);
+ DataSetHeader header = new CachingDataSetHeader(Lists.newArrayList(selectItem));
assertTrue(filterItem.evaluate(new DefaultRow(header, new Object[] { "foo" })));
assertTrue(filterItem.evaluate(new DefaultRow(header, new Object[] { "bar" })));
[17/20] metamodel git commit: Fixed unused import and deprecation
warnings
Posted by ka...@apache.org.
Fixed unused import and deprecation warnings
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/d24c3e58
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/d24c3e58
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/d24c3e58
Branch: refs/heads/master
Commit: d24c3e5849052560e69241c4d4db3f9a99a65f78
Parents: 840aea4
Author: Kasper Sørensen <i....@gmail.com>
Authored: Thu Aug 3 20:32:36 2017 -0700
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Thu Aug 3 20:32:36 2017 -0700
----------------------------------------------------------------------
.../apache/metamodel/data/UnionDataSetTest.java | 4 +-
.../metamodel/couchdb/CouchDbDataContext.java | 1 -
.../apache/metamodel/couchdb/CouchDbUtils.java | 8 +--
.../nativeclient/ElasticSearchDataSet.java | 1 -
.../rest/JestElasticSearchDataSet.java | 19 ++++---
.../rest/JestElasticSearchUpdateCallback.java | 1 -
.../metamodel/excel/ExcelDataContext.java | 21 +++----
.../metamodel/excel/ExcelDeleteBuilder.java | 7 +--
.../org/apache/metamodel/excel/ExcelUtils.java | 59 +++++++++-----------
.../excel/XlsxSpreadsheetReaderDelegate.java | 1 -
.../fixedwidth/EbcdicConfiguration.java | 2 +
.../apache/metamodel/jdbc/JdbcDataContext.java | 1 -
.../org/apache/metamodel/jdbc/JdbcSchema.java | 1 -
.../metamodel/jdbc/JdbcDataContextTest.java | 3 +-
.../jdbc/integrationtests/FirebirdTest.java | 4 +-
.../jdbc/integrationtests/OracleTest.java | 4 +-
.../apache/metamodel/json/JsonDataContext.java | 1 -
.../metamodel/json/JsonDataContextTest.java | 5 +-
.../mongodb/mongo2/MongoDbDataSet.java | 5 +-
.../mongodb/mongo3/MongoDbDataSet.java | 5 +-
.../mongodb/mongo3/MongoDbDataContextTest.java | 5 +-
.../metamodel/neo4j/Neo4jDataContext.java | 1 -
.../metamodel/neo4j/Neo4jDataContextTest.java | 1 -
.../apache/metamodel/pojo/PojoDataContext.java | 1 -
.../salesforce/SalesforceDataContext.java | 3 +-
.../salesforce/SalesforceUpdateCallback.java | 1 -
.../apache/metamodel/xml/XmlDomDataContext.java | 1 -
27 files changed, 69 insertions(+), 97 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java b/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
index cce8b18..d6707e4 100644
--- a/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
+++ b/core/src/test/java/org/apache/metamodel/data/UnionDataSetTest.java
@@ -25,12 +25,12 @@ import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.stream.Collectors;
-import com.google.common.collect.Lists;
import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.MutableColumn;
import org.junit.Test;
+import com.google.common.collect.Lists;
+
public class UnionDataSetTest {
@Test
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/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 bc0a19d..9da47b9 100644
--- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
+++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
@@ -22,7 +22,6 @@ import java.util.List;
import java.util.stream.Collectors;
import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.QueryPostprocessDataContext;
import org.apache.metamodel.UpdateScript;
import org.apache.metamodel.UpdateSummary;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbUtils.java
----------------------------------------------------------------------
diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbUtils.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbUtils.java
index d29c95d..c1d5b4f 100644
--- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbUtils.java
+++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbUtils.java
@@ -36,6 +36,8 @@ import com.fasterxml.jackson.databind.ObjectReader;
* Convenience and utility methods for MetaModel's CouchDB adaptor
*/
final class CouchDbUtils {
+
+ private static final ObjectReader OBJECT_READER = new ObjectMapper().readerFor(Map.class);;
/**
* Safely calls hasNext on a row iterator
@@ -89,8 +91,7 @@ final class CouchDbUtils {
return null;
}
try {
- final ObjectReader reader = new ObjectMapper().reader(Map.class);
- return reader.readValue(valueNode);
+ return OBJECT_READER.readValue(valueNode);
} catch (Exception e) {
throw new IllegalStateException(e);
}
@@ -108,8 +109,7 @@ final class CouchDbUtils {
return null;
}
try {
- ObjectReader reader = new ObjectMapper().reader(List.class);
- return reader.readValue(valueNode);
+ return OBJECT_READER.readValue(valueNode);
} catch (Exception e) {
throw new IllegalStateException(e);
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/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 1a04bc8..4ced2c8 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
@@ -26,7 +26,6 @@ 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;
import org.elasticsearch.action.search.ClearScrollRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/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 0414358..37e06dc 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
@@ -18,22 +18,23 @@
*/
package org.apache.metamodel.elasticsearch.rest;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-import io.searchbox.client.JestClient;
-import io.searchbox.client.JestResult;
-import io.searchbox.core.SearchScroll;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+
+import io.searchbox.client.JestClient;
+import io.searchbox.client.JestResult;
+import io.searchbox.core.SearchScroll;
/**
* {@link DataSet} implementation for ElasticSearch
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUpdateCallback.java
----------------------------------------------------------------------
diff --git a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUpdateCallback.java b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUpdateCallback.java
index 94e557c..a61280a 100644
--- a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUpdateCallback.java
+++ b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/JestElasticSearchUpdateCallback.java
@@ -29,7 +29,6 @@ import org.apache.metamodel.drop.TableDropBuilder;
import org.apache.metamodel.insert.RowInsertionBuilder;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
-import org.elasticsearch.action.bulk.BulkRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/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 1ce4244..713fbe8 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java
@@ -20,7 +20,6 @@ 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;
@@ -35,7 +34,6 @@ import org.apache.metamodel.schema.MutableSchema;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.util.FileResource;
-import org.apache.metamodel.util.Func;
import org.apache.metamodel.util.Resource;
import org.apache.poi.POIXMLDocument;
import org.slf4j.Logger;
@@ -187,19 +185,16 @@ public final class ExcelDataContext extends QueryPostprocessDataContext implemen
if (_spreadsheetReaderDelegate == null) {
synchronized (this) {
if (_spreadsheetReaderDelegate == null) {
- _spreadsheetReaderDelegate = _resource.read(new Func<InputStream, SpreadsheetReaderDelegate>() {
- @Override
- public SpreadsheetReaderDelegate eval(InputStream in) {
- try {
- if (POIXMLDocument.hasOOXMLHeader(in)) {
- return new XlsxSpreadsheetReaderDelegate(_resource, _configuration);
- } else {
- return new DefaultSpreadsheetReaderDelegate(_resource, _configuration);
- }
- } catch (IOException e) {
- logger.warn("Could not identify spreadsheet type, using default", e);
+ _spreadsheetReaderDelegate = _resource.read(in -> {
+ try {
+ if (POIXMLDocument.hasOOXMLHeader(in)) {
+ return new XlsxSpreadsheetReaderDelegate(_resource, _configuration);
+ } else {
return new DefaultSpreadsheetReaderDelegate(_resource, _configuration);
}
+ } catch (IOException e) {
+ logger.warn("Could not identify spreadsheet type, using default", e);
+ return new DefaultSpreadsheetReaderDelegate(_resource, _configuration);
}
});
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/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 e4731b3..82eb5b6 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelDeleteBuilder.java
@@ -24,17 +24,16 @@ 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;
-import org.apache.poi.ss.usermodel.Workbook;
import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.data.DataSetHeader;
import org.apache.metamodel.data.DefaultRow;
import org.apache.metamodel.data.SimpleDataSetHeader;
import org.apache.metamodel.delete.AbstractRowDeletionBuilder;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Table;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
final class ExcelDeleteBuilder extends AbstractRowDeletionBuilder {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java b/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
index 1f424d6..85cc79b 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
@@ -19,7 +19,6 @@
package org.apache.metamodel.excel;
import java.io.File;
-import java.io.InputStream;
import java.io.OutputStream;
import java.text.NumberFormat;
import java.util.Date;
@@ -30,6 +29,23 @@ import java.util.stream.Collectors;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import org.apache.metamodel.MetaModelException;
+import org.apache.metamodel.data.DataSet;
+import org.apache.metamodel.data.DataSetHeader;
+import org.apache.metamodel.data.DefaultRow;
+import org.apache.metamodel.data.EmptyDataSet;
+import org.apache.metamodel.data.Style;
+import org.apache.metamodel.data.Style.SizeUnit;
+import org.apache.metamodel.data.StyleBuilder;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.schema.Table;
+import org.apache.metamodel.util.Action;
+import org.apache.metamodel.util.DateUtils;
+import org.apache.metamodel.util.FileHelper;
+import org.apache.metamodel.util.FileResource;
+import org.apache.metamodel.util.FormatHelper;
+import org.apache.metamodel.util.InMemoryResource;
+import org.apache.metamodel.util.Resource;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -50,25 +66,6 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
-import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
-import org.apache.metamodel.data.DataSet;
-import org.apache.metamodel.data.DataSetHeader;
-import org.apache.metamodel.data.DefaultRow;
-import org.apache.metamodel.data.EmptyDataSet;
-import org.apache.metamodel.data.Style;
-import org.apache.metamodel.data.Style.SizeUnit;
-import org.apache.metamodel.data.StyleBuilder;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Table;
-import org.apache.metamodel.util.Action;
-import org.apache.metamodel.util.DateUtils;
-import org.apache.metamodel.util.FileHelper;
-import org.apache.metamodel.util.FileResource;
-import org.apache.metamodel.util.FormatHelper;
-import org.apache.metamodel.util.Func;
-import org.apache.metamodel.util.InMemoryResource;
-import org.apache.metamodel.util.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.XMLReader;
@@ -117,15 +114,12 @@ final class ExcelUtils {
}
}
- return resource.read(new Func<InputStream, Workbook>() {
- @Override
- public Workbook eval(InputStream inputStream) {
- try {
- return WorkbookFactory.create(inputStream);
- } catch (Exception e) {
- logger.error("Could not open workbook", e);
- throw new IllegalStateException("Could not open workbook", e);
- }
+ return resource.read(inputStream -> {
+ try {
+ return WorkbookFactory.create(inputStream);
+ } catch (Exception e) {
+ logger.error("Could not open workbook", e);
+ throw new IllegalStateException("Could not open workbook", e);
}
});
}
@@ -277,8 +271,8 @@ final class ExcelUtils {
return getCellValue(wb, evaluatedCell);
} catch (RuntimeException e) {
- logger.warn("Exception occurred while evaluating formula at position ({},{}): {}",
- new Object[] { cell.getRowIndex(), cell.getColumnIndex(), e.getMessage() });
+ logger.warn("Exception occurred while evaluating formula at position ({},{}): {}", new Object[] { cell
+ .getRowIndex(), cell.getColumnIndex(), e.getMessage() });
// Some exceptions we simply log - result will be then be the
// actual formula
if (e instanceof FormulaParseException) {
@@ -442,7 +436,8 @@ final class ExcelUtils {
}
public static DataSet getDataSet(Workbook workbook, Sheet sheet, Table table, ExcelConfiguration configuration) {
- final List<SelectItem> selectItems = table.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
+ final List<SelectItem> selectItems = table.getColumns().stream().map(SelectItem::new).collect(Collectors
+ .toList());
final Iterator<Row> rowIterator = getRowIterator(sheet, configuration, true);
if (!rowIterator.hasNext()) {
// no more rows!
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java b/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
index 0436a2a..81214fe 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
@@ -22,7 +22,6 @@ import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java
----------------------------------------------------------------------
diff --git a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java
index e4bff94..c2002de 100644
--- a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java
+++ b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java
@@ -25,6 +25,8 @@ import org.apache.metamodel.schema.naming.ColumnNamingStrategy;
*/
public final class EbcdicConfiguration extends FixedWidthConfiguration {
+ private static final long serialVersionUID = 1L;
+
private final boolean _skipEbcdicHeader;
private final boolean _eolPresent;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
index 3f4a0ad..fbe45e0 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
@@ -25,7 +25,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
index ccac3f8..55ac4f0 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
@@ -22,7 +22,6 @@ import java.io.ObjectStreamException;
import java.sql.Connection;
import org.apache.metamodel.schema.MutableSchema;
-import org.apache.metamodel.schema.MutableTable;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
index c0f1b4e..64a31a6 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
@@ -34,7 +34,6 @@ import java.util.concurrent.TimeUnit;
import javax.sql.DataSource;
import javax.swing.table.TableModel;
-import org.easymock.EasyMock;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
@@ -54,10 +53,10 @@ import org.apache.metamodel.query.Query;
import org.apache.metamodel.query.QueryParameter;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
-import org.apache.metamodel.schema.Relationship;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.schema.TableType;
+import org.easymock.EasyMock;
public class JdbcDataContextTest extends JdbcTestCase {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
index 9857ea5..30c6dd2 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
@@ -24,10 +24,8 @@ import java.util.Date;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.management.relation.Relation;
import javax.swing.table.TableModel;
-import com.google.common.collect.Sets;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetTableModel;
import org.apache.metamodel.jdbc.JdbcDataContext;
@@ -38,6 +36,8 @@ import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import com.google.common.collect.Sets;
+
/**
* Integrationtests for Firebird SQL.
*
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
index 826bc81..75baff4 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
@@ -28,9 +28,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.swing.table.TableModel;
-import javax.swing.text.html.Option;
-import com.google.common.collect.Sets;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetTableModel;
@@ -46,6 +44,8 @@ import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.schema.TableType;
+import com.google.common.collect.Sets;
+
/**
* Test case that tests oracle interaction. An express edition of the oracle
* database can be used to run these tests.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
----------------------------------------------------------------------
diff --git a/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java b/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
index 6578d7c..b0e923f 100644
--- a/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
+++ b/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
@@ -25,7 +25,6 @@ import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.QueryPostprocessDataContext;
import org.apache.metamodel.convert.DocumentConverter;
import org.apache.metamodel.data.CachingDataSetHeader;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
----------------------------------------------------------------------
diff --git a/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java b/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
index bfc1283..b27fc3d 100644
--- a/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
+++ b/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
@@ -21,11 +21,8 @@ package org.apache.metamodel.json;
import java.io.File;
import java.util.Arrays;
-import junit.framework.TestCase;
-
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.FunctionType;
-import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.schema.builder.SchemaBuilder;
@@ -35,6 +32,8 @@ import org.apache.metamodel.util.FileResource;
import org.apache.metamodel.util.Resource;
import org.apache.metamodel.util.SimpleTableDef;
+import junit.framework.TestCase;
+
public class JsonDataContextTest extends TestCase {
public void testReadArrayWithDocumentsFile() throws Exception {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
index 3197945..cffd0de 100644
--- a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
+++ b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
@@ -18,19 +18,18 @@
*/
package org.apache.metamodel.mongodb.mongo2;
+import java.util.List;
+
import org.apache.metamodel.data.AbstractDataSet;
import org.apache.metamodel.data.Row;
import org.apache.metamodel.mongodb.common.MongoDBUtils;
import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
-import java.util.List;
-
final class MongoDbDataSet extends AbstractDataSet {
private static final Logger logger = LoggerFactory.getLogger(MongoDbDataSet.class);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
index 76a7636..3846b4a 100644
--- a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
+++ b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
@@ -18,19 +18,18 @@
*/
package org.apache.metamodel.mongodb.mongo3;
+import java.util.List;
+
import org.apache.metamodel.data.AbstractDataSet;
import org.apache.metamodel.data.Row;
import org.apache.metamodel.mongodb.common.MongoDBUtils;
import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.mongodb.client.MongoCursor;
-import java.util.List;
-
final class MongoDbDataSet extends AbstractDataSet {
private static final Logger logger = LoggerFactory.getLogger(MongoDbDataSet.class);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
index 9751719..78fbddc 100644
--- a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
+++ b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
@@ -24,10 +24,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.mongodb.BasicDBObject;
-import com.mongodb.DBCollection;
-import com.mongodb.WriteConcern;
-
import org.apache.metamodel.DataContext;
import org.apache.metamodel.UpdateCallback;
import org.apache.metamodel.UpdateScript;
@@ -43,6 +39,7 @@ import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
+import com.mongodb.WriteConcern;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
----------------------------------------------------------------------
diff --git a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
index 82f710d..2a598b5 100644
--- a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
+++ b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
@@ -30,7 +30,6 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.QueryPostprocessDataContext;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DocumentSource;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
----------------------------------------------------------------------
diff --git a/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java b/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
index 89bf977..1ac7fa2 100644
--- a/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
+++ b/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
@@ -19,7 +19,6 @@
package org.apache.metamodel.neo4j;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
----------------------------------------------------------------------
diff --git a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
index f694202..97828df 100644
--- a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
@@ -28,7 +28,6 @@ import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.QueryPostprocessDataContext;
import org.apache.metamodel.UpdateScript;
import org.apache.metamodel.UpdateSummary;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
index 8d25bf4..7e3a73e 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
@@ -164,7 +164,7 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
try {
sb.append("SELECT ");
int i = 0;
- final List<Column> columns = new ArrayList(selectItems.size());
+ final List<Column> columns = new ArrayList<>(selectItems.size());
for (SelectItem selectItem : selectItems) {
validateSoqlSupportedSelectItem(selectItem);
columns.set(i,selectItem.getColumn());
@@ -352,7 +352,6 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
}
}
- @SuppressWarnings("deprecation")
private static void validateSoqlSupportedSelectItem(SelectItem selectItem) throws UnsupportedOperationException {
if (selectItem.hasFunction()) {
throw new UnsupportedOperationException("Function select items not supported: " + selectItem);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceUpdateCallback.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceUpdateCallback.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceUpdateCallback.java
index bf9b43b..5db2264 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceUpdateCallback.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceUpdateCallback.java
@@ -215,7 +215,6 @@ final class SalesforceUpdateCallback extends AbstractUpdateCallback implements C
* @param idList
* @param whereItem
*/
- @SuppressWarnings("deprecation")
protected void buildIdList(List<String> idList, FilterItem whereItem) {
if (whereItem.isCompoundFilter()) {
final LogicalOperator logicalOperator = whereItem.getLogicalOperator();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/d24c3e58/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
index cfc3686..aab6fca 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
@@ -34,7 +34,6 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.metamodel.MetaModelException;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.QueryPostprocessDataContext;
import org.apache.metamodel.data.CachingDataSetHeader;
import org.apache.metamodel.data.DataSet;
[08/20] metamodel git commit: less intrusive conversion,
due to failing test cases
Posted by ka...@apache.org.
less intrusive conversion, due to failing test cases
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/7f76973e
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/7f76973e
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/7f76973e
Branch: refs/heads/master
Commit: 7f76973edc8e9e72bd404484585c11f156766926
Parents: 2d156bc
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Thu Jul 27 18:18:12 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Thu Jul 27 18:18:12 2017 +0200
----------------------------------------------------------------------
.../apache/metamodel/xml/XmlDomDataContext.java | 67 +++++++++++---------
1 file changed, 38 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/7f76973e/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
index 3c4d0cd..ad8181c 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
@@ -21,7 +21,11 @@ package org.apache.metamodel.xml;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.Map.Entry;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -175,7 +179,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
@Override
- public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columnList, int maxRows) {
loadSchema();
List<Object[]> tableData = _tableData.get(table.getName());
if (tableData == null) {
@@ -183,8 +187,9 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
+ _tableData.keySet());
}
- final List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
+ final List<SelectItem> selectItems = columnList.stream().map(SelectItem::new).collect(Collectors.toList());
final DataSetHeader header = new CachingDataSetHeader(selectItems);
+ final Column[] columns = columnList.toArray(new Column[columnList.size()]);
final List<Row> resultData = new ArrayList<Row>();
for (Object[] tableDataRow : tableData) {
@@ -192,9 +197,9 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
break;
}
maxRows--;
- Object[] dataValues = new Object[columns.size()];
- for (int i = 0; i < columns.size(); i++) {
- Column column = columns.get(i);
+ Object[] dataValues = new Object[columns.length];
+ for (int i = 0; i < columns.length; i++) {
+ Column column = columns[i];
int columnNumber = column.getColumnNumber();
// Some rows may not contain values for all columns
// (attributes)
@@ -256,7 +261,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
// Remove tables from schema that has no data (typically root
// node or pure XML structure)
- List<Table> tables = _schema.getTables();
+ Table[] tables = _schema.getTables().toArray(new Table[0]);
for (Table table : tables) {
String tableName = table.getName();
List<Object[]> tableRows = _tableData.get(tableName);
@@ -328,7 +333,7 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
table.addColumn(foreignKeyColumn);
MutableRelationship.createRelationship(parentKeyColumn ,
- foreignKeyColumn );
+ foreignKeyColumn);
} else {
foreignKeyColumn = null;
@@ -336,9 +341,9 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
} else {
idColumn = getIdColumn(table);
tableRows = _tableData.get(tableName);
- List<Column> foreignKeys = table.getForeignKeys();
- if (foreignKeys.size() == 1) {
- foreignKeyColumn = (MutableColumn) foreignKeys.get(0);
+ Column[] foreignKeys = table.getForeignKeys().toArray(new Column[0]);
+ if (foreignKeys.length == 1) {
+ foreignKeyColumn = (MutableColumn) foreignKeys[0];
} else {
foreignKeyColumn = null;
}
@@ -398,9 +403,8 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
private Column getTextContentColumn(MutableTable table, String preferredColumnName) {
- List<Column> columns = table.getColumns();
MutableColumn column = null;
- for (Column col : columns) {
+ for (Column col : table.getColumns()) {
if (NATIVE_TYPE_TEXT.equals(col.getNativeType())) {
column = (MutableColumn) col;
break;
@@ -417,9 +421,8 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
private MutableColumn getIdColumn(MutableTable table) {
- List<Column> columns = table.getColumns();
MutableColumn column = null;
- for (Column col : columns) {
+ for (Column col : table.getColumns()) {
if (NATIVE_TYPE_PRIMARY_KEY.equals(col.getNativeType())) {
column = (MutableColumn) col;
break;
@@ -504,15 +507,18 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
// Check that foreignTable is not primary table in other relationships
// (if so we can't flatten as that would require id-rewriting of those
// foreign tables as well)
- if (!foreignTable.getPrimaryKeyRelationships().isEmpty()) {
- Collection<Relationship> foreignPrimaryRelationships = foreignTable.getPrimaryKeyRelationships();
+ if (foreignTable.getPrimaryKeyRelationships().size() != 0) {
+ Relationship[] foreignPrimaryRelationships = foreignTable.getPrimaryKeyRelationships().toArray(new Relationship[0]);
+ String[] foreignPrimaryNames = new String[foreignPrimaryRelationships.length];
+ for (int i = 0; i < foreignPrimaryRelationships.length; i++) {
+ foreignPrimaryNames[i] = foreignPrimaryRelationships[i].getForeignTable().getName();
+ }
throw new UnsupportedOperationException("Cannot flatten foreign table '" + foreignTable.getName()
- + "' as it acts as primary table for tables: " + foreignPrimaryRelationships.stream()
- .map(ftRel -> ftRel.getForeignTable().getName()).collect(Collectors.joining(", ")));
+ + "' as it acts as primary table for tables: " + Arrays.toString(foreignPrimaryNames));
}
- List<Column> primaryColumns = new ArrayList<>(primaryTable.getColumns());
- List<Column> foreignColumns = new ArrayList<>(foreignTable.getColumns());
+ List<Column> primaryColumns = new ArrayList<Column>(primaryTable.getColumns());
+ List<Column> foreignColumns = new ArrayList<Column>(foreignTable.getColumns());
// Remove the surrogate id
String primaryTableName = primaryTable.getName();
@@ -521,7 +527,8 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
foreignColumns.remove(idColumn);
// Remove the foreign keys
- for (Column foreignKey : foreignTable.getForeignKeys()) {
+ Column[] foreignKeys = foreignTable.getForeignKeys().toArray(new Column[0]);
+ for (Column foreignKey : foreignKeys) {
foreignColumns.remove(foreignKey);
}
@@ -567,20 +574,22 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
* mapped tables).
*/
public XmlDomDataContext autoFlattenTables() {
- for (Table table : _schema.getTables()) {
+ Table[] tables = _schema.getTables().toArray(new Table[0]);
+ for (Table table : tables) {
// First check to see that this table still exist (ie. has not been
// flattened in a previous loop)
if (_tableData.containsKey(table.getName())) {
// Find all tables that represent inner tags
- Collection<Relationship> foreignKeyRelationships = table.getForeignKeyRelationships();
- if (foreignKeyRelationships.size() == 1 && table.getPrimaryKeyRelationships().size() == 0) {
- Relationship foreignKeyRelationship = foreignKeyRelationships.iterator().next();
+ Relationship[] foreignKeyRelationships = table.getForeignKeyRelationships().toArray(new Relationship[0]);
+ if (foreignKeyRelationships.length == 1 && table.getPrimaryKeyRelationships().size() == 0) {
+ Relationship foreignKeyRelationship = foreignKeyRelationships[0];
// If there is exactly one inner tag then we can probably
// flatten the tables, but it's only relevant if the inner
// tag only carry a single data column
int nonDataColumns = 0;
- for (Column column : table.getColumns()) {
+ Column[] columns = table.getColumns().toArray(new Column[0]);
+ for (Column column : columns) {
String nativeType = column.getNativeType();
// Use the native column type constants to determine if
// the column is an artificial column
@@ -589,14 +598,14 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
}
- if (table.getColumns().size() == nonDataColumns + 1) {
+ if (columns.length == nonDataColumns + 1) {
// If the foreign key is unique for all rows, we will
// flatten it (otherwise it means that multiple inner
// tags occur, which requires two tables to deal with
// multiplicity)
boolean uniqueForeignKeys = true;
- List<Column> foreignColumns = foreignKeyRelationship.getForeignColumns();
+ Column[] foreignColumns = foreignKeyRelationship.getForeignColumns().toArray(new Column[0]);
SelectItem countAllItem = SelectItem.getCountAllItem();
Query q = new Query().select(foreignColumns).select(countAllItem).from(table).groupBy(
[06/20] metamodel git commit: now all compiling
Posted by ka...@apache.org.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java b/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
index 7504d64..1f424d6 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelUtils.java
@@ -24,6 +24,8 @@ import java.io.OutputStream;
import java.text.NumberFormat;
import java.util.Date;
import java.util.Iterator;
+import java.util.List;
+import java.util.stream.Collectors;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
@@ -440,7 +442,7 @@ final class ExcelUtils {
}
public static DataSet getDataSet(Workbook workbook, Sheet sheet, Table table, ExcelConfiguration configuration) {
- final SelectItem[] selectItems = MetaModelHelper.createSelectItems(table.getColumns());
+ final List<SelectItem> selectItems = table.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
final Iterator<Row> rowIterator = getRowIterator(sheet, configuration, true);
if (!rowIterator.hasNext()) {
// no more rows!
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/SpreadsheetReaderDelegate.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/SpreadsheetReaderDelegate.java b/excel/src/main/java/org/apache/metamodel/excel/SpreadsheetReaderDelegate.java
index 1181b07..5fdd7ec 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/SpreadsheetReaderDelegate.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/SpreadsheetReaderDelegate.java
@@ -23,6 +23,8 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.List;
+
/**
* Delegate for spreadsheet-implementation specific operations in an
* {@link ExcelDataContext}.
@@ -33,6 +35,6 @@ interface SpreadsheetReaderDelegate {
public Schema createSchema(String schemaName) throws Exception;
- public DataSet executeQuery(Table table, Column[] columns, int maxRows) throws Exception;
+ public DataSet executeQuery(Table table, List<Column> columns, int maxRows) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/XlsDataSet.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/XlsDataSet.java b/excel/src/main/java/org/apache/metamodel/excel/XlsDataSet.java
index 4e097e4..e0f4986 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/XlsDataSet.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/XlsDataSet.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.excel;
import java.util.Iterator;
+import java.util.List;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.metamodel.data.AbstractDataSet;
@@ -46,8 +47,8 @@ final class XlsDataSet extends AbstractDataSet {
* @param workbook
* @param rowIterator
*/
- public XlsDataSet(SelectItem[] selectItems, Workbook workbook,
- Iterator<org.apache.poi.ss.usermodel.Row> rowIterator) {
+ public XlsDataSet(List<SelectItem> selectItems, Workbook workbook,
+ Iterator<org.apache.poi.ss.usermodel.Row> rowIterator) {
super(selectItems);
_workbook = workbook;
_rowIterator = rowIterator;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/XlsxRowPublisherAction.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/XlsxRowPublisherAction.java b/excel/src/main/java/org/apache/metamodel/excel/XlsxRowPublisherAction.java
index a154251..5635de6 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/XlsxRowPublisherAction.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/XlsxRowPublisherAction.java
@@ -38,12 +38,12 @@ class XlsxRowPublisherAction implements Action<RowPublisher> {
.getLogger(XlsxRowPublisherAction.class);
private final ExcelConfiguration _configuration;
- private final Column[] _columns;
+ private final List<Column> _columns;
private final String _relationshipId;
private final XSSFReader _xssfReader;
public XlsxRowPublisherAction(ExcelConfiguration configuration,
- Column[] columns, String relationshipId, XSSFReader xssfReader) {
+ List<Column> columns, String relationshipId, XSSFReader xssfReader) {
_configuration = configuration;
_columns = columns;
_relationshipId = relationshipId;
@@ -66,10 +66,10 @@ class XlsxRowPublisherAction implements Action<RowPublisher> {
}
}
- Object[] rowData = new Object[_columns.length];
- Style[] styleData = new Style[_columns.length];
- for (int i = 0; i < _columns.length; i++) {
- int columnNumber = _columns[i].getColumnNumber();
+ Object[] rowData = new Object[_columns.size()];
+ Style[] styleData = new Style[_columns.size()];
+ for (int i = 0; i < _columns.size(); i++) {
+ int columnNumber = _columns.get(i).getColumnNumber();
if (columnNumber < values.size()) {
rowData[i] = values.get(columnNumber);
styleData[i] = styles.get(columnNumber);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
----------------------------------------------------------------------
diff --git a/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java b/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
index 94a9ff7..0436a2a 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/XlsxSpreadsheetReaderDelegate.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.RowPublisherDataSet;
@@ -72,7 +73,7 @@ final class XlsxSpreadsheetReaderDelegate implements SpreadsheetReaderDelegate {
}
@Override
- public DataSet executeQuery(Table table, Column[] columns, int maxRows) throws Exception {
+ public DataSet executeQuery(Table table, List<Column> columns, int maxRows) throws Exception {
final OPCPackage pkg = openOPCPackage();
final XSSFReader xssfReader = new XSSFReader(pkg);
final String relationshipId = _tableNamesToInternalIds.get(table.getName());
@@ -136,13 +137,10 @@ final class XlsxSpreadsheetReaderDelegate implements SpreadsheetReaderDelegate {
}
}
- private DataSet buildDataSet(final Column[] columns, int maxRows, final String relationshipId,
+ private DataSet buildDataSet(final List<Column> columns, int maxRows, final String relationshipId,
final XSSFReader xssfReader, final OPCPackage pkg) throws Exception {
- List<SelectItem> selectItems = new ArrayList<SelectItem>(columns.length);
- for (Column column : columns) {
- selectItems.add(new SelectItem(column));
- }
+ List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
final XlsxRowPublisherAction publishAction = new XlsxRowPublisherAction(_configuration, columns, relationshipId,
xssfReader);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/test/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegateTest.java
----------------------------------------------------------------------
diff --git a/excel/src/test/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegateTest.java b/excel/src/test/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegateTest.java
index 96d7dff..91d336b 100644
--- a/excel/src/test/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegateTest.java
+++ b/excel/src/test/java/org/apache/metamodel/excel/DefaultSpreadsheetReaderDelegateTest.java
@@ -20,6 +20,7 @@ package org.apache.metamodel.excel;
import java.io.File;
import java.lang.reflect.Field;
+import java.util.List;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.Row;
@@ -85,31 +86,31 @@ public class DefaultSpreadsheetReaderDelegateTest extends TestCase {
assertEquals(DefaultSpreadsheetReaderDelegate.class, mainDataContext.getSpreadsheetReaderDelegateClass());
- Table[] tables = schema.getTables();
- assertTrue(tables.length > 0);
+ List<Table> tables = schema.getTables();
+ assertTrue(tables.size() > 0);
- Table[] comparedTables = null;
+ List<Table> comparedTables = null;
if (comparedDataContext != null) {
assertEquals(XlsxSpreadsheetReaderDelegate.class, comparedDataContext.getSpreadsheetReaderDelegateClass());
comparedTables = comparedDataContext.getDefaultSchema().getTables();
- assertEquals(comparedTables.length, tables.length);
+ assertEquals(comparedTables.size(), tables.size());
}
- for (int i = 0; i < tables.length; i++) {
- Table table = tables[i];
- Column[] columns = table.getColumns();
+ for (int i = 0; i < tables.size(); i++) {
+ Table table = tables.get(i);
+ List<Column> columns = table.getColumns();
Query query = mainDataContext.query().from(table).select(columns).toQuery();
DataSet dataSet = mainDataContext.executeQuery(query);
DataSet comparedDataSet = null;
if (comparedDataContext != null) {
- Table comparedTable = comparedTables[i];
+ Table comparedTable = comparedTables.get(i);
assertEquals(comparedTable.getName(), table.getName());
assertEquals(comparedTable.getColumnCount(), table.getColumnCount());
- Column[] comparedColumns = comparedTable.getColumns();
- for (int j = 0; j < comparedColumns.length; j++) {
- assertEquals(columns[j].getColumnNumber(), comparedColumns[j].getColumnNumber());
+ List<Column> comparedColumns = comparedTable.getColumns();
+ for (int j = 0; j < comparedColumns.size(); j++) {
+ assertEquals(columns.get(j).getColumnNumber(), comparedColumns.get(j).getColumnNumber());
}
Query comparedQuery = comparedDataContext.query().from(comparedTable).select(comparedColumns).toQuery();
@@ -173,7 +174,7 @@ public class DefaultSpreadsheetReaderDelegateTest extends TestCase {
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/Spreadsheet2007.xlsx"));
applyReaderDelegate(dc);
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
final String expectedStyling = "";
@@ -194,7 +195,7 @@ public class DefaultSpreadsheetReaderDelegateTest extends TestCase {
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/formulas.xlsx"));
applyReaderDelegate(dc);
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
DataSet dataSet = dc.query().from(table).select("Foo").and("Bar").where("Foo").isEquals("7").execute();
assertTrue(dataSet.next());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
----------------------------------------------------------------------
diff --git a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
index ecd6691..844522e 100644
--- a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
+++ b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
@@ -82,7 +82,7 @@ public class ExcelDataContextTest extends TestCase {
assertNull(dc.getSpreadsheetReaderDelegateClass());
assertEquals(1, dc.getDefaultSchema().getTableCount());
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
assertEquals("sheet", table.getName());
assertEquals(0, table.getColumnCount());
@@ -94,7 +94,7 @@ public class ExcelDataContextTest extends TestCase {
ExcelConfiguration.NO_COLUMN_NAME_LINE, false, false));
assertEquals(1, dc.getDefaultSchema().getTableCount());
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
assertEquals("sheet", table.getName());
assertEquals(0, table.getColumnCount());
}
@@ -104,7 +104,7 @@ public class ExcelDataContextTest extends TestCase {
true, false));
assertEquals(1, dc.getDefaultSchema().getTableCount());
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
assertEquals("xls_people", table.getName());
assertEquals(0, table.getColumnCount());
}
@@ -112,8 +112,8 @@ public class ExcelDataContextTest extends TestCase {
public void testSkipEmptyColumns() throws Exception {
ExcelConfiguration conf = new ExcelConfiguration(ExcelConfiguration.DEFAULT_COLUMN_NAME_LINE, true, true);
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/skipped_lines.xlsx"), conf);
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[hello, world]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[hello, world]", Arrays.toString(table.getColumnNames().toArray()));
DataSet ds = dc.executeQuery(dc.query().from(table).select("hello").toQuery());
assertTrue(ds.next());
@@ -123,8 +123,8 @@ public class ExcelDataContextTest extends TestCase {
public void testDontSkipEmptyLinesNoHeader() throws Exception {
ExcelConfiguration conf = new ExcelConfiguration(ExcelConfiguration.NO_COLUMN_NAME_LINE, false, true);
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/skipped_lines.xlsx"), conf);
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[G, H]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[G, H]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(6, table.getColumnByName("G").getColumnNumber());
assertEquals(7, table.getColumnByName("H").getColumnNumber());
@@ -147,8 +147,8 @@ public class ExcelDataContextTest extends TestCase {
public void testDontSkipEmptyLinesAbsoluteHeader() throws Exception {
ExcelConfiguration conf = new ExcelConfiguration(6, false, true);
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/skipped_lines.xlsx"), conf);
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[hello, world]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[hello, world]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(6, table.getColumnByName("hello").getColumnNumber());
assertEquals(7, table.getColumnByName("world").getColumnNumber());
@@ -159,9 +159,9 @@ public class ExcelDataContextTest extends TestCase {
public void testInvalidFormula() throws Exception {
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/invalid_formula.xls"));
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
- assertEquals("[name]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[name]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select("name").toQuery();
@@ -197,11 +197,11 @@ public class ExcelDataContextTest extends TestCase {
public void testEvaluateFormula() throws Exception {
ExcelDataContext dc = new ExcelDataContext(copyOf("src/test/resources/xls_formulas.xls"));
- Table table = dc.getDefaultSchema().getTables()[0];
- Column[] columns = table.getColumns();
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ Column[] columns = table.getColumns().toArray(new Column[0]);
assertEquals("[some number, some mixed formula, some int only formula]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select(columns).toQuery();
DataSet ds = dc.executeQuery(q);
@@ -277,7 +277,7 @@ public class ExcelDataContextTest extends TestCase {
assertNotNull(table);
- assertEquals("[A, hello]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[A, hello]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select(table.getColumns()).toQuery();
DataSet ds = dc.executeQuery(q);
@@ -289,14 +289,14 @@ public class ExcelDataContextTest extends TestCase {
Schema schema = dc.getDefaultSchema();
assertEquals("Schema[name=testOpenXlsxFormat-Spreadsheet2007.xlsx]", schema.toString());
- assertEquals("[Sheet1, Sheet2, Sheet3]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[Sheet1, Sheet2, Sheet3]", Arrays.toString(schema.getTableNames().toArray()));
assertEquals(0, schema.getTableByName("Sheet2").getColumnCount());
assertEquals(0, schema.getTableByName("Sheet3").getColumnCount());
Table table = schema.getTableByName("Sheet1");
- assertEquals("[string, number, date]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[string, number, date]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select(table.getColumns()).orderBy(table.getColumnByName("number")).toQuery();
DataSet ds = dc.executeQuery(q);
@@ -312,9 +312,9 @@ public class ExcelDataContextTest extends TestCase {
File file = copyOf("src/test/resources/xls_people.xls");
DataContext dc = new ExcelDataContext(file, new ExcelConfiguration(ExcelConfiguration.NO_COLUMN_NAME_LINE,
true, true));
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
- String[] columnNames = table.getColumnNames();
+ String[] columnNames = table.getColumnNames().toArray(new String[0]);
assertEquals("[A, B, C, D]", Arrays.toString(columnNames));
Query q = dc.query().from(table).select(table.getColumnByName("A")).toQuery();
@@ -334,9 +334,9 @@ public class ExcelDataContextTest extends TestCase {
public void testConfigurationNonDefaultColumnNameLineNumber() throws Exception {
File file = copyOf("src/test/resources/xls_people.xls");
DataContext dc = new ExcelDataContext(file, new ExcelConfiguration(2, true, true));
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
- String[] columnNames = table.getColumnNames();
+ String[] columnNames = table.getColumnNames().toArray(new String[0]);
assertEquals("[1, mike, male, 18]", Arrays.toString(columnNames));
Query q = dc.query().from(table).select(table.getColumnByName("1")).toQuery();
@@ -355,18 +355,18 @@ public class ExcelDataContextTest extends TestCase {
public void testGetSchemas() throws Exception {
File file = copyOf("src/test/resources/xls_people.xls");
DataContext dc = new ExcelDataContext(file);
- Schema[] schemas = dc.getSchemas();
+ Schema[] schemas = dc.getSchemas().toArray(new Schema[0]);
assertEquals(2, schemas.length);
Schema schema = schemas[1];
assertEquals("testGetSchemas-xls_people.xls", schema.getName());
assertEquals(1, schema.getTableCount());
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
assertEquals("xls_people", 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());
@@ -376,7 +376,7 @@ public class ExcelDataContextTest extends TestCase {
public void testMaterializeTable() throws Exception {
File file = copyOf("src/test/resources/xls_people.xls");
ExcelDataContext dc = new ExcelDataContext(file);
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
DataSet dataSet = dc.materializeMainSchemaTable(table, table.getColumns(), -1);
assertTrue(dataSet.next());
assertEquals("Row[values=[1, mike, male, 18]]", dataSet.getRow().toString());
@@ -401,12 +401,12 @@ public class ExcelDataContextTest extends TestCase {
Schema schema = dc.getDefaultSchema();
assertEquals(1, schema.getTableCount());
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
assertEquals("[Column[name=a,columnNumber=0,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=b,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=c,columnNumber=2,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=d,columnNumber=3,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
Query q = new Query().select(table.getColumns()).from(table);
DataSet ds = dc.executeQuery(q);
@@ -425,12 +425,12 @@ public class ExcelDataContextTest extends TestCase {
Schema schema = dc.getDefaultSchema();
assertEquals(1, schema.getTableCount());
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
assertEquals("[Column[name=a,columnNumber=0,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=b,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=A,columnNumber=2,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=d,columnNumber=3,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
Query q = new Query().select(table.getColumns()).from(table);
DataSet ds = dc.executeQuery(q);
@@ -447,11 +447,11 @@ public class ExcelDataContextTest extends TestCase {
File file = copyOf("src/test/resources/formulas.xlsx");
ExcelDataContext dc = new ExcelDataContext(file);
- assertEquals("[sh1]", Arrays.toString(dc.getDefaultSchema().getTableNames()));
+ assertEquals("[sh1]", Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
assertEquals(XlsxSpreadsheetReaderDelegate.class, dc.getSpreadsheetReaderDelegateClass());
Table table = dc.getDefaultSchema().getTableByName("sh1");
- assertEquals("[Foo, Bar]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[Foo, Bar]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select("Foo").toQuery();
DataSet ds = dc.executeQuery(q);
@@ -525,7 +525,7 @@ public class ExcelDataContextTest extends TestCase {
Schema schema = dc.getDefaultSchema();
assertEquals(
"[Table[name=Sheet1,type=null,remarks=null], Table[name=Sheet2,type=null,remarks=null], Table[name=Sheet3,type=null,remarks=null]]",
- Arrays.toString(schema.getTables()));
+ Arrays.toString(schema.getTables().toArray()));
assertEquals(0, schema.getTableByName("Sheet2").getColumnCount());
assertEquals(0, schema.getTableByName("Sheet3").getColumnCount());
@@ -537,14 +537,14 @@ public class ExcelDataContextTest extends TestCase {
+ "Column[name=Description,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=Room,columnNumber=2,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=Level,columnNumber=3,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
}
public void testInsertInto() throws Exception {
final File file = copyOf("src/test/resources/xls_people.xls");
final ExcelDataContext dc = new ExcelDataContext(file);
- final Table table = dc.getDefaultSchema().getTables()[0];
+ final Table table = dc.getDefaultSchema().getTables().get(0);
final Column nameColumn = table.getColumnByName("name");
dc.executeUpdate(new UpdateScript() {
@@ -620,13 +620,13 @@ public class ExcelDataContextTest extends TestCase {
assertEquals(1, schema.getTableCount());
assertSame(table1.getSchema(), schema);
- assertSame(table1, schema.getTables()[0]);
+ assertSame(table1, schema.getTables().get(0));
Table table2 = cb.createTable(schema, "my_table_2").withColumn("foo").withColumn("bar")
.withColumn("baz").execute();
assertSame(table2.getSchema(), schema);
- assertSame(table2, schema.getTables()[1]);
+ assertSame(table2, schema.getTables().get(1));
assertEquals(2, schema.getTableCount());
cb.insertInto(table1).value("foo", 123.0).value("bar", "str 1").value("baz", true).execute();
@@ -637,7 +637,7 @@ public class ExcelDataContextTest extends TestCase {
Schema schema = dc.getDefaultSchema();
assertEquals(2, schema.getTableCount());
- assertEquals("[my_table_1, my_table_2]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[my_table_1, my_table_2]", Arrays.toString(schema.getTableNames().toArray()));
dc.executeUpdate(new UpdateScript() {
@Override
@@ -689,18 +689,18 @@ public class ExcelDataContextTest extends TestCase {
}
});
- assertEquals("[my_table_2]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[my_table_2]", Arrays.toString(schema.getTableNames().toArray()));
dc.refreshSchemas();
- assertEquals("[my_table_2]", Arrays.toString(dc.getDefaultSchema().getTableNames()));
+ assertEquals("[my_table_2]", Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
assertEquals(1, dc.getDefaultSchema().getTableCount());
}
public void testGetStyles() throws Exception {
DataContext dc = new ExcelDataContext(copyOf("src/test/resources/styles.xlsx"));
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[style name, example]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[style name, example]", Arrays.toString(table.getColumnNames().toArray()));
DataSet ds = dc.query().from(table).select(table.getColumns()).execute();
assertTrue(ds.next());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
----------------------------------------------------------------------
diff --git a/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java b/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
index 97101bd..a181248 100644
--- a/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
+++ b/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
@@ -84,11 +84,11 @@ public class ExcelUpdateCallbackTest extends TestCase {
{
ExcelDataContext dc = new ExcelDataContext(file);
assertEquals("[foobar]",
- Arrays.toString(dc.getDefaultSchema().getTableNames()));
+ Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
Table table = dc.getDefaultSchema().getTableByName("foobar");
- assertEquals("[value0]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[value0]", Arrays.toString(table.getColumnNames().toArray()));
DataSet ds = dc.query().from(table).select("value0").execute();
int recordNo = 1;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
----------------------------------------------------------------------
diff --git a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
index 952c4b5..aac5ada 100644
--- a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
+++ b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
@@ -21,6 +21,7 @@ package org.apache.metamodel.fixedwidth;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.InputStream;
+import java.util.List;
import org.apache.metamodel.MetaModelException;
import org.apache.metamodel.QueryPostprocessDataContext;
@@ -130,7 +131,7 @@ public class FixedWidthDataContext extends QueryPostprocessDataContext {
}
@Override
- public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
final FixedWidthReader reader = createReader();
try {
for (int i = 1; i <= _configuration.getColumnNameLineNumber(); i++) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataSet.java
----------------------------------------------------------------------
diff --git a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataSet.java b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataSet.java
index 4f78bab..ae469c1 100644
--- a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataSet.java
+++ b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataSet.java
@@ -21,9 +21,13 @@ package org.apache.metamodel.fixedwidth;
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;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* DataSet implementation for fixed width values.
*/
@@ -33,9 +37,9 @@ class FixedWidthDataSet extends AbstractDataSet {
private volatile Integer _rowsRemaining;
private volatile Row _row;
- public FixedWidthDataSet(FixedWidthReader reader, Column[] columns,
+ public FixedWidthDataSet(FixedWidthReader reader, List<Column> columns,
Integer maxRows) {
- super(columns);
+ super(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
_reader = reader;
_rowsRemaining = maxRows;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthConfigurationReaderTest.java
----------------------------------------------------------------------
diff --git a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthConfigurationReaderTest.java b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthConfigurationReaderTest.java
index c34b294..61e10d4 100644
--- a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthConfigurationReaderTest.java
+++ b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthConfigurationReaderTest.java
@@ -69,7 +69,7 @@ public class FixedWidthConfigurationReaderTest {
*/
private void performAssertionsOnSpec1(FixedWidthDataContext dataContext) {
final Table table = dataContext.getDefaultSchema().getTable(0);
- final String[] columnNames = table.getColumnNames();
+ final String[] columnNames = table.getColumnNames().toArray(new String[0]);
assertEquals("[Record type, Description, Initials]", Arrays.toString(columnNames));
try (final DataSet dataSet = dataContext.query().from(table).selectAll().execute()) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
----------------------------------------------------------------------
diff --git a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
index 7a4b75f..16f2c5b 100644
--- a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
+++ b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
@@ -37,7 +37,7 @@ public class FixedWidthDataContextTest extends TestCase {
new FixedWidthConfiguration(10));
assertEquals(1, dc.getDefaultSchema().getTableCount());
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
assertEquals("empty_file.txt", table.getName());
assertEquals(0, table.getColumnCount());
}
@@ -47,7 +47,7 @@ public class FixedWidthDataContextTest extends TestCase {
new FixedWidthConfiguration(FixedWidthConfiguration.NO_COLUMN_NAME_LINE, "UTF8", 10));
assertEquals(1, dc.getDefaultSchema().getTableCount());
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
assertEquals("empty_file.txt", table.getName());
assertEquals(0, table.getColumnCount());
}
@@ -57,7 +57,7 @@ public class FixedWidthDataContextTest extends TestCase {
new FixedWidthConfiguration(20, "UTF8", 10));
assertEquals(1, dc.getDefaultSchema().getTableCount());
- Table table = dc.getDefaultSchema().getTables()[0];
+ Table table = dc.getDefaultSchema().getTables().get(0);
assertEquals("example_simple1.txt", table.getName());
assertEquals(0, table.getColumnCount());
}
@@ -66,7 +66,7 @@ public class FixedWidthDataContextTest extends TestCase {
FixedWidthConfiguration conf = new FixedWidthConfiguration(10);
FixedWidthDataContext dc = new FixedWidthDataContext(new File("src/test/resources/example_simple1.txt"), conf);
- String[] schemaNames = dc.getSchemaNames();
+ String[] schemaNames = dc.getSchemaNames().toArray(new String[0]);
assertEquals(2, schemaNames.length);
assertEquals("[information_schema, resources]", Arrays.toString(schemaNames));
@@ -78,7 +78,7 @@ public class FixedWidthDataContextTest extends TestCase {
Table table = schema.getTableByName("example_simple1.txt");
assertEquals("Table[name=example_simple1.txt,type=TABLE,remarks=null]", table.toString());
- assertEquals("[greeting, greeter]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[greeting, greeter]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(10, table.getColumnByName("greeting").getColumnSize().intValue());
assertEquals(10, table.getColumnByName("greeter").getColumnSize().intValue());
@@ -99,7 +99,7 @@ public class FixedWidthDataContextTest extends TestCase {
10, true);
FixedWidthDataContext dc = new FixedWidthDataContext(new File("src/test/resources/example_simple1.txt"), conf);
- String[] schemaNames = dc.getSchemaNames();
+ String[] schemaNames = dc.getSchemaNames().toArray(new String[0]);
assertEquals(2, schemaNames.length);
assertEquals("[information_schema, resources]", Arrays.toString(schemaNames));
@@ -111,7 +111,7 @@ public class FixedWidthDataContextTest extends TestCase {
Table table = schema.getTableByName("example_simple1.txt");
assertEquals("Table[name=example_simple1.txt,type=TABLE,remarks=null]", table.toString());
- assertEquals("[A, B]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[A, B]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select(table.getColumns()).toQuery();
DataSet ds = dc.executeQuery(q);
@@ -137,8 +137,8 @@ public class FixedWidthDataContextTest extends TestCase {
public void testVaryingValueLengthsCorrect() throws Exception {
DataContext dc = new FixedWidthDataContext(new File("src/test/resources/example_simple2.txt"),
new FixedWidthConfiguration(new int[] { 1, 8, 7 }));
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[i, greeting, greeter]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[i, greeting, greeter]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(1, table.getColumnByName("i").getColumnSize().intValue());
assertEquals(8, table.getColumnByName("greeting").getColumnSize().intValue());
@@ -174,8 +174,8 @@ public class FixedWidthDataContextTest extends TestCase {
new FixedWidthConfiguration(FixedWidthConfiguration.DEFAULT_COLUMN_NAME_LINE, "UTF8", new int[] { 1, 5,
7 }, false));
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[i, greet, inggree]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[i, greet, inggree]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select(table.getColumns()).toQuery();
DataSet ds = dc.executeQuery(q);
@@ -208,8 +208,8 @@ public class FixedWidthDataContextTest extends TestCase {
new FixedWidthConfiguration(FixedWidthConfiguration.DEFAULT_COLUMN_NAME_LINE, "UTF8", new int[] { 1, 8,
9 }, false));
- Table table = dc.getDefaultSchema().getTables()[0];
- assertEquals("[i, greeting, greeter]", Arrays.toString(table.getColumnNames()));
+ Table table = dc.getDefaultSchema().getTables().get(0);
+ assertEquals("[i, greeting, greeter]", Arrays.toString(table.getColumnNames().toArray()));
Query q = dc.query().from(table).select(table.getColumns()).toQuery();
DataSet ds = dc.executeQuery(q);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
----------------------------------------------------------------------
diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
index e49076e..55e4f41 100644
--- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
+++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
@@ -211,7 +211,7 @@ public class HBaseDataContext extends QueryPostprocessDataContext {
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
final Scan scan = new Scan();
for (Column column : columns) {
if (!column.isPrimaryKey()) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataSet.java
----------------------------------------------------------------------
diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataSet.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataSet.java
index a4158d5..c68e6da 100644
--- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataSet.java
+++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataSet.java
@@ -19,12 +19,15 @@
package org.apache.metamodel.hbase;
import java.io.IOException;
+import java.util.List;
+import java.util.stream.Collectors;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.metamodel.MetaModelException;
import org.apache.metamodel.data.AbstractDataSet;
import org.apache.metamodel.data.Row;
+import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,8 +40,8 @@ final class HBaseDataSet extends AbstractDataSet {
private final org.apache.hadoop.hbase.client.Table _hTable;
private volatile Result _nextResult;
- public HBaseDataSet(Column[] columns, ResultScanner scanner, org.apache.hadoop.hbase.client.Table hTable) {
- super(columns);
+ public HBaseDataSet(List<Column> columns, ResultScanner scanner, org.apache.hadoop.hbase.client.Table hTable) {
+ super(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
_scanner = scanner;
_hTable = hTable;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java
----------------------------------------------------------------------
diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java
index eb0ba48..6187f2c 100644
--- a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java
+++ b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java
@@ -59,7 +59,7 @@ public class HBaseDataContextTest extends HBaseTestCase {
final Table table = _dataContext.getDefaultSchema().getTableByName(EXAMPLE_TABLE_NAME);
assertNotNull(table);
- assertEquals("[_id, bar, foo]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[_id, bar, foo]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(ColumnType.MAP, table.getColumn(1).getType());
// insert two records
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
index d20f369..0612b3e 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcCreateTableBuilder.java
@@ -21,6 +21,7 @@ package org.apache.metamodel.jdbc;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.List;
import org.apache.metamodel.create.AbstractTableCreationBuilder;
import org.apache.metamodel.jdbc.dialects.IQueryRewriter;
@@ -84,9 +85,9 @@ final class JdbcCreateTableBuilder extends AbstractTableCreationBuilder<JdbcUpda
}
sb.append(getUpdateCallback().quoteIfNescesary(table.getName()));
sb.append(" (");
- final Column[] columns = table.getColumns();
- for (int i = 0; i < columns.length; i++) {
- final Column column = columns[i];
+ final List<Column> columns = table.getColumns();
+ for (int i = 0; i < columns.size(); i++) {
+ final Column column = columns.get(i);
if (i != 0) {
sb.append(", ");
}
@@ -114,15 +115,15 @@ final class JdbcCreateTableBuilder extends AbstractTableCreationBuilder<JdbcUpda
}
}
boolean primaryKeyExists = false;
- for (int i = 0; i < columns.length; i++) {
- if (columns[i].isPrimaryKey()) {
+ for (int i = 0; i < columns.size(); i++) {
+ if (columns.get(i).isPrimaryKey()) {
if (!primaryKeyExists) {
sb.append(", PRIMARY KEY(");
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
primaryKeyExists = true;
} else {
sb.append(",");
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
}
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
index 5a9b784..3f4a0ad 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
@@ -643,12 +643,12 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
// databases).
boolean found = false;
String result = null;
- String[] schemaNames = getSchemaNames();
+ List<String> schemaNames = getSchemaNames();
// First strategy: If there's only one schema available, that must
// be it
- if (schemaNames.length == 1) {
- result = schemaNames[0];
+ if (schemaNames.size() == 1) {
+ result = schemaNames.get(0);
found = true;
}
@@ -669,7 +669,7 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
}
}
if (url != null && url.length() > 0) {
- if (schemaNames.length > 0) {
+ if (schemaNames.size() > 0) {
StringTokenizer st = new StringTokenizer(url, "/\\:");
int tokenCount = st.countTokens();
if (tokenCount > 0) {
@@ -678,8 +678,8 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
}
String lastToken = st.nextToken();
- for (int i = 0; i < schemaNames.length && !found; i++) {
- String schemaName = schemaNames[i];
+ for (int i = 0; i < schemaNames.size() && !found; i++) {
+ String schemaName = schemaNames.get(i);
if (lastToken.indexOf(schemaName) != -1) {
result = schemaName;
found = true;
@@ -701,9 +701,9 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
}
}
if (username != null) {
- for (int i = 0; i < schemaNames.length && !found; i++) {
- if (username.equalsIgnoreCase(schemaNames[i])) {
- result = schemaNames[i];
+ for (int i = 0; i < schemaNames.size() && !found; i++) {
+ if (username.equalsIgnoreCase(schemaNames.get(i))) {
+ result = schemaNames.get(i);
found = true;
}
}
@@ -741,7 +741,7 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
return result;
}
- private String findDefaultSchema(final String defaultName, final String[] schemaNames) {
+ private String findDefaultSchema(final String defaultName, final List<String> schemaNames) {
for (String schemaName : schemaNames) {
if (defaultName.equals(schemaName)) {
return schemaName;
@@ -785,14 +785,14 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
}
@Override
- protected String[] getSchemaNamesInternal() {
+ protected List<String> getSchemaNamesInternal() {
Connection connection = getConnection();
try {
DatabaseMetaData metaData = connection.getMetaData();
- Collection<String> result = new ArrayList<>();
+ List<String> result = new ArrayList<>();
if (DATABASE_PRODUCT_SQLSERVER.equals(_databaseProductName)) {
- result = getSchemaSQLServerNames(metaData);
+ result = new ArrayList<>(getSchemaSQLServerNames(metaData));
} else if (_usesCatalogsAsSchemas) {
String[] catalogNames = getCatalogNames();
for (String name : catalogNames) {
@@ -818,7 +818,7 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
logger.info("No schemas or catalogs found. Creating unnamed schema.");
result.add(null);
}
- return result.toArray(new String[result.size()]);
+ return result;
} catch (SQLException e) {
throw JdbcUtils.wrapException(e, "get schema names");
} finally {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
index 837fb18..49e242b 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
@@ -398,9 +398,8 @@ final class JdbcMetadataLoader implements MetadataLoader {
return;
}
try {
- final Table[] tables = schema.getTables();
final DatabaseMetaData metaData = connection.getMetaData();
- for (Table table : tables) {
+ for (Table table : schema.getTables()) {
loadRelations(table, metaData);
}
_loadedRelations.add(identity);
@@ -453,7 +452,7 @@ final class JdbcMetadataLoader implements MetadataLoader {
logger.error("pkColumn={}", pkColumn);
logger.error("fkColumn={}", fkColumn);
} else {
- MutableRelationship.createRelationship(new Column[] { pkColumn }, new Column[] { fkColumn });
+ MutableRelationship.createRelationship(pkColumn, fkColumn);
}
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
index 06aa93c..0dc0381 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
@@ -59,8 +59,7 @@ final class JdbcSchema extends MutableSchema {
}
public Schema toSerializableForm() {
- MutableTable[] tables = getTables();
- for (MutableTable table : tables) {
+ for (MutableTable table : getMutableTables()) {
table.getColumns();
table.getIndexedColumns();
table.getPrimaryKeys();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/main/java/org/apache/metamodel/jdbc/QuerySplitter.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/QuerySplitter.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/QuerySplitter.java
index bbb09c9..07a0db2 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/QuerySplitter.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/QuerySplitter.java
@@ -274,9 +274,7 @@ public final class QuerySplitter {
}
private static void addColumnsToResult(Table table, List<Column> result) {
- Column[] numberColumns = table.getNumberColumns();
- for (int i = 0; i < numberColumns.length; i++) {
- Column column = numberColumns[i];
+ for (Column column: table.getNumberColumns()) {
if (column.isIndexed()) {
// Indexed columns have first priority, they will be
// added to the beginning of the list
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/DerbyTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/DerbyTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/DerbyTest.java
index ff6ef22..eb026d8 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/DerbyTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/DerbyTest.java
@@ -139,7 +139,7 @@ public class DerbyTest extends TestCase {
q.toSql());
DataSet dataSet = dc.executeQuery(q);
- assertEquals("[\"CUSTOMERS\".\"CUSTOMERNUMBER\"]", Arrays.toString(dataSet.getSelectItems()));
+ assertEquals("[\"CUSTOMERS\".\"CUSTOMERNUMBER\"]", Arrays.toString(dataSet.getSelectItems().toArray()));
assertTrue(dataSet.next());
assertEquals("Row[values=[114]]", dataSet.getRow().toString());
assertTrue(dataSet.next());
@@ -152,7 +152,7 @@ public class DerbyTest extends TestCase {
public void testGetSchemaNormalTableTypes() throws Exception {
DataContext dc = new JdbcDataContext(_connection, new TableType[] { TableType.TABLE, TableType.VIEW }, null);
- Schema[] schemas = dc.getSchemas();
+ Schema[] schemas = dc.getSchemas().toArray(new Schema[dc.getSchemas().size()]);
assertEquals(11, schemas.length);
assertEquals("Schema[name=APP]", schemas[0].toString());
@@ -182,7 +182,7 @@ public class DerbyTest extends TestCase {
public void testGetSchemaAllTableTypes() throws Exception {
DataContext dc = new JdbcDataContext(_connection,
new TableType[] { TableType.OTHER, TableType.GLOBAL_TEMPORARY }, null);
- Schema[] schemas = dc.getSchemas();
+ Schema[] schemas = dc.getSchemas().toArray(new Schema[dc.getSchemas().size()]);
assertEquals(11, schemas.length);
assertEquals("Schema[name=APP]", schemas[0].toString());
@@ -194,7 +194,7 @@ public class DerbyTest extends TestCase {
+ "Table[name=ORDERS,type=TABLE,remarks=], " + "Table[name=PAYMENTS,type=TABLE,remarks=], "
+ "Table[name=PRODUCTS,type=TABLE,remarks=], " + "Table[name=QUADRANT_ACTUALS,type=TABLE,remarks=], "
+ "Table[name=TIME,type=TABLE,remarks=], " + "Table[name=TRIAL_BALANCE,type=TABLE,remarks=]]",
- Arrays.toString(schemas[0].getTables()));
+ Arrays.toString(schemas[0].getTables().toArray()));
assertEquals("Schema[name=NULLID]", schemas[1].toString());
assertEquals(0, schemas[1].getTableCount());
assertEquals("Schema[name=SQLJ]", schemas[2].toString());
@@ -210,7 +210,7 @@ public class DerbyTest extends TestCase {
+ "Table[name=SYSSCHEMAS,type=OTHER,remarks=], " + "Table[name=SYSSTATEMENTS,type=OTHER,remarks=], "
+ "Table[name=SYSSTATISTICS,type=OTHER,remarks=], " + "Table[name=SYSTABLEPERMS,type=OTHER,remarks=], "
+ "Table[name=SYSTABLES,type=OTHER,remarks=], " + "Table[name=SYSTRIGGERS,type=OTHER,remarks=], "
- + "Table[name=SYSVIEWS,type=OTHER,remarks=]]", Arrays.toString(schemas[3].getTables()));
+ + "Table[name=SYSVIEWS,type=OTHER,remarks=]]", Arrays.toString(schemas[3].getTables().toArray()));
assertEquals("Schema[name=SYSCAT]", schemas[4].toString());
assertEquals(0, schemas[4].getTableCount());
assertEquals("Schema[name=SYSCS_DIAG]", schemas[5].toString());
@@ -221,7 +221,7 @@ public class DerbyTest extends TestCase {
assertEquals(0, schemas[7].getTableCount());
assertEquals("Schema[name=SYSIBM]", schemas[8].toString());
assertEquals(1, schemas[8].getTableCount());
- assertEquals("[Table[name=SYSDUMMY1,type=OTHER,remarks=]]", Arrays.toString(schemas[8].getTables()));
+ assertEquals("[Table[name=SYSDUMMY1,type=OTHER,remarks=]]", Arrays.toString(schemas[8].getTables().toArray()));
assertEquals("Schema[name=SYSPROC]", schemas[9].toString());
assertEquals(0, schemas[9].getTableCount());
assertEquals("Schema[name=SYSSTAT]", schemas[10].toString());
@@ -241,7 +241,7 @@ public class DerbyTest extends TestCase {
+ "Column[name=COUNTRY,columnNumber=10,type=VARCHAR,nullable=true,nativeType=VARCHAR,columnSize=255], "
+ "Column[name=SALESREPEMPLOYEENUMBER,columnNumber=11,type=INTEGER,nullable=true,nativeType=INTEGER,columnSize=10], "
+ "Column[name=CREDITLIMIT,columnNumber=12,type=BIGINT,nullable=true,nativeType=BIGINT,columnSize=19]]",
- Arrays.toString(schemas[0].getTableByName("CUSTOMERS").getColumns()));
+ Arrays.toString(schemas[0].getTableByName("CUSTOMERS").getColumns().toArray()));
}
public void testQueryRewriterQuoteAliases() throws Exception {
@@ -328,7 +328,7 @@ public class DerbyTest extends TestCase {
assertSame(conn, dc.getConnection());
final Table readTable = dc.getDefaultSchema().getTableByName("test_table");
- assertEquals("[ID, NAME, AGE]", Arrays.toString(readTable.getColumnNames()));
+ assertEquals("[ID, NAME, AGE]", Arrays.toString(readTable.getColumnNames().toArray()));
assertTrue(readTable.getColumnByName("id").isPrimaryKey());
assertFalse(readTable.getColumnByName("age").isPrimaryKey());
assertFalse(readTable.getColumnByName("name").isPrimaryKey());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
index 6e21ae5..e7b5386 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
@@ -143,16 +143,16 @@ public class H2databaseTest extends TestCase {
}
JdbcDataContext dc = new JdbcDataContext(conn);
- assertEquals("[INFORMATION_SCHEMA, PUBLIC]", Arrays.toString(dc.getSchemaNames()));
+ assertEquals("[INFORMATION_SCHEMA, PUBLIC]", Arrays.toString(dc.getSchemaNames().toArray()));
Schema schema = dc.getDefaultSchema();
assertEquals("PUBLIC", schema.getName());
- assertEquals("[TEST_TABLE]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[TEST_TABLE]", Arrays.toString(schema.getTableNames().toArray()));
Table table = schema.getTableByName("test_table");
- assertEquals("[ID, NAME, AGE]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[ID, NAME, AGE]", Arrays.toString(table.getColumnNames().toArray()));
Column idColumn = table.getColumnByName("ID");
assertEquals("Column[name=ID,columnNumber=0,type=INTEGER,nullable=false,nativeType=INTEGER,columnSize=10]",
@@ -283,18 +283,18 @@ public class H2databaseTest extends TestCase {
String sql = createTableBuilder.createSqlStatement();
assertEquals("CREATE TABLE PUBLIC.test_table (id INTEGER, name VARCHAR(255), age INTEGER, PRIMARY KEY(id))", sql);
assertNotNull(writtenTable);
- assertEquals("[ID, NAME, AGE]", Arrays.toString(writtenTable.getColumnNames()));
+ assertEquals("[ID, NAME, AGE]", Arrays.toString(writtenTable.getColumnNames().toArray()));
writtenTableRef.set(writtenTable);
}
});
- assertEquals("[TEST_TABLE]", Arrays.toString(dc.getDefaultSchema().getTableNames()));
+ assertEquals("[TEST_TABLE]", Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
readTable = dc.getDefaultSchema().getTableByName("test_table");
- assertEquals("[ID, NAME, AGE]", Arrays.toString(readTable.getColumnNames()));
+ assertEquals("[ID, NAME, AGE]", Arrays.toString(readTable.getColumnNames().toArray()));
assertEquals("[Column[name=ID,columnNumber=0,type=INTEGER,nullable=false,nativeType=INTEGER,columnSize=10]]",
- Arrays.toString(readTable.getPrimaryKeys()));
+ Arrays.toString(readTable.getPrimaryKeys().toArray()));
assertEquals(writtenTableRef.get(), readTable);
assertFalse(conn.isReadOnly());
@@ -303,7 +303,7 @@ public class H2databaseTest extends TestCase {
assertSame(conn, dc.getConnection());
readTable = dc.getDefaultSchema().getTableByName("test_table");
- assertEquals("[ID, NAME, AGE]", Arrays.toString(readTable.getColumnNames()));
+ assertEquals("[ID, NAME, AGE]", Arrays.toString(readTable.getColumnNames().toArray()));
assertTrue(writtenTableRef.get().getQualifiedLabel().equalsIgnoreCase(readTable.getQualifiedLabel()));
dc.executeUpdate(new UpdateScript() {
@@ -362,7 +362,7 @@ public class H2databaseTest extends TestCase {
assertFalse(ds.next());
ds.close();
- assertEquals("[TEST_TABLE]", Arrays.toString(dc.getDefaultSchema().getTableNames()));
+ assertEquals("[TEST_TABLE]", Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
dc.executeUpdate(new UpdateScript() {
@Override
@@ -371,7 +371,7 @@ public class H2databaseTest extends TestCase {
}
});
- assertEquals("[]", Arrays.toString(dc.getDefaultSchema().getTableNames()));
+ assertEquals("[]", Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
}
public void testSelectItemsThatReferencesDifferentFromItems() throws Exception {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
index 12d5fe2..bf64fdd 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
@@ -100,12 +100,12 @@ public class HsqldbTest extends TestCase {
public void testGetSchemas() throws Exception {
assertNotNull(_connection);
JdbcDataContext dc = new JdbcDataContext(_connection);
- assertEquals("[Schema[name=INFORMATION_SCHEMA], " + "Schema[name=PUBLIC]]", Arrays.toString(dc.getSchemas()));
+ assertEquals("[Schema[name=INFORMATION_SCHEMA], " + "Schema[name=PUBLIC]]", Arrays.toString(dc.getSchemas().toArray()));
Schema defaultSchema = dc.getDefaultSchema();
Schema publicSchema = dc.getSchemaByName("PUBLIC");
assertSame(defaultSchema, publicSchema);
- Table[] tables = publicSchema.getTables();
+ Table[] tables = publicSchema.getTables().toArray(new Table[publicSchema.getTables().size()]);
assertEquals(13, tables.length);
assertEquals("[Table[name=CUSTOMERS,type=TABLE,remarks=null], "
+ "Table[name=CUSTOMER_W_TER,type=TABLE,remarks=null], "
@@ -128,16 +128,16 @@ public class HsqldbTest extends TestCase {
+ "Column[name=OFFICECODE,columnNumber=5,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=20], "
+ "Column[name=REPORTSTO,columnNumber=6,type=INTEGER,nullable=true,nativeType=INTEGER,columnSize=0], "
+ "Column[name=JOBTITLE,columnNumber=7,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50]]",
- Arrays.toString(empTable.getColumns()));
+ Arrays.toString(empTable.getColumns().toArray()));
assertEquals(
"[Column[name=EMPLOYEENUMBER,columnNumber=0,type=INTEGER,nullable=false,nativeType=INTEGER,columnSize=0]]",
- Arrays.toString(empTable.getPrimaryKeys()));
+ Arrays.toString(empTable.getPrimaryKeys().toArray()));
// Only a single relationship registered in the database
assertEquals(
"[Relationship[primaryTable=PRODUCTS,primaryColumns=[PRODUCTCODE],foreignTable=ORDERFACT,foreignColumns=[PRODUCTCODE]]]",
- Arrays.toString(publicSchema.getRelationships()));
+ Arrays.toString(publicSchema.getRelationships().toArray()));
}
public void testExecuteQuery() throws Exception {
@@ -146,8 +146,8 @@ public class HsqldbTest extends TestCase {
Table productsTable = schema.getTableByName("PRODUCTS");
Table factTable = schema.getTableByName("ORDERFACT");
- Query q = new Query().from(new FromItem(JoinType.INNER, productsTable.getRelationships(factTable)[0])).select(
- productsTable.getColumns()[0], factTable.getColumns()[0]);
+ Query q = new Query().from(new FromItem(JoinType.INNER, productsTable.getRelationships(factTable).iterator().next())).select(
+ productsTable.getColumns().get(0), factTable.getColumns().get(0));
assertEquals(
"SELECT \"PRODUCTS\".\"PRODUCTCODE\", \"ORDERFACT\".\"ORDERNUMBER\" FROM PUBLIC.\"PRODUCTS\" INNER JOIN PUBLIC.\"ORDERFACT\" ON \"PRODUCTS\".\"PRODUCTCODE\" = \"ORDERFACT\".\"PRODUCTCODE\"",
q.toString());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
index 17b86fa..c0f1b4e 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDataContextTest.java
@@ -79,7 +79,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
public void testQueryMaxRows0() throws Exception {
final Connection con = getTestDbConnection();
final DataContext dc = new JdbcDataContext(con);
- final Table table = dc.getDefaultSchema().getTables()[0];
+ final Table table = dc.getDefaultSchema().getTables().get(0);
final DataSet dataSet = dc.query().from(table).selectAll().limit(0).execute();
assertTrue(dataSet instanceof EmptyDataSet);
assertFalse(dataSet.next());
@@ -142,7 +142,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
Schema schema = strategy.getSchemaByName(strategy.getDefaultSchemaName());
Query q = new Query();
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
q.from(table, "a");
q.select(table.getColumns());
assertEquals(
@@ -174,7 +174,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
QueryParameter queryParameter = new QueryParameter();
Query q = new Query();
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
q.select(table.getColumns());
q.from(table, "a");
q.where(table.getColumnByName("CUSTOMERNUMBER"), OperatorType.EQUALS_TO, queryParameter);
@@ -232,7 +232,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
.select(FunctionType.TO_DATE, "creditlimit").select("creditlimit").limit(2).execute();
try {
assertEquals("[_CUSTOMERS_._CREDITLIMIT_, TO_DATE(_CUSTOMERS_._CREDITLIMIT_), _CUSTOMERS_._CREDITLIMIT_]",
- Arrays.toString(dataSet.getSelectItems()).replaceAll("\"", "_"));
+ Arrays.toString(dataSet.getSelectItems().toArray()).replaceAll("\"", "_"));
assertTrue(dataSet.next());
final Object value0 = dataSet.getRow().getValue(0);
@@ -282,7 +282,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
QueryParameter queryParameter = new QueryParameter();
Query q = new Query();
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
q.select(new SelectItem("COUNT(*)", null));
q.from(table, "a");
q.where(table.getColumnByName("CREDITLIMIT"), OperatorType.GREATER_THAN_OR_EQUAL, queryParameter);
@@ -338,7 +338,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
QueryParameter queryParameter = new QueryParameter();
Query q = new Query();
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
q.select(new SelectItem("COUNT(*)", null));
q.from(table, "a");
q.where(table.getColumnByName("CREDITLIMIT"), OperatorType.LESS_THAN_OR_EQUAL, queryParameter);
@@ -388,7 +388,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
public void testGetSchemaNormalTableTypes() throws Exception {
Connection connection = getTestDbConnection();
JdbcDataContext dc = new JdbcDataContext(connection, new TableType[] { TableType.TABLE, TableType.VIEW }, null);
- Schema[] schemas = dc.getSchemas();
+ Schema[] schemas = dc.getSchemas().toArray(new Schema[dc.getSchemas().size()]);
assertEquals(2, schemas.length);
assertEquals("Schema[name=INFORMATION_SCHEMA]", schemas[0].toString());
@@ -405,7 +405,6 @@ public class JdbcDataContextTest extends JdbcTestCase {
TableType.GLOBAL_TEMPORARY }, null);
Schema schema = dc.getDefaultSchema();
Table customersTable = schema.getTableByName("CUSTOMERS");
- Column[] columns = customersTable.getColumns();
assertEquals(
"[Column[name=CUSTOMERNUMBER,columnNumber=0,type=INTEGER,nullable=false,nativeType=INTEGER,columnSize=0], "
+ "Column[name=CUSTOMERNAME,columnNumber=1,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50], "
@@ -423,7 +422,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
+ "Column[name=SALESREPEMPLOYEENUMBER,columnNumber=11,type=INTEGER,nullable=true,nativeType=INTEGER,"
+ "columnSize=0], "
+ "Column[name=CREDITLIMIT,columnNumber=12,type=NUMERIC,nullable=true,nativeType=NUMERIC,columnSize=17]]",
- Arrays.toString(columns));
+ Arrays.toString(customersTable.getColumns().toArray()));
connection.close();
}
@@ -432,18 +431,16 @@ public class JdbcDataContextTest extends JdbcTestCase {
JdbcDataContext dc = new JdbcDataContext(connection, new TableType[] { TableType.TABLE }, null);
Schema schema = dc.getDefaultSchema();
Table productsTable = schema.getTableByName("PRODUCTS");
- Relationship[] relations = productsTable.getRelationships();
/**
* TODO: A single constraint now exists, create more ...
*/
assertEquals("[Relationship[primaryTable=PRODUCTS,primaryColumns=[PRODUCTCODE],foreignTable=ORDERFACT,"
- + "foreignColumns=[PRODUCTCODE]]]", Arrays.toString(relations));
+ + "foreignColumns=[PRODUCTCODE]]]", Arrays.toString(productsTable.getRelationships().toArray()));
- Column[] indexedColumns = productsTable.getIndexedColumns();
assertEquals(
"[Column[name=PRODUCTCODE,columnNumber=0,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50]]",
- Arrays.toString(indexedColumns));
+ Arrays.toString(productsTable.getIndexedColumns().toArray()));
connection.close();
}
@@ -494,7 +491,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
Schema schema = dc.getDefaultSchema();
Query q = new Query().setMaxRows(3);
- Table table = schema.getTables()[0];
+ Table table = schema.getTables().get(0);
q.from(table, "a");
q.select(table.getColumns());
assertEquals("SELECT a.\"CUSTOMERNUMBER\", a.\"CUSTOMERNAME\", a.\"CONTACTLASTNAME\", a.\"CONTACTFIRSTNAME\", "
@@ -540,7 +537,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
final DataContext dataContext1 = new JdbcDataContext(connection);
final DataContext dataContext2 = new QueryPostprocessDataContext() {
@Override
- public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ public DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
Query q = new Query();
q.from(table, "a");
q.select(columns);
@@ -578,7 +575,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
+ "Column[name=SALESREPEMPLOYEENUMBER,columnNumber=11,type=INTEGER,nullable=true,nativeType=INTEGER,"
+ "columnSize=0], "
+ "Column[name=CREDITLIMIT,columnNumber=12,type=NUMERIC,nullable=true,nativeType=NUMERIC,columnSize=17]]",
- Arrays.toString(customersTable.getColumns()));
+ Arrays.toString(customersTable.getColumns().toArray()));
assertEquals(
"[Column[name=EMPLOYEENUMBER,columnNumber=0,type=INTEGER,nullable=false,nativeType=INTEGER,columnSize=0], "
+ "Column[name=LASTNAME,columnNumber=1,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50], "
@@ -588,7 +585,7 @@ public class JdbcDataContextTest extends JdbcTestCase {
+ "Column[name=OFFICECODE,columnNumber=5,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=20], "
+ "Column[name=REPORTSTO,columnNumber=6,type=INTEGER,nullable=true,nativeType=INTEGER,columnSize=0], "
+ "Column[name=JOBTITLE,columnNumber=7,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50]]",
- Arrays.toString(employeeTable.getColumns()));
+ Arrays.toString(employeeTable.getColumns().toArray()));
Column employeeNumberColumn1 = customersTable.getColumnByName("SALESREPEMPLOYEENUMBER");
Column countryColumn = customersTable.getColumnByName("COUNTRY");
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDeleteBuilderTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDeleteBuilderTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDeleteBuilderTest.java
index dbade6a..fa1b064 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDeleteBuilderTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcDeleteBuilderTest.java
@@ -50,7 +50,7 @@ public class JdbcDeleteBuilderTest extends JdbcTestCase {
dataContext), true);
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
updateBuilder.where("firstname").isNull().where("lastname").isNotNull();
assertEquals(
@@ -64,7 +64,7 @@ public class JdbcDeleteBuilderTest extends JdbcTestCase {
JdbcUpdateCallback updateCallback = new JdbcSimpleUpdateCallback(dataContext);
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
JdbcDeleteBuilder updateBuilder = new JdbcDeleteBuilder(updateCallback, table, new DefaultQueryRewriter(
dataContext), false);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcInsertBuilderTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcInsertBuilderTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcInsertBuilderTest.java
index 8b56e05..2a29943 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcInsertBuilderTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcInsertBuilderTest.java
@@ -33,7 +33,7 @@ public class JdbcInsertBuilderTest extends JdbcTestCase {
new DefaultQueryRewriter(dataContext));
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
insertBuilder.value("LASTNAME", "foo").value("firstname", "BAR");
assertEquals("INSERT INTO PUBLIC._EMPLOYEES_ (LASTNAME,FIRSTNAME) VALUES ('foo','BAR')", insertBuilder.createSqlStatement()
@@ -53,7 +53,7 @@ public class JdbcInsertBuilderTest extends JdbcTestCase {
new DefaultQueryRewriter(dataContext));
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
insertBuilder.value("LASTNAME", "foo").value("firstname", null);
assertEquals("INSERT INTO PUBLIC._EMPLOYEES_ (LASTNAME,FIRSTNAME) VALUES ('foo',NULL)", insertBuilder.createSqlStatement()
@@ -68,7 +68,7 @@ public class JdbcInsertBuilderTest extends JdbcTestCase {
new DefaultQueryRewriter(dataContext));
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
insertBuilder.value("LASTNAME", "foo").value("firstname", "BAR");
assertEquals("INSERT INTO PUBLIC._EMPLOYEES_ (LASTNAME,FIRSTNAME) VALUES ('foo','BAR')", insertBuilder.createSqlStatement()
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcSchemaTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcSchemaTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcSchemaTest.java
index 020b37d..8654679 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcSchemaTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcSchemaTest.java
@@ -54,7 +54,7 @@ public class JdbcSchemaTest extends JdbcTestCase {
assertEquals(
"[CUSTOMERS, CUSTOMER_W_TER, DEPARTMENT_MANAGERS, DIM_TIME, EMPLOYEES, OFFICES, ORDERDETAILS, ORDERFACT, ORDERS, PAYMENTS, PRODUCTS, QUADRANT_ACTUALS, TRIAL_BALANCE]",
- Arrays.toString(schema.getTableNames()));
+ Arrays.toString(schema.getTableNames().toArray()));
connection.close();
dataContext = null;
@@ -72,14 +72,14 @@ public class JdbcSchemaTest extends JdbcTestCase {
assertEquals(
"[CUSTOMERS, CUSTOMER_W_TER, DEPARTMENT_MANAGERS, DIM_TIME, EMPLOYEES, OFFICES, ORDERDETAILS, ORDERFACT, ORDERS, PAYMENTS, PRODUCTS, QUADRANT_ACTUALS, TRIAL_BALANCE]",
- Arrays.toString(schema.getTableNames()));
+ Arrays.toString(schema.getTableNames().toArray()));
Table table = schema.getTableByName("CUSTOMERS");
assertTrue(table instanceof JdbcTable);
assertNotNull(table);
assertEquals(
"[CUSTOMERNUMBER, CUSTOMERNAME, CONTACTLASTNAME, CONTACTFIRSTNAME, PHONE, ADDRESSLINE1, ADDRESSLINE2, CITY, STATE, POSTALCODE, COUNTRY, SALESREPEMPLOYEENUMBER, CREDITLIMIT]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
}
public void testToSerializableForm() throws Exception {
@@ -92,10 +92,10 @@ public class JdbcSchemaTest extends JdbcTestCase {
Table table = schema.getTableByName("CUSTOMERS");
assertEquals(
"[CUSTOMERNUMBER, CUSTOMERNAME, CONTACTLASTNAME, CONTACTFIRSTNAME, PHONE, ADDRESSLINE1, ADDRESSLINE2, CITY, STATE, POSTALCODE, COUNTRY, SALESREPEMPLOYEENUMBER, CREDITLIMIT]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
assertEquals(
"[Relationship[primaryTable=PRODUCTS,primaryColumns=[PRODUCTCODE],foreignTable=ORDERFACT,foreignColumns=[PRODUCTCODE]]]",
- Arrays.toString(schema.getRelationships()));
+ Arrays.toString(schema.getRelationships().toArray()));
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcTestTemplates.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcTestTemplates.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcTestTemplates.java
index 0f6d82d..aca3780 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcTestTemplates.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcTestTemplates.java
@@ -626,7 +626,7 @@ public class JdbcTestTemplates {
final Table table = defaultSchema.getTableByName(testTableName);
assertNotNull(table);
- Column[] primaryKeys = table.getPrimaryKeys();
+ Column[] primaryKeys = table.getPrimaryKeys().toArray(new Column[table.getPrimaryKeys().size()]);
assertEquals(2, primaryKeys.length);
assertEquals("mykey1", primaryKeys[0].getName().toLowerCase());
assertEquals("mykey2", primaryKeys[1].getName().toLowerCase());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcUpdateBuilderTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcUpdateBuilderTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcUpdateBuilderTest.java
index f44c77b..3c338ff 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcUpdateBuilderTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcUpdateBuilderTest.java
@@ -33,7 +33,7 @@ public class JdbcUpdateBuilderTest extends JdbcTestCase {
dataContext), true);
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
updateBuilder.value("LASTNAME", "foo").value("firstname", "BAR");
assertEquals("UPDATE PUBLIC._EMPLOYEES_ SET LASTNAME='foo',FIRSTNAME='BAR'", updateBuilder.createSqlStatement()
@@ -58,7 +58,7 @@ public class JdbcUpdateBuilderTest extends JdbcTestCase {
dataContext), true);
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
updateBuilder.value("LASTNAME", "foo").value("firstname", null);
assertEquals("UPDATE PUBLIC._EMPLOYEES_ SET LASTNAME='foo',FIRSTNAME=NULL", updateBuilder.createSqlStatement()
@@ -71,7 +71,7 @@ public class JdbcUpdateBuilderTest extends JdbcTestCase {
JdbcUpdateCallback updateCallback = new JdbcSimpleUpdateCallback(dataContext);
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
JdbcUpdateBuilder updateBuilder = new JdbcUpdateBuilder(updateCallback, table, new DefaultQueryRewriter(
dataContext), false);
@@ -89,7 +89,7 @@ public class JdbcUpdateBuilderTest extends JdbcTestCase {
dataContext), true);
assertEquals("[EMPLOYEENUMBER, LASTNAME, FIRSTNAME, EXTENSION, EMAIL, OFFICECODE, REPORTSTO, JOBTITLE]",
- Arrays.toString(table.getColumnNames()));
+ Arrays.toString(table.getColumnNames().toArray()));
updateBuilder.value("LASTNAME", "foo").value("firstname", "BAR");
assertEquals("UPDATE PUBLIC._EMPLOYEES_ SET LASTNAME='foo',FIRSTNAME='BAR'", updateBuilder.createSqlStatement()
[11/20] metamodel git commit: removed unnecessary braces
Posted by ka...@apache.org.
removed unnecessary braces
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/5a9d2d14
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/5a9d2d14
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/5a9d2d14
Branch: refs/heads/master
Commit: 5a9d2d146cd659b7284a65d617d7362b1ce7a5bc
Parents: 44571b9
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Fri Jul 28 14:15:53 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Fri Jul 28 14:15:53 2017 +0200
----------------------------------------------------------------------
core/src/main/java/org/apache/metamodel/convert/Converters.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/5a9d2d14/core/src/main/java/org/apache/metamodel/convert/Converters.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/convert/Converters.java b/core/src/main/java/org/apache/metamodel/convert/Converters.java
index 142987e..97b4e65 100644
--- a/core/src/main/java/org/apache/metamodel/convert/Converters.java
+++ b/core/src/main/java/org/apache/metamodel/convert/Converters.java
@@ -144,9 +144,8 @@ public final class Converters {
// group by table
.collect(Collectors.toMap(Column::getTable,Arrays::asList))
//and detect it
- .forEach((tab, cols) ->{
- autoDetectConvertersInternally(dataContext,tab,cols,sampleSize,result);
- });
+ .forEach((tab, cols) ->
+ autoDetectConvertersInternally(dataContext,tab,cols,sampleSize,result));
return result;
}
[04/20] metamodel git commit: now all compiling
Posted by ka...@apache.org.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
----------------------------------------------------------------------
diff --git a/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java b/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
index d5e093c..97f1a9f 100644
--- a/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
+++ b/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
@@ -65,7 +65,7 @@ public class PojoDataContextTest extends TestCase {
DataSet dataSet = dc.query().from("persons").innerJoin("titles").on("name", "name").selectAll().execute();
assertEquals("[persons.age, persons.name, titles.name, titles.title]",
- Arrays.toString(dataSet.getSelectItems()));
+ Arrays.toString(dataSet.getSelectItems().toArray()));
assertTrue(dataSet.next());
assertEquals("Row[values=[42, Elvis Presley, Elvis Presley, The King]]", dataSet.getRow().toString());
assertFalse(dataSet.next());
@@ -117,7 +117,7 @@ public class PojoDataContextTest extends TestCase {
final Table table = schema.getTable(0);
assertEquals("foo.bar", table.getQualifiedLabel());
- assertEquals("[col1, col2, col3]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[col1, col2, col3]", Arrays.toString(table.getColumnNames().toArray()));
DataSet ds = dc.query().from("bar").select("col2").where("col3").eq(true).execute();
assertTrue(ds.next());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
index 37467b7..8d25bf4 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
@@ -19,10 +19,7 @@
package org.apache.metamodel.salesforce;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.TimeZone;
+import java.util.*;
import com.sforce.ws.ConnectorConfig;
@@ -167,14 +164,14 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
try {
sb.append("SELECT ");
int i = 0;
- final Column[] columns = new Column[selectItems.size()];
+ final List<Column> columns = new ArrayList(selectItems.size());
for (SelectItem selectItem : selectItems) {
validateSoqlSupportedSelectItem(selectItem);
- columns[i] = selectItem.getColumn();
+ columns.set(i,selectItem.getColumn());
if (i != 0) {
sb.append(", ");
}
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
i++;
}
@@ -366,14 +363,14 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
final StringBuilder sb = new StringBuilder();
sb.append("SELECT ");
- for (int i = 0; i < columns.length; i++) {
+ for (int i = 0; i < columns.size(); i++) {
if (i != 0) {
sb.append(',');
}
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
}
sb.append(" FROM ");
sb.append(table.getName());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
index 85f2d9a..55993bc 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
@@ -20,13 +20,16 @@ package org.apache.metamodel.salesforce;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.List;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicInteger;
+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 org.apache.metamodel.schema.ColumnType;
import org.apache.metamodel.util.BooleanComparator;
@@ -48,8 +51,8 @@ final class SalesforceDataSet extends AbstractDataSet {
private SObject[] _records;
private SObject _record;
- public SalesforceDataSet(Column[] columns, QueryResult queryResult, PartnerConnection connection) {
- super(columns);
+ public SalesforceDataSet(List<Column> columns, QueryResult queryResult, PartnerConnection connection) {
+ super(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
_connection = connection;
_queryResult = queryResult;
_records = _queryResult.getRecords();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceSchema.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceSchema.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceSchema.java
index d5f70c9..b11add5 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceSchema.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceSchema.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.salesforce;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
@@ -78,9 +79,8 @@ final class SalesforceSchema extends AbstractSchema {
}
@Override
- public Table[] getTables() {
- List<Table> tables = _tableRef.get();
- return tables.toArray(new Table[tables.size()]);
+ public List<Table> getTables() {
+ return Collections.unmodifiableList(_tableRef.get());
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceTable.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceTable.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceTable.java
index 5db2b47..9648bb9 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceTable.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceTable.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.salesforce;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
@@ -135,12 +136,12 @@ final class SalesforceTable extends AbstractTable {
}
@Override
- public Column[] getColumns() {
+ public List<Column> getColumns() {
if (_columnRef == null) {
- return new Column[0];
+ return new ArrayList<>();
}
List<Column> columns = _columnRef.get();
- return columns.toArray(new Column[columns.size()]);
+ return Collections.unmodifiableList(columns);
}
@Override
@@ -154,8 +155,8 @@ final class SalesforceTable extends AbstractTable {
}
@Override
- public Relationship[] getRelationships() {
- return new Relationship[0];
+ public List<Relationship> getRelationships() {
+ return new ArrayList<>();
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataContextTest.java
----------------------------------------------------------------------
diff --git a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataContextTest.java b/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataContextTest.java
index 7cb6fb6..64f4eac 100644
--- a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataContextTest.java
+++ b/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataContextTest.java
@@ -51,7 +51,7 @@ public class SalesforceDataContextTest extends SalesforceTestCase {
}
SalesforceDataContext dc = getSalesforceDataContext();
- Column[] timeColumns = dc.getDefaultSchema().getTableByName("Contact").getTimeBasedColumns();
+ List<Column> timeColumns = dc.getDefaultSchema().getTableByName("Contact").getTimeBasedColumns();
assertEquals(
"[Column[name=Birthdate,columnNumber=30,type=DATE,nullable=true,nativeType=date,columnSize=0], "
+ "Column[name=CreatedDate,columnNumber=33,type=TIMESTAMP,nullable=false,nativeType=datetime,columnSize=0], "
@@ -61,7 +61,7 @@ public class SalesforceDataContextTest extends SalesforceTestCase {
+ "Column[name=LastCURequestDate,columnNumber=39,type=TIMESTAMP,nullable=true,nativeType=datetime,columnSize=0], "
+ "Column[name=LastCUUpdateDate,columnNumber=40,type=TIMESTAMP,nullable=true,nativeType=datetime,columnSize=0], "
+ "Column[name=EmailBouncedDate,columnNumber=42,type=TIMESTAMP,nullable=true,nativeType=datetime,columnSize=0]]",
- Arrays.toString(timeColumns));
+ Arrays.toString(timeColumns.toArray()));
DataSet ds = dc.query().from("Contact").select("LastModifiedDate").where("Id").eq("003b0000006xfAUAAY")
.execute();
if (ds.next()) {
@@ -121,15 +121,15 @@ public class SalesforceDataContextTest extends SalesforceTestCase {
assertEquals("Salesforce", schema.getName());
- String[] tableNames = schema.getTableNames();
+ List<String> tableNames = schema.getTableNames();
- System.out.println("All tables:\n" + Arrays.toString(tableNames));
+ System.out.println("All tables:\n" + Arrays.toString(tableNames.toArray()));
Table accountTable = schema.getTableByName("Account");
assertNotNull(accountTable);
- String[] columnNames = accountTable.getColumnNames();
- System.out.println("Account table columns: " + Arrays.toString(columnNames));
+ List<String> columnNames = accountTable.getColumnNames();
+ System.out.println("Account table columns: " + Arrays.toString(columnNames.toArray()));
Column idColumn = accountTable.getColumnByName("Id");
Column nameColumn = accountTable.getColumnByName("Name");
@@ -165,7 +165,7 @@ public class SalesforceDataContextTest extends SalesforceTestCase {
q.setMaxRows(1);
final DataSet ds = dc.executeQuery(q);
- final SelectItem[] selectItems = ds.getSelectItems();
+ final List<SelectItem> selectItems = ds.getSelectItems();
while (ds.next()) {
Row row = ds.getRow();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
----------------------------------------------------------------------
diff --git a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java b/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
index 838e386..a16cf13 100644
--- a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
+++ b/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
@@ -18,18 +18,21 @@
*/
package org.apache.metamodel.salesforce;
+import com.google.common.collect.Lists;
import com.sforce.soap.partner.QueryResult;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.bind.TypeMapper;
import com.sforce.ws.parser.PullParserException;
import com.sforce.ws.parser.XmlInputStream;
import org.apache.metamodel.data.Row;
+import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.ColumnType;
import org.apache.metamodel.schema.MutableColumn;
import org.junit.Test;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -41,7 +44,7 @@ public class SalesforceDataSetTest {
QueryResult qr = queryResult("/result/double-value.xml");
MutableColumn version = new MutableColumn("Version", ColumnType.DOUBLE);
- SalesforceDataSet dataSet = new SalesforceDataSet(new Column[] { version }, qr, null);
+ SalesforceDataSet dataSet = new SalesforceDataSet(Lists.newArrayList(version), qr, null);
List<Row> rows = dataSet.toRows();
assertEquals(5386.21, rows.get(0).getValue(version));
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/spring/src/test/java/org/apache/metamodel/spring/CsvDefaultConfigurationFromResourceTest.java
----------------------------------------------------------------------
diff --git a/spring/src/test/java/org/apache/metamodel/spring/CsvDefaultConfigurationFromResourceTest.java b/spring/src/test/java/org/apache/metamodel/spring/CsvDefaultConfigurationFromResourceTest.java
index 87ffef0..c43bf9d 100644
--- a/spring/src/test/java/org/apache/metamodel/spring/CsvDefaultConfigurationFromResourceTest.java
+++ b/spring/src/test/java/org/apache/metamodel/spring/CsvDefaultConfigurationFromResourceTest.java
@@ -53,6 +53,6 @@ public class CsvDefaultConfigurationFromResourceTest {
assertEquals("example.csv", resource.getName());
- assertEquals("[foo, bar]", Arrays.toString(csv.getDefaultSchema().getTable(0).getColumnNames()));
+ assertEquals("[foo, bar]", Arrays.toString(csv.getDefaultSchema().getTable(0).getColumnNames().toArray()));
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/spring/src/test/java/org/apache/metamodel/spring/CsvSpecifiedConfigurationFromFilenameTest.java
----------------------------------------------------------------------
diff --git a/spring/src/test/java/org/apache/metamodel/spring/CsvSpecifiedConfigurationFromFilenameTest.java b/spring/src/test/java/org/apache/metamodel/spring/CsvSpecifiedConfigurationFromFilenameTest.java
index 01b6120..ec97106 100644
--- a/spring/src/test/java/org/apache/metamodel/spring/CsvSpecifiedConfigurationFromFilenameTest.java
+++ b/spring/src/test/java/org/apache/metamodel/spring/CsvSpecifiedConfigurationFromFilenameTest.java
@@ -51,7 +51,7 @@ public class CsvSpecifiedConfigurationFromFilenameTest {
assertEquals("example.csv", resource.getName());
- assertEquals("[\"foo\", bar]", Arrays.toString(csv.getDefaultSchema().getTable(0).getColumnNames()));
+ assertEquals("[\"foo\", bar]", Arrays.toString(csv.getDefaultSchema().getTable(0).getColumnNames().toArray()));
Assert.assertFalse(csv.getConfiguration().isMultilineValues());
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/spring/src/test/java/org/apache/metamodel/spring/ExcelSpecifiedConfigurationFromFilenameTest.java
----------------------------------------------------------------------
diff --git a/spring/src/test/java/org/apache/metamodel/spring/ExcelSpecifiedConfigurationFromFilenameTest.java b/spring/src/test/java/org/apache/metamodel/spring/ExcelSpecifiedConfigurationFromFilenameTest.java
index 58a9317..a4589fc 100644
--- a/spring/src/test/java/org/apache/metamodel/spring/ExcelSpecifiedConfigurationFromFilenameTest.java
+++ b/spring/src/test/java/org/apache/metamodel/spring/ExcelSpecifiedConfigurationFromFilenameTest.java
@@ -51,7 +51,7 @@ public class ExcelSpecifiedConfigurationFromFilenameTest {
assertEquals("example.xlsx", resource.getName());
- assertEquals("[hello, world]", Arrays.toString(excel.getDefaultSchema().getTable(0).getColumnNames()));
+ assertEquals("[hello, world]", Arrays.toString(excel.getDefaultSchema().getTable(0).getColumnNames().toArray()));
Assert.assertTrue(excel.getConfiguration().isSkipEmptyLines());
Assert.assertTrue(excel.getConfiguration().isSkipEmptyColumns());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/spring/src/test/java/org/apache/metamodel/spring/PojoDataContextFactoryBeanDelegateTest.java
----------------------------------------------------------------------
diff --git a/spring/src/test/java/org/apache/metamodel/spring/PojoDataContextFactoryBeanDelegateTest.java b/spring/src/test/java/org/apache/metamodel/spring/PojoDataContextFactoryBeanDelegateTest.java
index 558cda4..471dc96 100644
--- a/spring/src/test/java/org/apache/metamodel/spring/PojoDataContextFactoryBeanDelegateTest.java
+++ b/spring/src/test/java/org/apache/metamodel/spring/PojoDataContextFactoryBeanDelegateTest.java
@@ -39,15 +39,15 @@ public class PojoDataContextFactoryBeanDelegateTest extends TestCase {
Schema schema = dataContext.getDefaultSchema();
assertEquals("my db", schema.getName());
- assertEquals("[foo, hello world]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[foo, hello world]", Arrays.toString(schema.getTableNames().toArray()));
assertEquals(
"[Column[name=greeting,columnNumber=0,type=VARCHAR,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=who,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(schema.getTableByName("hello world").getColumns()));
+ Arrays.toString(schema.getTableByName("hello world").getColumns().toArray()));
assertEquals("[Column[name=bar,columnNumber=0,type=INTEGER,nullable=true,nativeType=null,columnSize=null], "
+ "Column[name=baz,columnNumber=1,type=DATE,nullable=true,nativeType=null,columnSize=null]]",
- Arrays.toString(schema.getTableByName("foo").getColumns()));
+ Arrays.toString(schema.getTableByName("foo").getColumns().toArray()));
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
index e3908c0..9abe5da 100644
--- a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
+++ b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
@@ -38,7 +38,7 @@ import org.apache.metamodel.util.LazyRef;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.sugarcrm.ws.soapyxyx.EntryValue;
+import com.sugarcrm.ws.soap.EntryValue;
import com.sugarcrm.ws.soap.GetEntriesCountResult;
import com.sugarcrm.ws.soap.GetEntryListResultVersion2;
import com.sugarcrm.ws.soap.LinkNamesToFieldsArray;
@@ -147,7 +147,7 @@ public class SugarCrmDataContext extends QueryPostprocessDataContext implements
}
@Override
- protected DataSet materializeMainSchemaTable(final Table table, final Column[] columns, final int maxRows) {
+ protected DataSet materializeMainSchemaTable(final Table table, final List<Column> columns, final int maxRows) {
final String session = _sessionId.get();
final String moduleName = table.getName();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataSet.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataSet.java b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataSet.java
index a754ce6..7558c6d 100644
--- a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataSet.java
+++ b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataSet.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
import org.apache.metamodel.data.AbstractDataSet;
import org.apache.metamodel.data.DataSetHeader;
@@ -54,9 +55,9 @@ final class SugarCrmDataSet extends AbstractDataSet {
private List<Object> _records;
private Node _record;
- public SugarCrmDataSet(Column[] columns, SugarsoapPortType service, String session,
+ public SugarCrmDataSet(List<Column> columns, SugarsoapPortType service, String session,
GetEntryListResultVersion2 entryList) {
- super(columns);
+ super(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
_recordIndex = new AtomicInteger();
_service = service;
_session = session;
@@ -80,12 +81,9 @@ final class SugarCrmDataSet extends AbstractDataSet {
}
final DataSetHeader header = getHeader();
- final SelectItem[] selectItems = header.getSelectItems();
- final Column[] columns = new Column[selectItems.length];
- for (int i = 0; i < columns.length; i++) {
- columns[i] = selectItems[i].getColumn();
- }
- final String moduleName = selectItems[0].getColumn().getTable().getName();
+ final List<SelectItem> selectItems = header.getSelectItems();
+ final List<Column> columns = selectItems.stream().map(si -> si.getColumn()).collect(Collectors.toList());
+ final String moduleName = selectItems.get(0).getColumn().getTable().getName();
final SelectFields selectFields = SugarCrmXmlHelper.createSelectFields(columns);
_entryList = _service.getEntryList(_session, moduleName, "", "", nextOffset, selectFields,
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmSchema.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmSchema.java b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmSchema.java
index 49e24e7..1db4090 100644
--- a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmSchema.java
+++ b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmSchema.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.sugarcrm;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
@@ -58,8 +59,8 @@ final class SugarCrmSchema extends AbstractSchema {
}
@Override
- public Table[] getTables() {
- return _tables.toArray(new Table[_tables.size()]);
+ public List<Table> getTables() {
+ return Collections.unmodifiableList(_tables);
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmTable.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmTable.java b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmTable.java
index 1926d83..7ef82bf 100644
--- a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmTable.java
+++ b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmTable.java
@@ -18,10 +18,7 @@
*/
package org.apache.metamodel.sugarcrm;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.function.Supplier;
import org.apache.metamodel.schema.AbstractTable;
@@ -119,9 +116,9 @@ final class SugarCrmTable extends AbstractTable {
}
@Override
- public Column[] getColumns() {
+ public List<Column> getColumns() {
final List<Column> columns = _columnsRef.get();
- return columns.toArray(new Column[columns.size()]);
+ return Collections.unmodifiableList(columns);
}
@Override
@@ -135,8 +132,8 @@ final class SugarCrmTable extends AbstractTable {
}
@Override
- public Relationship[] getRelationships() {
- return new Relationship[0];
+ public List<Relationship> getRelationships() {
+ return new ArrayList<>();
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmXmlHelper.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmXmlHelper.java b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmXmlHelper.java
index a49b934..394cd6d 100644
--- a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmXmlHelper.java
+++ b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmXmlHelper.java
@@ -39,7 +39,7 @@ import com.sugarcrm.ws.soap.SelectFields;
*/
final class SugarCrmXmlHelper {
- public static SelectFields createSelectFields(Column ... columns) {
+ public static SelectFields createSelectFields(List<Column> columns) {
final SelectFields selectFields = new SelectFields();
selectFields.setArrayType("xsd:string[]");
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/sugarcrm/src/test/java/org/apache/metamodel/sugarcrm/SugarCrmDataContextTest.java
----------------------------------------------------------------------
diff --git a/sugarcrm/src/test/java/org/apache/metamodel/sugarcrm/SugarCrmDataContextTest.java b/sugarcrm/src/test/java/org/apache/metamodel/sugarcrm/SugarCrmDataContextTest.java
index d9cf1e8..4fa4a7c 100644
--- a/sugarcrm/src/test/java/org/apache/metamodel/sugarcrm/SugarCrmDataContextTest.java
+++ b/sugarcrm/src/test/java/org/apache/metamodel/sugarcrm/SugarCrmDataContextTest.java
@@ -20,6 +20,7 @@ package org.apache.metamodel.sugarcrm;
import java.util.Arrays;
import java.util.Date;
+import java.util.List;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.InMemoryDataSet;
@@ -107,12 +108,12 @@ public class SugarCrmDataContextTest extends SugarCrmTestCase {
final Schema schema = dataContext.getDefaultSchema();
final Table table = schema.getTableByName("Prospects");
- final Column[] numberColumns = table.getNumberColumns();
- final Column[] booleanColumns = table.getBooleanColumns();
- final Column[] timeBasedColumns = table.getTimeBasedColumns();
- assertTrue(numberColumns.length > 0);
- assertTrue(booleanColumns.length > 0);
- assertTrue(timeBasedColumns.length > 0);
+ final List<Column> numberColumns = table.getNumberColumns();
+ final List<Column> booleanColumns = table.getBooleanColumns();
+ final List<Column> timeBasedColumns = table.getTimeBasedColumns();
+ assertTrue(numberColumns.size() > 0);
+ assertTrue(booleanColumns.size() > 0);
+ assertTrue(timeBasedColumns.size() > 0);
DataSet ds = dataContext.query().from(table).selectAll().limit(5).execute();
int rowCounter = 0;
@@ -146,9 +147,9 @@ public class SugarCrmDataContextTest extends SugarCrmTestCase {
}
ds.close();
assertTrue(rowCounter > 0);
- assertTrue("No non-null values found in: " + Arrays.toString(numberColumns), numberCounter > 0);
- assertTrue("No non-null values found in: " + Arrays.toString(booleanColumns), booleanCounter > 0);
- assertTrue("No non-null values found in: " + Arrays.toString(timeBasedColumns), timeBasedCounter > 0);
+ assertTrue("No non-null values found in: " + Arrays.toString(numberColumns.toArray()), numberCounter > 0);
+ assertTrue("No non-null values found in: " + Arrays.toString(booleanColumns.toArray()), booleanCounter > 0);
+ assertTrue("No non-null values found in: " + Arrays.toString(timeBasedColumns.toArray()), timeBasedCounter > 0);
}
public void testMaxRowsQuery() throws Exception {
@@ -189,7 +190,7 @@ public class SugarCrmDataContextTest extends SugarCrmTestCase {
Table table = schema.getTableByName("Accounts");
- String[] columnNames = table.getColumnNames();
+ List<String> columnNames = table.getColumnNames();
assertEquals(
"[id, name, date_entered, date_modified, modified_user_id, modified_by_name, created_by, created_by_name, "
+ "description, deleted, assigned_user_id, assigned_user_name, account_type, industry, annual_revenue, phone_fax, "
@@ -199,7 +200,7 @@ public class SugarCrmDataContextTest extends SugarCrmTestCase {
+ "shipping_address_street_2, shipping_address_street_3, shipping_address_street_4, shipping_address_city, "
+ "shipping_address_state, shipping_address_postalcode, shipping_address_country, email1, parent_id, sic_code, parent_name, "
+ "email_opt_out, invalid_email, email, campaign_id, campaign_name]",
- Arrays.toString(columnNames));
+ Arrays.toString(columnNames.toArray()));
Column nameColumn = table.getColumnByName("name");
String nativeType = nameColumn.getNativeType();
@@ -207,8 +208,7 @@ public class SugarCrmDataContextTest extends SugarCrmTestCase {
ColumnType type = nameColumn.getType();
assertEquals("name|Name:|VARCHAR", nativeType + "|" + remarks + "|" + type);
- Column[] columns = table.getColumns();
- for (Column column : columns) {
+ for (Column column : table.getColumns()) {
type = column.getType();
if (type == null || type == ColumnType.OTHER) {
fail("No type mapping for native type: " + column.getNativeType() + " (found in column: " + column
@@ -228,10 +228,9 @@ public class SugarCrmDataContextTest extends SugarCrmTestCase {
+ "alt_address_postalcode, alt_address_country, assistant, assistant_phone, email_and_name1, lead_source, account_name, account_id, "
+ "opportunity_role_fields, opportunity_role_id, opportunity_role, reports_to_id, report_to_name, birthdate, campaign_id, campaign_name, "
+ "c_accept_status_fields, m_accept_status_fields, accept_status_id, accept_status_name, sync_contact]",
- Arrays.toString(columnNames));
+ Arrays.toString(columnNames.toArray()));
- columns = table.getColumns();
- for (Column column : columns) {
+ for (Column column : table.getColumns()) {
type = column.getType();
if (type == null || type == ColumnType.OTHER) {
fail("No type mapping for native type: " + column.getNativeType() + " (found in column: " + column
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
index 0d0bebb..3c4d0cd 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
@@ -511,8 +511,8 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
.map(ftRel -> ftRel.getForeignTable().getName()).collect(Collectors.joining(", ")));
}
- List<Column> primaryColumns = primaryTable.getColumns();
- List<Column> foreignColumns = foreignTable.getColumns();
+ List<Column> primaryColumns = new ArrayList<>(primaryTable.getColumns());
+ List<Column> foreignColumns = new ArrayList<>(foreignTable.getColumns());
// Remove the surrogate id
String primaryTableName = primaryTable.getName();
[05/20] metamodel git commit: now all compiling
Posted by ka...@apache.org.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/QuerySplitterTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/QuerySplitterTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/QuerySplitterTest.java
index 8e4842c..a67dc63 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/QuerySplitterTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/QuerySplitterTest.java
@@ -43,7 +43,7 @@ public class QuerySplitterTest extends JdbcTestCase {
Table customersTable = schema.getTableByName("CUSTOMERS");
Query q = new Query().from(employeesTable, "e").from(customersTable,
"c");
- q.select(employeesTable.getColumns()[0], customersTable.getColumns()[0]);
+ q.select(employeesTable.getColumns().get(0), customersTable.getColumns().get(0));
assertEquals(
"SELECT e._EMPLOYEENUMBER_, c._CUSTOMERNUMBER_ FROM PUBLIC._EMPLOYEES_ e, PUBLIC._CUSTOMERS_ c",
q.toString().replace('\"', '_'));
@@ -83,10 +83,10 @@ public class QuerySplitterTest extends JdbcTestCase {
Table orderDetailsTable = schema.getTableByName("ORDERDETAILS");
Query q = new Query().from(employeesTable, "e").from(orderDetailsTable,
"c");
- q.select(orderDetailsTable.getColumns()[0])
+ q.select(orderDetailsTable.getColumns().get(0))
.select(new SelectItem(FunctionType.MAX, employeesTable
- .getColumns()[0]));
- q.groupBy(orderDetailsTable.getColumns()[0]);
+ .getColumns().get(0)));
+ q.groupBy(orderDetailsTable.getColumns().get(0));
assertEquals(
"SELECT c._ORDERNUMBER_, MAX(e._EMPLOYEENUMBER_) FROM PUBLIC._EMPLOYEES_ e, PUBLIC._ORDERDETAILS_ c GROUP BY c._ORDERNUMBER_",
q.toString().replace('\"', '_'));
@@ -121,8 +121,7 @@ public class QuerySplitterTest extends JdbcTestCase {
DataContext dc = new JdbcDataContext(con);
Schema schema = dc.getDefaultSchema();
Table productsTable = schema.getTableByName("PRODUCTS");
- Relationship[] relationships = productsTable.getRelationships();
- Relationship relationship = relationships[0];
+ Relationship relationship = productsTable.getRelationships().iterator().next();
assertEquals(
"Relationship[primaryTable=PRODUCTS,primaryColumns=[PRODUCTCODE],foreignTable=ORDERFACT,foreignColumns=[PRODUCTCODE]]",
relationship.toString());
@@ -153,9 +152,9 @@ public class QuerySplitterTest extends JdbcTestCase {
Query sq = new Query().from(employeesTable, "e").from(customersTable,
"c");
SelectItem empSelectItem = new SelectItem(
- employeesTable.getColumns()[0]);
+ employeesTable.getColumns().get(0));
SelectItem custSelectItem = new SelectItem(
- customersTable.getColumns()[0]);
+ customersTable.getColumns().get(0));
sq.select(empSelectItem, custSelectItem);
assertEquals(
"SELECT e._EMPLOYEENUMBER_, c._CUSTOMERNUMBER_ FROM PUBLIC._EMPLOYEES_ e, PUBLIC._CUSTOMERS_ c",
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/SqliteTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/SqliteTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/SqliteTest.java
index 3a8d1a4..6e4b417 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/SqliteTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/SqliteTest.java
@@ -97,14 +97,13 @@ public class SqliteTest extends TestCase {
public void testGetSchemas() throws Exception {
DataContext dc = new JdbcDataContext(_connection);
- String[] schemaNames = dc.getSchemaNames();
+ String[] schemaNames = dc.getSchemaNames().toArray(new String[dc.getSchemaNames().size()]);
assertEquals("[null]", Arrays.toString(schemaNames));
Schema schema = dc.getDefaultSchema();
assertNotNull(schema);
assertNull(schema.getName());
- Table[] tables = schema.getTables();
assertEquals("[Table[name=system,type=TABLE,remarks=null], "
+ "Table[name=permission,type=TABLE,remarks=null], "
+ "Table[name=auth_cookie,type=TABLE,remarks=null], " + "Table[name=session,type=TABLE,remarks=null], "
@@ -115,11 +114,11 @@ public class SqliteTest extends TestCase {
+ "Table[name=ticket_custom,type=TABLE,remarks=null], " + "Table[name=enum,type=TABLE,remarks=null], "
+ "Table[name=component,type=TABLE,remarks=null], " + "Table[name=milestone,type=TABLE,remarks=null], "
+ "Table[name=version,type=TABLE,remarks=null], " + "Table[name=report,type=TABLE,remarks=null]]",
- Arrays.toString(tables));
+ Arrays.toString(schema.getTables().toArray()));
// Index- and key-info is not yet implemented in the JDBC driver
- assertEquals("[]", Arrays.toString(schema.getRelationships()));
+ assertEquals("[]", Arrays.toString(schema.getRelationships().toArray()));
Table wikiTable = schema.getTableByName("WIKI");
assertEquals(
@@ -131,13 +130,13 @@ public class SqliteTest extends TestCase {
+ "Column[name=text,columnNumber=5,type=VARCHAR,nullable=true,nativeType=TEXT,columnSize=2000000000], "
+ "Column[name=comment,columnNumber=6,type=VARCHAR,nullable=true,nativeType=TEXT,columnSize=2000000000], "
+ "Column[name=readonly,columnNumber=7,type=INTEGER,nullable=true,nativeType=INTEGER,columnSize=2000000000]]",
- Arrays.toString(wikiTable.getColumns()));
+ Arrays.toString(wikiTable.getColumns().toArray()));
Table permissionTable = schema.getTableByName("PERMISSION");
assertEquals(
"[Column[name=username,columnNumber=0,type=VARCHAR,nullable=true,nativeType=TEXT,columnSize=2000000000], "
+ "Column[name=action,columnNumber=1,type=VARCHAR,nullable=true,nativeType=TEXT,columnSize=2000000000]]",
- Arrays.toString(permissionTable.getColumns()));
+ Arrays.toString(permissionTable.getColumns().toArray()));
}
public void testExecuteQuery() throws Exception {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/DB2Test.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/DB2Test.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/DB2Test.java
index aef6f51..f4a7df7 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/DB2Test.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/DB2Test.java
@@ -85,8 +85,7 @@ public class DB2Test extends AbstractJdbIntegrationTest {
}
JdbcDataContext dc = new JdbcDataContext(getConnection());
Schema schema = dc.getDefaultSchema();
- String[] tableNames = schema.getTableNames();
- System.out.println("Tables: " + Arrays.toString(tableNames));
+ System.out.println("Tables: " + Arrays.toString(schema.getTableNames().toArray()));
Table countryTable = schema.getTableByName("COUNTRY");
assertNotNull(countryTable);
@@ -110,8 +109,7 @@ public class DB2Test extends AbstractJdbIntegrationTest {
}
JdbcDataContext dc = new JdbcDataContext(getConnection());
Schema schema = dc.getDefaultSchema();
- String[] tableNames = schema.getTableNames();
- System.out.println("Tables: " + Arrays.toString(tableNames));
+ System.out.println("Tables: " + Arrays.toString(schema.getTableNames().toArray()));
Table countryTable = schema.getTableByName("COUNTRY");
assertNotNull(countryTable);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
index f883e83..9857ea5 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/FirebirdTest.java
@@ -21,9 +21,13 @@ package org.apache.metamodel.jdbc.integrationtests;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
+import java.util.Set;
+import java.util.stream.Collectors;
+import javax.management.relation.Relation;
import javax.swing.table.TableModel;
+import com.google.common.collect.Sets;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetTableModel;
import org.apache.metamodel.jdbc.JdbcDataContext;
@@ -56,7 +60,7 @@ public class FirebirdTest extends AbstractJdbIntegrationTest {
return;
}
JdbcDataContext dataContext = getDataContext();
- Schema[] schemas = dataContext.getSchemas();
+ Schema[] schemas = dataContext.getSchemas().toArray(new Schema[dataContext.getSchemas().size()]);
assertEquals(1, schemas.length);
Schema schema = dataContext.getDefaultSchema();
assertEquals("{JdbcTable[name=COUNTRY,type=TABLE,remarks=<null>],"
@@ -69,26 +73,28 @@ public class FirebirdTest extends AbstractJdbIntegrationTest {
+ "JdbcTable[name=PROJECT,type=TABLE,remarks=<null>],"
+ "JdbcTable[name=PROJ_DEPT_BUDGET,type=TABLE,remarks=<null>],"
+ "JdbcTable[name=SALARY_HISTORY,type=TABLE,remarks=<null>],"
- + "JdbcTable[name=SALES,type=TABLE,remarks=<null>]}", Arrays.toString(schema.getTables()));
-
- assertEquals(
- "{Relationship[primaryTable=COUNTRY,primaryColumns={COUNTRY},foreignTable=CUSTOMER,foreignColumns={COUNTRY}],"
- + "Relationship[primaryTable=COUNTRY,primaryColumns={COUNTRY},foreignTable=JOB,foreignColumns={JOB_COUNTRY}],"
- + "Relationship[primaryTable=CUSTOMER,primaryColumns={CUST_NO},foreignTable=SALES,foreignColumns={CUST_NO}],"
- + "Relationship[primaryTable=DEPARTMENT,primaryColumns={DEPT_NO},foreignTable=DEPARTMENT,foreignColumns={HEAD_DEPT}],"
- + "Relationship[primaryTable=DEPARTMENT,primaryColumns={DEPT_NO},foreignTable=EMPLOYEE,foreignColumns={DEPT_NO}],"
- + "Relationship[primaryTable=DEPARTMENT,primaryColumns={DEPT_NO},foreignTable=PROJ_DEPT_BUDGET,foreignColumns={DEPT_NO}],"
- + "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=DEPARTMENT,foreignColumns={MNGR_NO}],"
- + "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=EMPLOYEE_PROJECT,foreignColumns={EMP_NO}],"
- + "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=PROJECT,foreignColumns={TEAM_LEADER}],"
- + "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=SALARY_HISTORY,foreignColumns={EMP_NO}],"
- + "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=SALES,foreignColumns={SALES_REP}],"
- + "Relationship[primaryTable=JOB,primaryColumns={JOB_CODE},foreignTable=EMPLOYEE,foreignColumns={JOB_CODE}],"
- + "Relationship[primaryTable=JOB,primaryColumns={JOB_GRADE},foreignTable=EMPLOYEE,foreignColumns={JOB_GRADE}],"
- + "Relationship[primaryTable=JOB,primaryColumns={JOB_COUNTRY},foreignTable=EMPLOYEE,foreignColumns={JOB_COUNTRY}],"
- + "Relationship[primaryTable=PROJECT,primaryColumns={PROJ_ID},foreignTable=EMPLOYEE_PROJECT,foreignColumns={PROJ_ID}],"
- + "Relationship[primaryTable=PROJECT,primaryColumns={PROJ_ID},foreignTable=PROJ_DEPT_BUDGET,foreignColumns={PROJ_ID}]}",
- Arrays.toString(schema.getRelationships()));
+ + "JdbcTable[name=SALES,type=TABLE,remarks=<null>]}", Arrays.toString(schema.getTables().toArray()));
+
+ Set<String> relationStrings = schema.getRelationships().stream().map(rel -> rel.toString()).collect(Collectors.toSet());
+ Set<String> referenceRelationStrings = Sets.newHashSet(
+ "Relationship[primaryTable=COUNTRY,primaryColumns={COUNTRY},foreignTable=CUSTOMER,foreignColumns={COUNTRY}]",
+ "Relationship[primaryTable=COUNTRY,primaryColumns={COUNTRY},foreignTable=JOB,foreignColumns={JOB_COUNTRY}]",
+ "Relationship[primaryTable=CUSTOMER,primaryColumns={CUST_NO},foreignTable=SALES,foreignColumns={CUST_NO}]",
+ "Relationship[primaryTable=DEPARTMENT,primaryColumns={DEPT_NO},foreignTable=DEPARTMENT,foreignColumns={HEAD_DEPT}]",
+ "Relationship[primaryTable=DEPARTMENT,primaryColumns={DEPT_NO},foreignTable=EMPLOYEE,foreignColumns={DEPT_NO}]",
+ "Relationship[primaryTable=DEPARTMENT,primaryColumns={DEPT_NO},foreignTable=PROJ_DEPT_BUDGET,foreignColumns={DEPT_NO}]",
+ "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=DEPARTMENT,foreignColumns={MNGR_NO}]",
+ "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=EMPLOYEE_PROJECT,foreignColumns={EMP_NO}]",
+ "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=PROJECT,foreignColumns={TEAM_LEADER}]",
+ "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=SALARY_HISTORY,foreignColumns={EMP_NO}]",
+ "Relationship[primaryTable=EMPLOYEE,primaryColumns={EMP_NO},foreignTable=SALES,foreignColumns={SALES_REP}]",
+ "Relationship[primaryTable=JOB,primaryColumns={JOB_CODE},foreignTable=EMPLOYEE,foreignColumns={JOB_CODE}]",
+ "Relationship[primaryTable=JOB,primaryColumns={JOB_GRADE},foreignTable=EMPLOYEE,foreignColumns={JOB_GRADE}]",
+ "Relationship[primaryTable=JOB,primaryColumns={JOB_COUNTRY},foreignTable=EMPLOYEE,foreignColumns={JOB_COUNTRY}]",
+ "Relationship[primaryTable=PROJECT,primaryColumns={PROJ_ID},foreignTable=EMPLOYEE_PROJECT,foreignColumns={PROJ_ID}]",
+ "Relationship[primaryTable=PROJECT,primaryColumns={PROJ_ID},foreignTable=PROJ_DEPT_BUDGET,foreignColumns={PROJ_ID}]"
+ );
+ assertEquals(relationStrings,referenceRelationStrings);
}
public void testExecuteQuery() throws Exception {
@@ -99,9 +105,9 @@ public class FirebirdTest extends AbstractJdbIntegrationTest {
Schema schema = dataContext.getDefaultSchema();
Table departmentTable = schema.getTableByName("DEPARTMENT");
Table employeeTable = schema.getTableByName("EMPLOYEE");
- Query q = new Query().from(new FromItem(JoinType.INNER, departmentTable.getRelationships(employeeTable)[0]));
- q.select(departmentTable.getColumns()[1]);
- q.select(new SelectItem(employeeTable.getColumns()[4]).setAlias("hire-date"));
+ Query q = new Query().from(new FromItem(JoinType.INNER, departmentTable.getRelationships(employeeTable).iterator().next()));
+ q.select(departmentTable.getColumns().get(1));
+ q.select(new SelectItem(employeeTable.getColumns().get(4)).setAlias("hire-date"));
assertEquals(
"SELECT \"DEPARTMENT\".\"DEPARTMENT\", \"EMPLOYEE\".\"HIRE_DATE\" AS hire-date FROM \"EMPLOYEE\" INNER JOIN \"DEPARTMENT\" ON \"EMPLOYEE\".\"EMP_NO\" = \"DEPARTMENT\".\"MNGR_NO\"",
q.toString());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/MysqlTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/MysqlTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/MysqlTest.java
index c5485ca..dc93a28 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/MysqlTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/MysqlTest.java
@@ -227,17 +227,17 @@ public class MysqlTest extends AbstractJdbIntegrationTest {
Table actorTable = schema.getTableByName("actor");
assertEquals(
"[Column[name=actor_id,columnNumber=0,type=SMALLINT,nullable=false,nativeType=SMALLINT UNSIGNED,columnSize=5], Column[name=first_name,columnNumber=1,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=45], Column[name=last_name,columnNumber=2,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=45], Column[name=last_update,columnNumber=3,type=TIMESTAMP,nullable=false,nativeType=TIMESTAMP,columnSize=19]]",
- Arrays.toString(actorTable.getColumns()));
+ Arrays.toString(actorTable.getColumns().toArray()));
Table filmTable = schema.getTableByName("film");
assertEquals(
"[Column[name=film_id,columnNumber=0,type=SMALLINT,nullable=false,nativeType=SMALLINT UNSIGNED,columnSize=5], Column[name=title,columnNumber=1,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=255], Column[name=description,columnNumber=2,type=LONGVARCHAR,nullable=true,nativeType=TEXT,columnSize=65535], Column[name=release_year,columnNumber=3,type=DATE,nullable=true,nativeType=YEAR,columnSize=0], Column[name=language_id,columnNumber=4,type=TINYINT,nullable=false,nativeType=TINYINT UNSIGNED,columnSize=3], Column[name=original_language_id,columnNumber=5,type=TINYINT,nullable=true,nativeType=TINYINT UNSIGNED,columnSize=3], Column[name=rental_duration,columnNumber=6,type=TINYINT,nullable=false,nativeType=TINYINT UNSIGNED,columnSize=3], Column[name=rental_rate,columnNumber=7,type=DECIMAL,nullable=false,nativeType=DECIMAL,columnSize=4], Column[name=length,columnNumber=8,type=SMALLINT,nullable=true,nativeType=SMALLINT UNSIGNED,columnSize=5], Column[name=replacement_c
ost,columnNumber=9,type=DECIMAL,nullable=false,nativeType=DECIMAL,columnSize=5], Column[name=rating,columnNumber=10,type=CHAR,nullable=true,nativeType=ENUM,columnSize=5], Column[name=special_features,columnNumber=11,type=CHAR,nullable=true,nativeType=SET,columnSize=54], Column[name=last_update,columnNumber=12,type=TIMESTAMP,nullable=false,nativeType=TIMESTAMP,columnSize=19]]",
- Arrays.toString(filmTable.getColumns()));
+ Arrays.toString(filmTable.getColumns().toArray()));
Table filmActorJoinTable = schema.getTableByName("film_actor");
assertEquals(
"[Column[name=actor_id,columnNumber=0,type=SMALLINT,nullable=false,nativeType=SMALLINT UNSIGNED,columnSize=5], "
+ "Column[name=film_id,columnNumber=1,type=SMALLINT,nullable=false,nativeType=SMALLINT UNSIGNED,columnSize=5], "
+ "Column[name=last_update,columnNumber=2,type=TIMESTAMP,nullable=false,nativeType=TIMESTAMP,columnSize=19]]",
- Arrays.toString(filmActorJoinTable.getColumns()));
+ Arrays.toString(filmActorJoinTable.getColumns().toArray()));
Query q = new Query();
q.from(new FromItem(actorTable).setAlias("a"));
@@ -314,7 +314,7 @@ public class MysqlTest extends AbstractJdbIntegrationTest {
+ "Table[name=nicer_but_slower_film_list,type=VIEW,remarks=], "
+ "Table[name=sales_by_film_category,type=VIEW,remarks=], "
+ "Table[name=sales_by_store,type=VIEW,remarks=], " + "Table[name=staff_list,type=VIEW,remarks=]]",
- Arrays.toString(schema.getTables()));
+ Arrays.toString(schema.getTables().toArray()));
Table filmTable = schema.getTableByName("film");
assertEquals(
@@ -331,10 +331,10 @@ public class MysqlTest extends AbstractJdbIntegrationTest {
+ "Column[name=rating,columnNumber=10,type=CHAR,nullable=true,nativeType=ENUM,columnSize=5], "
+ "Column[name=special_features,columnNumber=11,type=CHAR,nullable=true,nativeType=SET,columnSize=54], "
+ "Column[name=last_update,columnNumber=12,type=TIMESTAMP,nullable=false,nativeType=TIMESTAMP,columnSize=19]]",
- Arrays.toString(filmTable.getColumns()));
+ Arrays.toString(filmTable.getColumns().toArray()));
assertEquals(
"[Relationship[primaryTable=language,primaryColumns=[language_id],foreignTable=film,foreignColumns=[language_id]], Relationship[primaryTable=language,primaryColumns=[language_id],foreignTable=film,foreignColumns=[original_language_id]], Relationship[primaryTable=film,primaryColumns=[film_id],foreignTable=film_actor,foreignColumns=[film_id]], Relationship[primaryTable=film,primaryColumns=[film_id],foreignTable=film_category,foreignColumns=[film_id]], Relationship[primaryTable=film,primaryColumns=[film_id],foreignTable=inventory,foreignColumns=[film_id]]]",
- Arrays.toString(filmTable.getRelationships()));
+ Arrays.toString(filmTable.getRelationships().toArray()));
assertEquals("[Table[name=actor,type=TABLE,remarks=], " + "Table[name=address,type=TABLE,remarks=], "
+ "Table[name=category,type=TABLE,remarks=], " + "Table[name=city,type=TABLE,remarks=], "
@@ -349,7 +349,7 @@ public class MysqlTest extends AbstractJdbIntegrationTest {
+ "Table[name=nicer_but_slower_film_list,type=VIEW,remarks=], "
+ "Table[name=sales_by_film_category,type=VIEW,remarks=], "
+ "Table[name=sales_by_store,type=VIEW,remarks=], " + "Table[name=staff_list,type=VIEW,remarks=]]",
- Arrays.toString(schema.getTables()));
+ Arrays.toString(schema.getTables().toArray()));
Table staffView = schema.getTableByName("staff_list");
assertEquals(
@@ -361,7 +361,7 @@ public class MysqlTest extends AbstractJdbIntegrationTest {
+ "Column[name=city,columnNumber=5,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50], "
+ "Column[name=country,columnNumber=6,type=VARCHAR,nullable=false,nativeType=VARCHAR,columnSize=50], "
+ "Column[name=SID,columnNumber=7,type=TINYINT,nullable=false,nativeType=TINYINT UNSIGNED,columnSize=3]]",
- Arrays.toString(staffView.getColumns()));
+ Arrays.toString(staffView.getColumns().toArray()));
}
public void testSplitQuery() throws Exception {
@@ -377,7 +377,7 @@ public class MysqlTest extends AbstractJdbIntegrationTest {
assertNotNull(paymentTable);
Column countryColumn = staffListTable.getColumnByName("country");
assertNotNull(countryColumn);
- Column paymentColumn = paymentTable.getColumns()[0];
+ Column paymentColumn = paymentTable.getColumns().get(0);
assertNotNull(paymentColumn);
Query q = new Query().from(staffListTable, "sl").from(paymentTable, "e").select(countryColumn, paymentColumn);
assertEquals("SELECT sl.`country`, e.`payment_id` FROM sakila.`staff_list` sl, sakila.`payment` e",
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
index 6924362..826bc81 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/OracleTest.java
@@ -21,10 +21,16 @@ package org.apache.metamodel.jdbc.integrationtests;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.Optional;
+import java.util.Set;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import javax.swing.table.TableModel;
+import javax.swing.text.html.Option;
+import com.google.common.collect.Sets;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetTableModel;
@@ -126,7 +132,7 @@ public class OracleTest extends AbstractJdbIntegrationTest {
return;
}
DataContext dc = new JdbcDataContext(getConnection());
- String[] schemaNames = dc.getSchemaNames();
+ String[] schemaNames = dc.getSchemaNames().toArray(new String[dc.getSchemas().size()]);
String concatSchemas = Arrays.toString(schemaNames);
@@ -198,16 +204,19 @@ public class OracleTest extends AbstractJdbIntegrationTest {
+ ",JdbcTable[name=JOB_HISTORY,type=TABLE,remarks=<null>]"
+ ",JdbcTable[name=LOCATIONS,type=TABLE,remarks=<null>]"
+ ",JdbcTable[name=REGIONS,type=TABLE,remarks=<null>]"
- + ",JdbcTable[name=EMP_DETAILS_VIEW,type=VIEW,remarks=<null>]}", Arrays.toString(schema.getTables()));
+ + ",JdbcTable[name=EMP_DETAILS_VIEW,type=VIEW,remarks=<null>]}", Arrays.toString(schema.getTables().toArray()));
- Relationship[] employeeRelationships = schema.getTableByName("EMPLOYEES").getRelationships();
- assertEquals(
- "{Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=DEPARTMENTS,foreignColumns={MANAGER_ID}],"
- + "Relationship[primaryTable=DEPARTMENTS,primaryColumns={DEPARTMENT_ID},foreignTable=EMPLOYEES,foreignColumns={DEPARTMENT_ID}],"
- + "Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=EMPLOYEES,foreignColumns={MANAGER_ID}],"
- + "Relationship[primaryTable=JOBS,primaryColumns={JOB_ID},foreignTable=EMPLOYEES,foreignColumns={JOB_ID}],"
- + "Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=JOB_HISTORY,foreignColumns={EMPLOYEE_ID}]}",
- Arrays.toString(employeeRelationships));
+ Collection<Relationship> employeeRelationships = schema.getTableByName("EMPLOYEES").getRelationships();
+
+ Set<String> employeeRelStrings = employeeRelationships.stream().map(rel -> rel.toString()).collect(Collectors.toSet());
+
+ assertEquals(Sets.newHashSet(
+ "Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=DEPARTMENTS,foreignColumns={MANAGER_ID}]",
+ "Relationship[primaryTable=DEPARTMENTS,primaryColumns={DEPARTMENT_ID},foreignTable=EMPLOYEES,foreignColumns={DEPARTMENT_ID}]",
+ "Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=EMPLOYEES,foreignColumns={MANAGER_ID}]",
+ "Relationship[primaryTable=JOBS,primaryColumns={JOB_ID},foreignTable=EMPLOYEES,foreignColumns={JOB_ID}]",
+ "Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=JOB_HISTORY,foreignColumns={EMPLOYEE_ID}]"),
+ employeeRelStrings);
assertEquals(
"{JdbcColumn[name=EMPLOYEE_ID,columnNumber=0,type=DECIMAL,nullable=false,nativeType=NUMBER,columnSize=6],"
@@ -221,14 +230,14 @@ public class OracleTest extends AbstractJdbIntegrationTest {
+ "JdbcColumn[name=COMMISSION_PCT,columnNumber=8,type=DECIMAL,nullable=true,nativeType=NUMBER,columnSize=2],"
+ "JdbcColumn[name=MANAGER_ID,columnNumber=9,type=DECIMAL,nullable=true,nativeType=NUMBER,columnSize=6],"
+ "JdbcColumn[name=DEPARTMENT_ID,columnNumber=10,type=DECIMAL,nullable=true,nativeType=NUMBER,columnSize=4]}",
- Arrays.toString(schema.getTableByName("EMPLOYEES").getColumns()));
+ Arrays.toString(schema.getTableByName("EMPLOYEES").getColumns().toArray()));
assertEquals(
"{JdbcColumn[name=DEPARTMENT_ID,columnNumber=0,type=DECIMAL,nullable=false,nativeType=NUMBER,columnSize=4],"
+ "JdbcColumn[name=DEPARTMENT_NAME,columnNumber=1,type=VARCHAR,nullable=false,nativeType=VARCHAR2,columnSize=30],"
+ "JdbcColumn[name=MANAGER_ID,columnNumber=2,type=DECIMAL,nullable=true,nativeType=NUMBER,columnSize=6],"
+ "JdbcColumn[name=LOCATION_ID,columnNumber=3,type=DECIMAL,nullable=true,nativeType=NUMBER,columnSize=4]}",
- Arrays.toString(schema.getTableByName("DEPARTMENTS").getColumns()));
+ Arrays.toString(schema.getTableByName("DEPARTMENTS").getColumns().toArray()));
}
public void testExecuteQuery() throws Exception {
@@ -238,12 +247,12 @@ public class OracleTest extends AbstractJdbIntegrationTest {
Schema schema = getDataContext().getSchemaByName("HR");
Table employeeTable = schema.getTableByName("EMPLOYEES");
Table departmentsTable = schema.getTableByName("DEPARTMENTS");
- Relationship relationship = employeeTable.getRelationships(departmentsTable)[0];
- assertEquals(
- "Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=DEPARTMENTS,foreignColumns={MANAGER_ID}]",
- relationship.toString());
+ Optional<Relationship> relationship = employeeTable.getRelationships(departmentsTable).stream()
+ .filter(rel-> rel.toString().equals("Relationship[primaryTable=EMPLOYEES,primaryColumns={EMPLOYEE_ID},foreignTable=DEPARTMENTS,foreignColumns={MANAGER_ID}]"))
+ .findFirst();
+ assertTrue(relationship.isPresent());
- Query q = new Query().from(new FromItem(JoinType.INNER, relationship)).select(
+ Query q = new Query().from(new FromItem(JoinType.INNER, relationship.get())).select(
employeeTable.getColumnByName("EMAIL"), departmentsTable.getColumnByName("DEPARTMENT_NAME"));
q.getSelectClause().getItem(0).setAlias("e-mail");
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
index 6f8fb09..a34be81 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
@@ -21,11 +21,7 @@ package org.apache.metamodel.jdbc.integrationtests;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Optional;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import javax.swing.table.TableModel;
@@ -455,15 +451,15 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
try {
DataSet ds = dc.query().from("my_table").select("some_double").execute();
assertTrue(ds.next());
- Double minVal = (Double) ds.getRow().getValue(ds.getSelectItems()[0]);
+ Double minVal = (Double) ds.getRow().getValue(ds.getSelectItems().get(0));
assertTrue(ds.next());
- Double maxVal = (Double) ds.getRow().getValue(ds.getSelectItems()[0]);
+ Double maxVal = (Double) ds.getRow().getValue(ds.getSelectItems().get(0));
assertTrue(ds.next());
- Double negInf = (Double) ds.getRow().getValue(ds.getSelectItems()[0]);
+ Double negInf = (Double) ds.getRow().getValue(ds.getSelectItems().get(0));
assertTrue(ds.next());
- Double posInf = (Double) ds.getRow().getValue(ds.getSelectItems()[0]);
+ Double posInf = (Double) ds.getRow().getValue(ds.getSelectItems().get(0));
assertTrue(ds.next());
- Double nAn = (Double) ds.getRow().getValue(ds.getSelectItems()[0]);
+ Double nAn = (Double) ds.getRow().getValue(ds.getSelectItems().get(0));
assertFalse(ds.next());
assertEquals(Double.MIN_VALUE, minVal, DELTA);
@@ -604,7 +600,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
Table table = cb.createTable(schema, "my_table").withColumn("id").ofType(ColumnType.INTEGER)
.ofNativeType("SERIAL").nullable(false).withColumn("person name").ofSize(255).withColumn(
"age").ofType(ColumnType.INTEGER).execute();
- assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(
"Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=serial,columnSize=10]",
table.getColumnByName("id").toString());
@@ -670,7 +666,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
Table table = cb.createTable(schema, "my_table").withColumn("id").ofType(ColumnType.INTEGER)
.ofNativeType("SERIAL").nullable(false).withColumn("person name").ofSize(255).withColumn(
"age").ofType(ColumnType.INTEGER).execute();
- assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(
"Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=serial,columnSize=10]",
table.getColumnByName("id").toString());
@@ -723,7 +719,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
Table table = cb.createTable(schema, "my_table").withColumn("id").ofType(ColumnType.INTEGER)
.ofNativeType("SERIAL").nullable(false).withColumn("person name").ofSize(255).withColumn(
"age").ofType(ColumnType.INTEGER).execute();
- assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(
"Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=serial,columnSize=10]",
table.getColumnByName("id").toString());
@@ -781,8 +777,8 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
}
DataContext dc = new JdbcDataContext(getConnection());
- Schema[] schemas = dc.getSchemas();
- assertTrue(schemas.length >= 3);
+ List<Schema> schemas = dc.getSchemas();
+ assertTrue(schemas.size() >= 3);
assertNotNull(dc.getSchemaByName("information_schema"));
assertNotNull(dc.getSchemaByName("pg_catalog"));
@@ -794,7 +790,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
+ "Table[name=cust_hist,type=TABLE,remarks=null], " + "Table[name=customers,type=TABLE,remarks=null], "
+ "Table[name=inventory,type=TABLE,remarks=null], " + "Table[name=orderlines,type=TABLE,remarks=null], "
+ "Table[name=orders,type=TABLE,remarks=null], " + "Table[name=products,type=TABLE,remarks=null], "
- + "Table[name=reorder,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables()));
+ + "Table[name=reorder,type=TABLE,remarks=null]]", Arrays.toString(schema.getTables().toArray()));
Table productsTable = schema.getTableByName("products");
assertEquals(
@@ -805,7 +801,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
+ "Column[name=price,columnNumber=4,type=NUMERIC,nullable=false,nativeType=numeric,columnSize=12], "
+ "Column[name=special,columnNumber=5,type=SMALLINT,nullable=true,nativeType=int2,columnSize=5], "
+ "Column[name=common_prod_id,columnNumber=6,type=INTEGER,nullable=false,nativeType=int4,columnSize=10]]",
- Arrays.toString(productsTable.getColumns()));
+ Arrays.toString(productsTable.getColumns().toArray()));
Table customersTable = schema.getTableByName("customers");
assertEquals(
"[Column[name=customerid,columnNumber=0,type=INTEGER,nullable=false,nativeType=serial,columnSize=10], "
@@ -828,17 +824,19 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
+ "Column[name=age,columnNumber=17,type=SMALLINT,nullable=true,nativeType=int2,columnSize=5], "
+ "Column[name=income,columnNumber=18,type=INTEGER,nullable=true,nativeType=int4,columnSize=10], "
+ "Column[name=gender,columnNumber=19,type=VARCHAR,nullable=true,nativeType=varchar,columnSize=1]]",
- Arrays.toString(customersTable.getColumns()));
- Relationship[] relations = customersTable.getRelationships();
- assertEquals(2, relations.length);
+ Arrays.toString(customersTable.getColumns().toArray()));
+ List<Relationship> relations = new ArrayList<>(customersTable.getRelationships());
+ // bit o a hack to ensure ordering
+ Collections.sort(relations, (rel1,rel2) -> rel1.getForeignTable().getName().compareTo(rel2.getForeignTable().getName()));
+ assertEquals(2, relations.size());
assertEquals(
"[Relationship[primaryTable=customers,primaryColumns=[customerid],foreignTable=cust_hist,foreignColumns=[customerid]], "
+ "Relationship[primaryTable=customers,primaryColumns=[customerid],foreignTable=orders,foreignColumns=[customerid]]]",
- Arrays.toString(relations));
- assertEquals("Table[name=customers,type=TABLE,remarks=null]", relations[0].getPrimaryTable().toString());
- assertEquals("Table[name=cust_hist,type=TABLE,remarks=null]", relations[0].getForeignTable().toString());
- assertEquals("Table[name=customers,type=TABLE,remarks=null]", relations[1].getPrimaryTable().toString());
- assertEquals("Table[name=orders,type=TABLE,remarks=null]", relations[1].getForeignTable().toString());
+ Arrays.toString(relations.toArray()));
+ assertEquals("Table[name=customers,type=TABLE,remarks=null]", relations.get(0).getPrimaryTable().toString());
+ assertEquals("Table[name=cust_hist,type=TABLE,remarks=null]", relations.get(0).getForeignTable().toString());
+ assertEquals("Table[name=customers,type=TABLE,remarks=null]", relations.get(1).getPrimaryTable().toString());
+ assertEquals("Table[name=orders,type=TABLE,remarks=null]", relations.get(1).getForeignTable().toString());
Table ordersTable = schema.getTableByName("orderlines");
assertEquals(
@@ -847,7 +845,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
+ "Column[name=prod_id,columnNumber=2,type=INTEGER,nullable=false,nativeType=int4,columnSize=10], "
+ "Column[name=quantity,columnNumber=3,type=SMALLINT,nullable=false,nativeType=int2,columnSize=5], "
+ "Column[name=orderdate,columnNumber=4,type=DATE,nullable=false,nativeType=date,columnSize=13]]",
- Arrays.toString(ordersTable.getColumns()));
+ Arrays.toString(ordersTable.getColumns().toArray()));
}
public void testExecuteQueryInPublicSchema() throws Exception {
@@ -945,7 +943,7 @@ public class PostgresqlTest extends AbstractJdbIntegrationTest {
Table table = cb.createTable(schema, "my_table").withColumn("id").ofType(ColumnType.INTEGER)
.ofNativeType("SERIAL").nullable(false).withColumn("person name").ofSize(255).withColumn(
"age").ofType(ColumnType.INTEGER).execute();
- assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[id, person name, age]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(
"Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=serial,columnSize=10]",
table.getColumnByName("id").toString());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerJtdsDriverTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerJtdsDriverTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerJtdsDriverTest.java
index c72d2f3..9926b64 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerJtdsDriverTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerJtdsDriverTest.java
@@ -161,7 +161,7 @@ public class SQLServerJtdsDriverTest extends AbstractJdbIntegrationTest {
// the jdbc driver represents the date as a VARCHAR
assertEquals("[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=int,columnSize=10], "
+ "Column[name=birthdate,columnNumber=1,type=VARCHAR,nullable=true,nativeType=date,columnSize=10]]",
- Arrays.toString(table.getColumns()));
+ Arrays.toString(table.getColumns().toArray()));
DataSet ds = dc.query().from(table).select("id").and("birthdate").execute();
assertTrue(ds.next());
@@ -184,7 +184,7 @@ public class SQLServerJtdsDriverTest extends AbstractJdbIntegrationTest {
TableType.VIEW }, DATABASE_NAME);
Query q = new Query().select("Name").from("Production.Product").where("COlor IS NOT NULL").setMaxRows(5);
DataSet dataSet = strategy.executeQuery(q);
- assertEquals("[Name]", Arrays.toString(dataSet.getSelectItems()));
+ assertEquals("[Name]", Arrays.toString(dataSet.getSelectItems().toArray()));
assertTrue(dataSet.next());
assertEquals("Row[values=[LL Crankarm]]", dataSet.getRow().toString());
assertTrue(dataSet.next());
@@ -200,7 +200,7 @@ public class SQLServerJtdsDriverTest extends AbstractJdbIntegrationTest {
}
JdbcDataContext dc = new JdbcDataContext(getConnection(), new TableType[] { TableType.TABLE, TableType.VIEW },
DATABASE_NAME);
- Schema[] schemas = dc.getSchemas();
+ Schema[] schemas = dc.getSchemas().toArray(new Schema[dc.getSchemas().size()]);
assertEquals(8, schemas.length);
assertEquals("Schema[name=HumanResources]", schemas[0].toString());
@@ -228,7 +228,7 @@ public class SQLServerJtdsDriverTest extends AbstractJdbIntegrationTest {
assertEquals("dbo", schema.getName());
assertEquals("[Sales, HumanResources, dbo, Purchasing, sys, Production, INFORMATION_SCHEMA, Person]",
- Arrays.toString(strategy.getSchemaNames()));
+ Arrays.toString(strategy.getSchemaNames().toArray()));
}
public void testQueryRewriterQuoteAliases() throws Exception {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerMicrosoftDriverTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerMicrosoftDriverTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerMicrosoftDriverTest.java
index 2fcd0ff..f297622 100644
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerMicrosoftDriverTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/SQLServerMicrosoftDriverTest.java
@@ -56,7 +56,7 @@ public class SQLServerMicrosoftDriverTest extends AbstractJdbIntegrationTest {
new TableType[] { TableType.TABLE, TableType.VIEW }, DATABASE_NAME);
Query q = new Query().select("Name").from("Production.Product").where("COlor IS NOT NULL").setMaxRows(5);
DataSet dataSet = strategy.executeQuery(q);
- assertEquals("[Name]", Arrays.toString(dataSet.getSelectItems()));
+ assertEquals("[Name]", Arrays.toString(dataSet.getSelectItems().toArray()));
assertTrue(dataSet.next());
assertEquals("Row[values=[LL Crankarm]]", dataSet.getRow().toString());
assertTrue(dataSet.next());
@@ -73,7 +73,7 @@ public class SQLServerMicrosoftDriverTest extends AbstractJdbIntegrationTest {
JdbcDataContext dc = new JdbcDataContext(getConnection(), new TableType[] { TableType.TABLE, TableType.VIEW },
DATABASE_NAME);
- Schema[] schemas = dc.getSchemas();
+ Schema[] schemas = dc.getSchemas().toArray(new Schema[dc.getSchemas().size()]);
assertEquals(8, schemas.length);
assertEquals("Schema[name=HumanResources]", schemas[0].toString());
@@ -100,7 +100,7 @@ public class SQLServerMicrosoftDriverTest extends AbstractJdbIntegrationTest {
TableType.GLOBAL_TEMPORARY }, DATABASE_NAME);
assertEquals("[Sales, HumanResources, dbo, Purchasing, sys, Production, INFORMATION_SCHEMA, Person]",
- Arrays.toString(strategy.getSchemaNames()));
+ Arrays.toString(strategy.getSchemaNames().toArray()));
assertEquals("Schema[name=dbo]", strategy.getDefaultSchema().toString());
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
----------------------------------------------------------------------
diff --git a/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java b/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
index 90f726d..6578d7c 100644
--- a/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
+++ b/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
@@ -20,6 +20,8 @@ package org.apache.metamodel.json;
import java.io.File;
import java.io.InputStream;
+import java.util.List;
+import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
@@ -85,9 +87,9 @@ public class JsonDataContext extends QueryPostprocessDataContext implements Docu
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
final DocumentConverter documentConverter = _schemaBuilder.getDocumentConverter(table);
- final SelectItem[] selectItems = MetaModelHelper.createSelectItems(columns);
+ final List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
final DataSetHeader header = new CachingDataSetHeader(selectItems);
final DocumentSource documentSource = getDocumentSourceForTable(table.getName());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
----------------------------------------------------------------------
diff --git a/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java b/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
index 0dba661..bfc1283 100644
--- a/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
+++ b/json/src/test/java/org/apache/metamodel/json/JsonDataContextTest.java
@@ -55,7 +55,7 @@ public class JsonDataContextTest extends TestCase {
final Table table = dc.getDefaultSchema().getTable(0);
assertEquals("tbl", table.getName());
- assertEquals("[cl]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[cl]", Arrays.toString(table.getColumnNames().toArray()));
final DataSet dataSet = dc.query().from("tbl").select("cl").execute();
assertTrue(dataSet.next());
@@ -68,10 +68,9 @@ public class JsonDataContextTest extends TestCase {
private void runParseabilityTest(JsonDataContext dc) {
final Table table = dc.getDefaultSchema().getTable(0);
- assertEquals("[country, gender, id, name]", Arrays.toString(table.getColumnNames()));
- final Column[] columns = table.getColumns();
+ assertEquals("[country, gender, id, name]", Arrays.toString(table.getColumnNames().toArray()));
- final DataSet dataSet = dc.materializeMainSchemaTable(table, columns, 100000);
+ final DataSet dataSet = dc.materializeMainSchemaTable(table, table.getColumns(), 100000);
assertTrue(dataSet.next());
assertEquals("Row[values=[US, null, 1234, John Doe]]", dataSet.getRow().toString());
assertTrue(dataSet.next());
@@ -105,7 +104,7 @@ public class JsonDataContextTest extends TestCase {
final JsonDataContext dataContext = new JsonDataContext(resource);
final Schema schema = dataContext.getDefaultSchema();
- assertEquals("[nested_fields.json]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[nested_fields.json]", Arrays.toString(schema.getTableNames().toArray()));
final DataSet ds = dataContext.query().from(schema.getTable(0))
.select(FunctionType.MAP_VALUE, "name", new Object[] { "first" }).execute();
@@ -125,7 +124,7 @@ public class JsonDataContextTest extends TestCase {
final JsonDataContext dataContext = new JsonDataContext(resource);
final Schema schema = dataContext.getDefaultSchema();
- assertEquals("[nested_fields.json]", Arrays.toString(schema.getTableNames()));
+ assertEquals("[nested_fields.json]", Arrays.toString(schema.getTableNames().toArray()));
final DataSet ds = dataContext.query().from(schema.getTable(0)).select("name.first").execute();
try {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
index 84ae8db..d5d0432 100644
--- a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
+++ b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
@@ -26,6 +26,7 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
@@ -200,8 +201,7 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
for (SimpleTableDef tableDef : _tableDefs) {
MutableTable table = tableDef.toTable().setSchema(schema);
- Column[] rowIdColumns = table.getColumnsOfType(ColumnType.ROWID);
- for (Column column : rowIdColumns) {
+ for (Column column : table.getColumnsOfType(ColumnType.ROWID)) {
if (column instanceof MutableColumn) {
((MutableColumn) column).setPrimaryKey(true);
}
@@ -286,10 +286,7 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
logger.debug("Query can be expressed in full MongoDB, no post processing needed.");
// prepare for a non-post-processed query
- Column[] columns = new Column[selectItems.size()];
- for (int i = 0; i < columns.length; i++) {
- columns[i] = selectItems.get(i).getColumn();
- }
+
// checking if the query is a primary key lookup query
if (whereItems.size() == 1) {
@@ -324,16 +321,15 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
}
if (thereIsAtLeastOneAlias) {
- final SelectItem[] selectItemsAsArray = selectItems.toArray(new SelectItem[selectItems.size()]);
final DataSet dataSet = materializeMainSchemaTableInternal(
table,
- selectItemsAsArray,
+ selectItems,
whereItems,
firstRow,
maxRows, false);
return dataSet;
} else {
- final DataSet dataSet = materializeMainSchemaTableInternal(table, columns, whereItems, firstRow,
+ final DataSet dataSet = materializeMainSchemaTableInternal(table, selectItems, whereItems, firstRow,
maxRows, false);
return dataSet;
}
@@ -345,14 +341,9 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
return super.executeQuery(query);
}
- private DataSet materializeMainSchemaTableInternal(Table table, Column[] columns, List<FilterItem> whereItems,
- int firstRow, int maxRows, boolean queryPostProcessed) {
- DBCursor cursor = getCursor(table, whereItems, firstRow, maxRows);
- return new MongoDbDataSet(cursor, columns, queryPostProcessed);
- }
- private DataSet materializeMainSchemaTableInternal(Table table, SelectItem[] selectItems,
+ private DataSet materializeMainSchemaTableInternal(Table table, List<SelectItem> selectItems,
List<FilterItem> whereItems, int firstRow, int maxRows, boolean queryPostProcessed) {
DBCursor cursor = getCursor(table, whereItems, firstRow, maxRows);
@@ -478,13 +469,25 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
- return materializeMainSchemaTableInternal(table, columns, null, 1, maxRows, true);
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
+ return materializeMainSchemaTableInternal(
+ table,
+ columns.stream().map(SelectItem::new).collect(Collectors.toList()),
+ null,
+ 1,
+ maxRows,
+ true);
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int firstRow, int maxRows) {
- return materializeMainSchemaTableInternal(table, columns, null, firstRow, maxRows, true);
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int firstRow, int maxRows) {
+ return materializeMainSchemaTableInternal(
+ table,
+ columns.stream().map(SelectItem::new).collect(Collectors.toList()),
+ null,
+ firstRow,
+ maxRows,
+ true);
}
/**
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
index ea7cd9e..3197945 100644
--- a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
+++ b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataSet.java
@@ -29,6 +29,8 @@ import org.slf4j.LoggerFactory;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
+import java.util.List;
+
final class MongoDbDataSet extends AbstractDataSet {
private static final Logger logger = LoggerFactory.getLogger(MongoDbDataSet.class);
@@ -39,14 +41,9 @@ final class MongoDbDataSet extends AbstractDataSet {
private boolean _closed;
private volatile DBObject _dbObject;
- public MongoDbDataSet(DBCursor cursor, Column[] columns, boolean queryPostProcessed) {
- super(columns);
- _cursor = cursor;
- _queryPostProcessed = queryPostProcessed;
- _closed = false;
- }
- public MongoDbDataSet(DBCursor cursor, SelectItem[] selectItems, boolean queryPostProcessed) {
+
+ public MongoDbDataSet(DBCursor cursor, List<SelectItem> selectItems, boolean queryPostProcessed) {
super(selectItems);
_cursor = cursor;
_queryPostProcessed = queryPostProcessed;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java b/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java
index da99955..398c408 100644
--- a/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java
+++ b/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java
@@ -280,7 +280,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
assertTrue(Arrays.asList(dataContext.getDefaultSchema().getTableNames()).contains(getCollectionName()));
Table table = dataContext.getDefaultSchema().getTableByName(getCollectionName());
- assertEquals("[_id, baz, foo, id, list, name]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[_id, baz, foo, id, list, name]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(ColumnType.MAP, table.getColumnByName("baz").getType());
assertEquals(ColumnType.STRING, table.getColumnByName("foo").getType());
@@ -460,7 +460,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
// do a query that we cannot push to mongo
// Replace column index 0 by 1
ds = dataContext.query().from(getCollectionName())
- .select(FunctionType.SUM, dataContext.getDefaultSchema().getTables()[0].getColumnByName("id"))
+ .select(FunctionType.SUM, dataContext.getDefaultSchema().getTables().get(0).getColumnByName("id"))
.where("foo").isEquals("bar").execute();
assertEquals(InMemoryDataSet.class, ds.getClass());
@@ -478,8 +478,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback callback) {
- Table[] tables = defaultSchema.getTables();
- for (Table table : tables) {
+ for (Table table : defaultSchema.getTables()) {
callback.deleteFrom(table).execute();
}
}
@@ -514,8 +513,8 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
dataSet = dc.query().from("some_entries").selectCount().execute();
dataSet.close();
assertTrue(dataSet.next());
- assertEquals(1, dataSet.getSelectItems().length);
- assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems()[0]);
+ assertEquals(1, dataSet.getSelectItems().size());
+ assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems().get(0));
assertEquals(4l, dataSet.getRow().getValue(SelectItem.getCountAllItem()));
assertFalse(dataSet.next());
assertEquals(InMemoryDataSet.class, dataSet.getClass());
@@ -524,8 +523,8 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
dataSet = dc.query().from("some_entries").selectCount().where("foo").greaterThan(2).execute();
dataSet.close();
assertTrue(dataSet.next());
- assertEquals(1, dataSet.getSelectItems().length);
- assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems()[0]);
+ assertEquals(1, dataSet.getSelectItems().size());
+ assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems().get(0));
assertEquals(2l, dataSet.getRow().getValue(SelectItem.getCountAllItem()));
assertFalse(dataSet.next());
assertEquals(InMemoryDataSet.class, dataSet.getClass());
@@ -657,7 +656,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
"addresses[5].foobar" }));
final DataSet ds1 = dc.executeQuery("select gender AS my_gender, name.first AS my_name from my_collection where gender LIKE '%MALE%'");
- final SelectItem[] selectItems = ds1.getSelectItems();
+ final SelectItem[] selectItems = ds1.getSelectItems().toArray(new SelectItem[ds1.getSelectItems().size()]);
SelectItem firstSelectItem = selectItems[0];
SelectItem secondSelectItem = selectItems[1];
try {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataCopyer.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataCopyer.java b/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataCopyer.java
index b0aa9dc..becda44 100644
--- a/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataCopyer.java
+++ b/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataCopyer.java
@@ -21,6 +21,7 @@ package org.apache.metamodel.mongodb.mongo2;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
+import java.util.List;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.UpdateCallback;
@@ -95,7 +96,7 @@ public class MongoDbDataCopyer {
final Table sourceTable = getSourceTable();
final Table targetTable = callback.createTable(targetDataContext.getDefaultSchema(), _collectionName)
.like(sourceTable).execute();
- final Column[] sourceColumns = sourceTable.getColumns();
+ final List<Column> sourceColumns = sourceTable.getColumns();
final DataSet dataSet = _sourceDataContext.query().from(sourceTable).select(sourceColumns).execute();
while (dataSet.next()) {
final Row row = dataSet.getRow();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
index ddb18d5..9bdec81 100644
--- a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
+++ b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
@@ -27,6 +27,7 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
@@ -200,7 +201,7 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
for (SimpleTableDef tableDef : _tableDefs) {
MutableTable table = tableDef.toTable().setSchema(schema);
- Column[] rowIdColumns = table.getColumnsOfType(ColumnType.ROWID);
+ List<Column> rowIdColumns = table.getColumnsOfType(ColumnType.ROWID);
for (Column column : rowIdColumns) {
if (column instanceof MutableColumn) {
((MutableColumn) column).setPrimaryKey(true);
@@ -286,10 +287,7 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
logger.debug("Query can be expressed in full MongoDB, no post processing needed.");
// prepare for a non-post-processed query
- Column[] columns = new Column[selectItems.size()];
- for (int i = 0; i < columns.length; i++) {
- columns[i] = selectItems.get(i).getColumn();
- }
+
// checking if the query is a primary key lookup query
if (whereItems.size() == 1) {
@@ -325,16 +323,15 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
}
if (thereIsAtLeastOneAlias) {
- final SelectItem[] selectItemsAsArray = selectItems.toArray(new SelectItem[selectItems.size()]);
final DataSet dataSet = materializeMainSchemaTableInternal(
table,
- selectItemsAsArray,
+ selectItems,
whereItems,
firstRow,
maxRows, false);
return dataSet;
} else {
- final DataSet dataSet = materializeMainSchemaTableInternal(table, columns, whereItems, firstRow,
+ final DataSet dataSet = materializeMainSchemaTableInternal(table, selectItems, whereItems, firstRow,
maxRows, false);
return dataSet;
}
@@ -346,14 +343,8 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
return super.executeQuery(query);
}
- private DataSet materializeMainSchemaTableInternal(Table table, Column[] columns, List<FilterItem> whereItems,
- int firstRow, int maxRows, boolean queryPostProcessed) {
- MongoCursor<Document> cursor = getDocumentMongoCursor(table, whereItems, firstRow, maxRows);
-
- return new MongoDbDataSet(cursor, columns, queryPostProcessed);
- }
- private DataSet materializeMainSchemaTableInternal(Table table, SelectItem[] selectItems, List<FilterItem> whereItems,
+ private DataSet materializeMainSchemaTableInternal(Table table, List<SelectItem> selectItems, List<FilterItem> whereItems,
int firstRow, int maxRows, boolean queryPostProcessed) {
MongoCursor<Document> cursor = getDocumentMongoCursor(table, whereItems, firstRow, maxRows);
@@ -507,13 +498,26 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
- return materializeMainSchemaTableInternal(table, columns, null, 1, maxRows, true);
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
+
+ return materializeMainSchemaTableInternal(
+ table,
+ columns.stream().map(SelectItem::new).collect(Collectors.toList()),
+ null,
+ 1,
+ maxRows,
+ true);
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int firstRow, int maxRows) {
- return materializeMainSchemaTableInternal(table, columns, null, firstRow, maxRows, true);
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int firstRow, int maxRows) {
+ return materializeMainSchemaTableInternal(
+ table,
+ columns.stream().map(SelectItem::new).collect(Collectors.toList()),
+ null,
+ firstRow,
+ maxRows,
+ true);
}
/**
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
index 19e543f..76a7636 100644
--- a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
+++ b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataSet.java
@@ -29,6 +29,8 @@ import org.slf4j.LoggerFactory;
import com.mongodb.client.MongoCursor;
+import java.util.List;
+
final class MongoDbDataSet extends AbstractDataSet {
private static final Logger logger = LoggerFactory.getLogger(MongoDbDataSet.class);
@@ -39,14 +41,8 @@ final class MongoDbDataSet extends AbstractDataSet {
private boolean _closed;
private volatile Document _document;
- public MongoDbDataSet(MongoCursor<Document> cursor, Column[] columns, boolean queryPostProcessed) {
- super(columns);
- _cursor = cursor;
- _queryPostProcessed = queryPostProcessed;
- _closed = false;
- }
- public MongoDbDataSet(MongoCursor<Document> cursor, SelectItem[] selectItems, boolean queryPostProcessed) {
+ public MongoDbDataSet(MongoCursor<Document> cursor, List<SelectItem> selectItems, boolean queryPostProcessed) {
super(selectItems);
_cursor = cursor;
_queryPostProcessed = queryPostProcessed;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
index 197fae9..9751719 100644
--- a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
+++ b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java
@@ -265,7 +265,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
assertTrue(Arrays.asList(dataContext.getDefaultSchema().getTableNames()).contains(getCollectionName()));
Table table = dataContext.getDefaultSchema().getTableByName(getCollectionName());
- assertEquals("[_id, baz, foo, id, list, name]", Arrays.toString(table.getColumnNames()));
+ assertEquals("[_id, baz, foo, id, list, name]", Arrays.toString(table.getColumnNames().toArray()));
assertEquals(ColumnType.MAP, table.getColumnByName("baz").getType());
assertEquals(ColumnType.STRING, table.getColumnByName("foo").getType());
@@ -445,7 +445,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
// do a query that we cannot push to mongo
// Replace column index 0 by 1
ds = dataContext.query().from(getCollectionName())
- .select(FunctionType.SUM, dataContext.getDefaultSchema().getTables()[0].getColumnByName("id"))
+ .select(FunctionType.SUM, dataContext.getDefaultSchema().getTables().get(0).getColumnByName("id"))
.where("foo").isEquals("bar").execute();
assertEquals(InMemoryDataSet.class, ds.getClass());
@@ -463,8 +463,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
dc.executeUpdate(new UpdateScript() {
@Override
public void run(UpdateCallback callback) {
- Table[] tables = defaultSchema.getTables();
- for (Table table : tables) {
+ for (Table table : defaultSchema.getTables()) {
callback.deleteFrom(table).execute();
}
}
@@ -499,8 +498,8 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
dataSet = dc.query().from("some_entries").selectCount().execute();
dataSet.close();
assertTrue(dataSet.next());
- assertEquals(1, dataSet.getSelectItems().length);
- assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems()[0]);
+ assertEquals(1, dataSet.getSelectItems().size());
+ assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems().get(0));
assertEquals(4l, dataSet.getRow().getValue(SelectItem.getCountAllItem()));
assertFalse(dataSet.next());
assertEquals(InMemoryDataSet.class, dataSet.getClass());
@@ -509,8 +508,8 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
dataSet = dc.query().from("some_entries").selectCount().where("foo").greaterThan(2).execute();
dataSet.close();
assertTrue(dataSet.next());
- assertEquals(1, dataSet.getSelectItems().length);
- assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems()[0]);
+ assertEquals(1, dataSet.getSelectItems().size());
+ assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems().get(0));
assertEquals(2l, dataSet.getRow().getValue(SelectItem.getCountAllItem()));
assertFalse(dataSet.next());
assertEquals(InMemoryDataSet.class, dataSet.getClass());
@@ -633,7 +632,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase {
"addresses[5].foobar" }));
final DataSet ds1 = dc.executeQuery("select gender as my_gender, name.first as my_name from my_collection where gender LIKE '%MALE%'");
- final SelectItem[] selectItems = ds1.getSelectItems();
+ final SelectItem[] selectItems = ds1.getSelectItems().toArray(new SelectItem[ds1.getSelectItems().size()]);
SelectItem firstSelectItem = selectItems[0];
SelectItem secondSelectItem = selectItems[1];
try {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataCopyer.java
----------------------------------------------------------------------
diff --git a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataCopyer.java b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataCopyer.java
index 42ef536..351d6ee 100644
--- a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataCopyer.java
+++ b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataCopyer.java
@@ -98,7 +98,7 @@ public class MongoDbDataCopyer {
final Table sourceTable = getSourceTable();
final Table targetTable = callback.createTable(targetDataContext.getDefaultSchema(), _collectionName)
.like(sourceTable).execute();
- final Column[] sourceColumns = sourceTable.getColumns();
+ final Column[] sourceColumns = sourceTable.getColumns().toArray(new Column[sourceTable.getColumns().size()]);
final DataSet dataSet = _sourceDataContext.query().from(sourceTable).select(sourceColumns).execute();
while (dataSet.next()) {
final Row row = dataSet.getRow();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jCypherQueryBuilder.java
----------------------------------------------------------------------
diff --git a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jCypherQueryBuilder.java b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jCypherQueryBuilder.java
index 5d3ac6c..38079ce 100644
--- a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jCypherQueryBuilder.java
+++ b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jCypherQueryBuilder.java
@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.metamodel.query.FilterItem;
import org.apache.metamodel.schema.Column;
@@ -29,15 +30,14 @@ import org.apache.metamodel.schema.Table;
public class Neo4jCypherQueryBuilder {
- public static String buildSelectQuery(Table table, Column[] columns, int firstRow, int maxRows) {
- String[] columnNames = new String[columns.length];
- for (int i = 0; i < columns.length; i++) {
- columnNames[i] = columns[i].getName();
- }
+ public static String buildSelectQuery(Table table, List<Column> columns, int firstRow, int maxRows) {
+ List<String> columnNames = columns.stream()
+ .map(col -> col.getName())
+ .collect(Collectors.toList());
return buildSelectQuery(table.getName(), columnNames, firstRow, maxRows);
}
- public static String buildSelectQuery(String tableName, String[] columnNames, int firstRow, int maxRows) {
+ public static String buildSelectQuery(String tableName, List<String> columnNames, int firstRow, int maxRows) {
Map<String, String> returnClauseMap = new LinkedHashMap<>();
Map<String, Integer> relationshipIndexMap = new LinkedHashMap<>();
for (String columnName : columnNames) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
----------------------------------------------------------------------
diff --git a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
index cb0b2ac..82f710d 100644
--- a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
+++ b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.http.HttpHost;
import org.apache.http.client.methods.HttpGet;
@@ -296,14 +297,14 @@ public class Neo4jDataContext extends QueryPostprocessDataContext implements Dat
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int firstRow, int maxRows) {
- if ((columns != null) && (columns.length > 0)) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int firstRow, int maxRows) {
+ if ((columns != null) && (columns.size() > 0)) {
Neo4jDataSet dataSet = null;
try {
String selectQuery = Neo4jCypherQueryBuilder.buildSelectQuery(table, columns, firstRow, maxRows);
String responseJSONString = _requestWrapper.executeCypherQuery(selectQuery);
JSONObject resultJSONObject = new JSONObject(responseJSONString);
- final SelectItem[] selectItems = MetaModelHelper.createSelectItems(columns);
+ final List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
dataSet = new Neo4jDataSet(selectItems, resultJSONObject);
} catch (JSONException e) {
logger.error("Error occured in parsing JSON while materializing the schema: ", e);
@@ -318,7 +319,7 @@ public class Neo4jDataContext extends QueryPostprocessDataContext implements Dat
}
@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/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataSet.java
----------------------------------------------------------------------
diff --git a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataSet.java b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataSet.java
index bf132e8..537a068 100644
--- a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataSet.java
+++ b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataSet.java
@@ -27,13 +27,15 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import java.util.List;
+
final class Neo4jDataSet extends AbstractDataSet {
private JSONObject _resultJSONObject;
private int _currentRowIndex;
private Row _row;
- public Neo4jDataSet(SelectItem[] selectItems, JSONObject resultJSONObject) {
+ public Neo4jDataSet(List<SelectItem> selectItems, JSONObject resultJSONObject) {
super(selectItems);
_resultJSONObject = resultJSONObject;
_currentRowIndex = 0;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
----------------------------------------------------------------------
diff --git a/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java b/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
index 1246ce2..89bf977 100644
--- a/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
+++ b/neo4j/src/test/java/org/apache/metamodel/neo4j/Neo4jDataContextTest.java
@@ -78,13 +78,13 @@ public class Neo4jDataContextTest extends Neo4jTestCase {
// Do not check the precise count, Neo4j keeps labels forever, there are
// probably many more than you imagine...
- List<String> tableNames = Arrays.asList(schema.getTableNames());
+ List<String> tableNames = schema.getTableNames();
logger.info("Tables (labels) detected: " + tableNames);
assertTrue(tableNames.contains("JUnitLabel"));
assertFalse(tableNames.contains("JUnitLabelTemp"));
Table table = schema.getTableByName("JUnitLabel");
- List<String> columnNames = Arrays.asList(table.getColumnNames());
+ List<String> columnNames = table.getColumnNames();
assertTrue(columnNames.contains("property1"));
assertTrue(columnNames.contains("property2"));
}
@@ -122,18 +122,18 @@ public class Neo4jDataContextTest extends Neo4jTestCase {
// Do not check the precise count, Neo4j keeps labels forever, there are
// probably many more than you imagine...
- List<String> tableNames = Arrays.asList(schema.getTableNames());
+ List<String> tableNames = schema.getTableNames();
logger.info("Tables (labels) detected: " + tableNames);
assertTrue(tableNames.contains("JUnitPerson"));
assertTrue(tableNames.contains("JUnitBook"));
Table tablePerson = schema.getTableByName("JUnitPerson");
- List<String> personColumnNames = Arrays.asList(tablePerson.getColumnNames());
+ List<String> personColumnNames = tablePerson.getColumnNames();
assertEquals("[_id, name, age, rel_HAS_READ, rel_HAS_READ#rating, rel_HAS_BROWSED]",
personColumnNames.toString());
Table tableBook = schema.getTableByName("JUnitBook");
- List<String> bookColumnNames = Arrays.asList(tableBook.getColumnNames());
+ List<String> bookColumnNames = tableBook.getColumnNames();
assertEquals("[_id, title]", bookColumnNames.toString());
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/openoffice/src/main/java/org/apache/metamodel/openoffice/OpenOfficeDataContext.java
----------------------------------------------------------------------
diff --git a/openoffice/src/main/java/org/apache/metamodel/openoffice/OpenOfficeDataContext.java b/openoffice/src/main/java/org/apache/metamodel/openoffice/OpenOfficeDataContext.java
index 25275a5..7df2350 100644
--- a/openoffice/src/main/java/org/apache/metamodel/openoffice/OpenOfficeDataContext.java
+++ b/openoffice/src/main/java/org/apache/metamodel/openoffice/OpenOfficeDataContext.java
@@ -26,6 +26,7 @@ import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Enumeration;
+import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -114,7 +115,7 @@ public class OpenOfficeDataContext extends AbstractDataContext {
}
@Override
- protected String[] getSchemaNamesInternal() {
+ protected List<String> getSchemaNamesInternal() {
return _dataContextDelegate.getSchemaNames();
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/openoffice/src/test/java/org/apache/metamodel/openoffice/OpenOfficeDataContextTest.java
----------------------------------------------------------------------
diff --git a/openoffice/src/test/java/org/apache/metamodel/openoffice/OpenOfficeDataContextTest.java b/openoffice/src/test/java/org/apache/metamodel/openoffice/OpenOfficeDataContextTest.java
index 78015d2..0ac3462 100644
--- a/openoffice/src/test/java/org/apache/metamodel/openoffice/OpenOfficeDataContextTest.java
+++ b/openoffice/src/test/java/org/apache/metamodel/openoffice/OpenOfficeDataContextTest.java
@@ -57,7 +57,7 @@ public class OpenOfficeDataContextTest extends TestCase {
public void testGetSchemas() throws Exception {
assertEquals("[INFORMATION_SCHEMA, PUBLIC]",
- Arrays.toString(_dataContext.getSchemaNames()));
+ Arrays.toString(_dataContext.getSchemaNames().toArray()));
Schema informationSchema = _dataContext
.getSchemaByName("INFORMATION_SCHEMA");
@@ -68,10 +68,10 @@ public class OpenOfficeDataContextTest extends TestCase {
assertEquals(
"[Table[name=CONTRIBUTORS,type=TABLE,remarks=null], Table[name=projects,type=TABLE,remarks=null]]",
- Arrays.toString(schema.getTables()));
+ Arrays.toString(schema.getTables().toArray()));
assertEquals(
"[Relationship[primaryTable=CONTRIBUTORS,primaryColumns=[ID],foreignTable=projects,foreignColumns=[admin]]]",
- Arrays.toString(schema.getRelationships()));
+ Arrays.toString(schema.getRelationships().toArray()));
}
public void testQueryUppercaseTable() throws Exception {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
----------------------------------------------------------------------
diff --git a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
index 9369e96..f694202 100644
--- a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
+import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
@@ -103,13 +104,13 @@ public class PojoDataContext extends QueryPostprocessDataContext implements Upda
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows) {
final TableDataProvider<?> pojoTable = _tables.get(table.getName());
if (pojoTable == null) {
throw new IllegalArgumentException("No such POJO table: " + table.getName());
}
- final SelectItem[] selectItems = MetaModelHelper.createSelectItems(columns);
+ final List<SelectItem> selectItems = columns.stream().map(SelectItem::new).collect(Collectors.toList());
@SuppressWarnings({ "rawtypes", "unchecked" })
DataSet dataSet = new PojoDataSet(pojoTable, selectItems);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/2d156bcd/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataSet.java
----------------------------------------------------------------------
diff --git a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataSet.java b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataSet.java
index 1c86ef1..952d85c 100644
--- a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataSet.java
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataSet.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.pojo;
import java.util.Iterator;
+import java.util.List;
import org.apache.metamodel.data.AbstractDataSet;
import org.apache.metamodel.data.DataSet;
@@ -38,7 +39,7 @@ final class PojoDataSet<E> extends AbstractDataSet {
private final Iterator<E> _iterator;
private E _next;
- public PojoDataSet(TableDataProvider<E> pojoTable, SelectItem[] selectItems) {
+ public PojoDataSet(TableDataProvider<E> pojoTable, List<SelectItem> selectItems) {
super(selectItems);
_pojoTable = pojoTable;
[07/20] metamodel git commit: now all compiling
Posted by ka...@apache.org.
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: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Thu Jul 27 18:05:40 2017 +0200
Committer: Jö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());
}
[16/20] metamodel git commit: rearranged to eclipse import style
Posted by ka...@apache.org.
rearranged to eclipse import style
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/840aea41
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/840aea41
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/840aea41
Branch: refs/heads/master
Commit: 840aea410c254e29253d46983629de03843297af
Parents: 725e210
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Wed Aug 2 15:14:20 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Wed Aug 2 15:14:20 2017 +0200
----------------------------------------------------------------------
.../org/apache/metamodel/AbstractDataContext.java | 12 ++++++------
.../apache/metamodel/CompositeDataContext.java | 18 +++++++++---------
.../java/org/apache/metamodel/DataContext.java | 4 ++--
.../org/apache/metamodel/convert/Converters.java | 16 ++++++++--------
.../apache/metamodel/data/AbstractDataSet.java | 6 +++---
.../metamodel/data/CachingDataSetHeader.java | 6 +++---
.../metamodel/data/ScalarFunctionDataSet.java | 4 ++--
.../metamodel/data/SimpleDataSetHeader.java | 6 +++---
.../org/apache/metamodel/data/UnionDataSet.java | 6 +++---
.../intercept/InterceptableDataContext.java | 6 +++---
.../apache/metamodel/schema/AbstractSchema.java | 8 ++++----
.../intercept/InterceptableDataContextTest.java | 7 ++++---
...egacyDeserializationObjectInputStreamTest.java | 5 +++--
13 files changed, 53 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
index 379b9ed..475add4 100644
--- a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
@@ -18,6 +18,12 @@
*/
package org.apache.metamodel;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.CompiledQuery;
import org.apache.metamodel.query.DefaultCompiledQuery;
@@ -29,12 +35,6 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
/**
* Abstract implementation of the DataContext interface. Provides convenient
* implementations of all trivial and datastore-independent methods.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/CompositeDataContext.java b/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
index f595b2e..b7468fb 100644
--- a/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
@@ -18,15 +18,6 @@
*/
package org.apache.metamodel;
-import org.apache.metamodel.data.DataSet;
-import org.apache.metamodel.query.FromItem;
-import org.apache.metamodel.query.Query;
-import org.apache.metamodel.schema.CompositeSchema;
-import org.apache.metamodel.schema.Schema;
-import org.apache.metamodel.schema.Table;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -38,6 +29,15 @@ import java.util.Set;
import java.util.TreeSet;
import java.util.function.Function;
+import org.apache.metamodel.data.DataSet;
+import org.apache.metamodel.query.FromItem;
+import org.apache.metamodel.query.Query;
+import org.apache.metamodel.schema.CompositeSchema;
+import org.apache.metamodel.schema.Schema;
+import org.apache.metamodel.schema.Table;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* DataContext for composite datacontexts. Composite DataContexts wrap several
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/DataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/DataContext.java b/core/src/main/java/org/apache/metamodel/DataContext.java
index 58bec4a..38223b9 100644
--- a/core/src/main/java/org/apache/metamodel/DataContext.java
+++ b/core/src/main/java/org/apache/metamodel/DataContext.java
@@ -18,6 +18,8 @@
*/
package org.apache.metamodel;
+import java.util.List;
+
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.CompiledQuery;
import org.apache.metamodel.query.Query;
@@ -27,8 +29,6 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
-import java.util.List;
-
/**
* A DataContext represents the central entry point for interactions with
* datastores. The DataContext contains of the structure of data (in the form of
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/convert/Converters.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/convert/Converters.java b/core/src/main/java/org/apache/metamodel/convert/Converters.java
index 3c2ad00..905f1f7 100644
--- a/core/src/main/java/org/apache/metamodel/convert/Converters.java
+++ b/core/src/main/java/org/apache/metamodel/convert/Converters.java
@@ -18,6 +18,14 @@
*/
package org.apache.metamodel.convert;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.stream.Collectors;
+
import org.apache.metamodel.DataContext;
import org.apache.metamodel.UpdateableDataContext;
import org.apache.metamodel.data.DataSet;
@@ -33,14 +41,6 @@ import org.apache.metamodel.schema.Table;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.stream.Collectors;
-
/**
* This class consists of static methods for decorating {@link DataContext}s
* with {@link TypeConverter}s, which allows for automatic conversion of values
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/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 39e5303..33238a0 100644
--- a/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java
@@ -18,15 +18,15 @@
*/
package org.apache.metamodel.data;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.util.BaseObject;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.util.BaseObject;
+
/**
* Abstract DataSet implementation. Provides convenient implementations of
* trivial method and reusable parts of non-trivial methods of a DataSet.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java b/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
index 965dea3..1ede3d9 100644
--- a/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
@@ -18,13 +18,13 @@
*/
package org.apache.metamodel.data;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
-
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.schema.Column;
+
/**
* Most common implementation of {@link DataSetHeader}. This implementation is
* 'caching' in the sense that index values of selectitems are cached in a map
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java b/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
index d9e6e9c..0b9a78f 100644
--- a/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
@@ -18,12 +18,12 @@
*/
package org.apache.metamodel.data;
+import java.util.List;
+
import org.apache.metamodel.query.ScalarFunction;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.util.CollectionUtils;
-import java.util.List;
-
/**
* A {@link DataSet} that enhances another {@link DataSet} with
* {@link ScalarFunction}s.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/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 e3bf59d..5dc2ca9 100644
--- a/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java
@@ -18,14 +18,14 @@
*/
package org.apache.metamodel.data;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
-
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.schema.Column;
+
/**
* Simple implementation of {@link DataSetHeader} which does no magic to improve
* performance.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java b/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
index f8ef9bf..f13124c 100644
--- a/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
@@ -18,9 +18,6 @@
*/
package org.apache.metamodel.data;
-import org.apache.metamodel.query.InvokableQuery;
-import org.apache.metamodel.util.ImmutableRef;
-
import java.util.Collection;
import java.util.Iterator;
import java.util.Objects;
@@ -28,6 +25,9 @@ import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
+import org.apache.metamodel.query.InvokableQuery;
+import org.apache.metamodel.util.ImmutableRef;
+
/**
* A {@link DataSet} that represents the union of two or more other data sets
*/
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/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 74af932..b8f4c11 100644
--- a/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java
@@ -18,6 +18,9 @@
*/
package org.apache.metamodel.intercept;
+import java.util.List;
+import java.util.stream.Collectors;
+
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelException;
import org.apache.metamodel.UpdateScript;
@@ -37,9 +40,6 @@ import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.update.RowUpdationBuilder;
-import java.util.List;
-import java.util.stream.Collectors;
-
public class InterceptableDataContext implements UpdateableDataContext {
private final DataContext _delegate;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java b/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
index f8b8c1d..accfa27 100644
--- a/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
@@ -18,16 +18,16 @@
*/
package org.apache.metamodel.schema;
-import org.apache.metamodel.util.EqualsBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.stream.Collectors;
+import org.apache.metamodel.util.EqualsBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* Abstract implementation of the {@link Schema} interface. Implements most
* common and trivial methods.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
index fe69b6c..446577d 100644
--- a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
@@ -18,7 +18,9 @@
*/
package org.apache.metamodel.intercept;
-import junit.framework.TestCase;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MockUpdateableDataContext;
import org.apache.metamodel.data.DataSet;
@@ -28,8 +30,7 @@ import org.apache.metamodel.schema.MutableSchema;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
-import java.util.Arrays;
-import java.util.List;
+import junit.framework.TestCase;
public class InterceptableDataContextTest extends TestCase {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/840aea41/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
index ce6e85c..8d18a5b 100644
--- a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
+++ b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
@@ -18,11 +18,12 @@
*/
package org.apache.metamodel.util;
-import junit.framework.TestCase;
+import java.io.FileInputStream;
+
import org.apache.metamodel.query.Query;
import org.apache.metamodel.schema.Table;
-import java.io.FileInputStream;
+import junit.framework.TestCase;
public class LegacyDeserializationObjectInputStreamTest extends TestCase {
[13/20] metamodel git commit: guava now in test scope of core
Posted by ka...@apache.org.
guava now in test scope of core
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/6234fb4a
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/6234fb4a
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/6234fb4a
Branch: refs/heads/master
Commit: 6234fb4ab7fbf53c58b174e58c2435bb8079b54a
Parents: 056d4d1
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Fri Jul 28 18:27:34 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Fri Jul 28 18:27:34 2017 +0200
----------------------------------------------------------------------
core/pom.xml | 1 +
core/src/main/java/org/apache/metamodel/MetaModelHelper.java | 1 -
csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java | 4 ++--
csv/src/main/java/org/apache/metamodel/csv/CsvTable.java | 3 +--
.../java/org/apache/metamodel/csv/SingleLineCsvRowTest.java | 6 ++++--
.../apache/metamodel/salesforce/SalesforceDataSetTest.java | 7 ++-----
6 files changed, 10 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/6234fb4a/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 4add6ad..390f5f8 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -30,6 +30,7 @@ under the License.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
http://git-wip-us.apache.org/repos/asf/metamodel/blob/6234fb4a/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/MetaModelHelper.java b/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
index ae87083..4f0a8dd 100644
--- a/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
+++ b/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
@@ -31,7 +31,6 @@ import java.util.Map.Entry;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import com.google.common.collect.Lists;
import org.apache.metamodel.data.CachingDataSetHeader;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetHeader;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/6234fb4a/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 6c9a01e..28a9812 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java
@@ -18,11 +18,11 @@
*/
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.Collections;
import java.util.List;
final class CsvSchema extends AbstractSchema {
@@ -62,6 +62,6 @@ final class CsvSchema extends AbstractSchema {
if (_table == null) {
return new ArrayList<>();
}
- return Lists.newArrayList(_table);
+ return Collections.singletonList(_table);
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/6234fb4a/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 c786e70..41b7593 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java
@@ -21,7 +21,6 @@ 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;
@@ -147,7 +146,7 @@ final class CsvTable extends AbstractTable {
@Override
public Collection<Relationship> getRelationships() {
- return Lists.newArrayList();
+ return Collections.emptyList();
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/6234fb4a/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 0686cab..28c640f 100644
--- a/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java
+++ b/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvRowTest.java
@@ -22,9 +22,9 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.util.ArrayList;
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;
@@ -37,7 +37,9 @@ public class SingleLineCsvRowTest {
@Test
public void testSerialize() throws Exception {
- final List<Column> columns = Lists.newArrayList( new MutableColumn("1"), new MutableColumn("2"));
+ final List<Column> columns = new ArrayList<>();
+ columns.add(new MutableColumn("1"));
+ columns.add(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/6234fb4a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
----------------------------------------------------------------------
diff --git a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java b/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
index a16cf13..2e4c2c6 100644
--- a/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
+++ b/salesforce/src/test/java/org/apache/metamodel/salesforce/SalesforceDataSetTest.java
@@ -18,21 +18,18 @@
*/
package org.apache.metamodel.salesforce;
-import com.google.common.collect.Lists;
import com.sforce.soap.partner.QueryResult;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.bind.TypeMapper;
import com.sforce.ws.parser.PullParserException;
import com.sforce.ws.parser.XmlInputStream;
import org.apache.metamodel.data.Row;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.ColumnType;
import org.apache.metamodel.schema.MutableColumn;
import org.junit.Test;
import java.io.IOException;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -44,7 +41,7 @@ public class SalesforceDataSetTest {
QueryResult qr = queryResult("/result/double-value.xml");
MutableColumn version = new MutableColumn("Version", ColumnType.DOUBLE);
- SalesforceDataSet dataSet = new SalesforceDataSet(Lists.newArrayList(version), qr, null);
+ SalesforceDataSet dataSet = new SalesforceDataSet(Collections.singletonList(version), qr, null);
List<Row> rows = dataSet.toRows();
assertEquals(5386.21, rows.get(0).getValue(version));
[12/20] metamodel git commit: removed unnecessary toArray conversion
Posted by ka...@apache.org.
removed unnecessary toArray conversion
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/056d4d18
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/056d4d18
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/056d4d18
Branch: refs/heads/master
Commit: 056d4d18a9284c5f037ed80e00d6c16fab0c25e1
Parents: 5a9d2d1
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Fri Jul 28 14:19:34 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Fri Jul 28 14:19:34 2017 +0200
----------------------------------------------------------------------
.../main/java/org/apache/metamodel/DeleteAndInsertBuilder.java | 2 +-
core/src/main/java/org/apache/metamodel/convert/Converters.java | 2 +-
.../main/java/org/apache/metamodel/xml/XmlDomDataContext.java | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/056d4d18/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java b/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
index 2227256..172432d 100644
--- a/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
@@ -105,7 +105,7 @@ public class DeleteAndInsertBuilder extends AbstractRowUpdationBuilder {
final List<FilterItem> whereItems = getWhereItems();
final DataSet dataSet = dc.query()
.from(table)
- .select(table.getColumns().toArray(new Column[table.getColumns().size()]))
+ .select(table.getColumns())
.where(whereItems).execute();
final List<Row> rows = dataSet.toRows();
return rows;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/056d4d18/core/src/main/java/org/apache/metamodel/convert/Converters.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/convert/Converters.java b/core/src/main/java/org/apache/metamodel/convert/Converters.java
index 97b4e65..f0859bb 100644
--- a/core/src/main/java/org/apache/metamodel/convert/Converters.java
+++ b/core/src/main/java/org/apache/metamodel/convert/Converters.java
@@ -190,7 +190,7 @@ public final class Converters {
detectors.put(column, new ColumnTypeDetector());
}
- Query query = dataContext.query().from(table).select(columns.toArray(new Column[columns.size()])).toQuery();
+ Query query = dataContext.query().from(table).select(columns).toQuery();
if (sampleSize > 0 && sampleSize != Integer.MAX_VALUE) {
query.setMaxRows(sampleSize);
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/056d4d18/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
index ad8181c..cfc3686 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
@@ -533,8 +533,8 @@ public class XmlDomDataContext extends QueryPostprocessDataContext {
}
Query q = new Query();
- q.select(primaryColumns.toArray(new Column[primaryColumns.size()]));
- q.select(foreignColumns.toArray(new Column[foreignColumns.size()]));
+ q.select(primaryColumns);
+ q.select(foreignColumns);
q.from(new FromItem(JoinType.LEFT, relationship));
if (logger.isDebugEnabled()) {
logger.debug("Setting table data for '{}' to query result: {}", primaryTableName, q.toString());
[20/20] metamodel git commit: METAMODEL-7: Updated CHANGES.md
Posted by ka...@apache.org.
METAMODEL-7: Updated CHANGES.md
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/57e48be2
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/57e48be2
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/57e48be2
Branch: refs/heads/master
Commit: 57e48be23844537690bdd6191ceb78adb4266e92
Parents: c4acebd
Author: Kasper Sørensen <i....@gmail.com>
Authored: Sun Aug 6 21:36:28 2017 -0700
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Sun Aug 6 21:36:28 2017 -0700
----------------------------------------------------------------------
CHANGES.md | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/57e48be2/CHANGES.md
----------------------------------------------------------------------
diff --git a/CHANGES.md b/CHANGES.md
index f5cb59a..8992c3d 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,7 @@
### Apache MetaModel 5.0
* [METAMODEL-6] - Added update summary containing information about changes on returning UpdateableDataContext.executeUpdate(..)
+ * [METAMODEL-7] - Applied collections, lists etc. instead of arrays in the MetaModel API.
* [METAMODEL-63] - Added UnionDataSet, a general purpose utility for doing client-side unions from other queries or data sets.
* [METAMODEL-222] - Added support for Java 8 lambdas, removed support for Java 7.
* [METAMODEL-1087] - Removed deprecated APIs from MetaModel's codebase.
[09/20] metamodel git commit: removing the getMutableTables and
casting instead
Posted by ka...@apache.org.
removing the getMutableTables and casting instead
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/dd079994
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/dd079994
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/dd079994
Branch: refs/heads/master
Commit: dd07999449168f2f767e68b75d90943e38028eab
Parents: 7f76973
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Fri Jul 28 12:16:07 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Fri Jul 28 12:16:07 2017 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/metamodel/schema/MutableSchema.java | 4 ----
.../metamodel/couchdb/CouchDbSimpleTableDefSchemaBuilder.java | 4 ++--
jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java | 3 ++-
3 files changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/dd079994/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 f01b5c0..1dbc0c0 100644
--- a/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/MutableSchema.java
@@ -68,10 +68,6 @@ 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();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/dd079994/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 97e0f8b..c96120a 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,8 @@ public class CouchDbSimpleTableDefSchemaBuilder extends SimpleTableDefSchemaBuil
@Override
public MutableSchema build() {
MutableSchema schema = super.build();
- for (MutableTable table : schema.getMutableTables()) {
- CouchDbTableCreationBuilder.addMandatoryColumns(table);
+ for (Table table : schema.getTables()) {
+ CouchDbTableCreationBuilder.addMandatoryColumns((MutableTable) table);
}
return schema;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/dd079994/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
index 0dc0381..ccac3f8 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcSchema.java
@@ -24,6 +24,7 @@ import java.sql.Connection;
import org.apache.metamodel.schema.MutableSchema;
import org.apache.metamodel.schema.MutableTable;
import org.apache.metamodel.schema.Schema;
+import org.apache.metamodel.schema.Table;
/**
* Schema implementation for JDBC data contexts
@@ -59,7 +60,7 @@ final class JdbcSchema extends MutableSchema {
}
public Schema toSerializableForm() {
- for (MutableTable table : getMutableTables()) {
+ for (Table table : getTables()) {
table.getColumns();
table.getIndexedColumns();
table.getPrimaryKeys();
[10/20] metamodel git commit: include call to loading facilities
Posted by ka...@apache.org.
include call to loading facilities
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/44571b97
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/44571b97
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/44571b97
Branch: refs/heads/master
Commit: 44571b97562d593f5a2ac7748179464f906b269d
Parents: dd07999
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Fri Jul 28 12:16:28 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Fri Jul 28 12:16:28 2017 +0200
----------------------------------------------------------------------
.../main/java/org/apache/metamodel/schema/MutableTable.java | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/44571b97/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableTable.java b/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
index 0b3475c..8678085 100644
--- a/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
+++ b/core/src/main/java/org/apache/metamodel/schema/MutableTable.java
@@ -102,7 +102,8 @@ public class MutableTable extends AbstractTable implements Serializable {
@Override
public List<Column> getColumns() {
- return Collections.unmodifiableList(_columns);
+ List<Column> columns = getColumnsInternal();
+ return Collections.unmodifiableList(columns);
}
public MutableTable setColumns(Column... columns) {
@@ -158,7 +159,9 @@ public class MutableTable extends AbstractTable implements Serializable {
@Override
public List<Relationship> getRelationships() {
- return Collections.unmodifiableList(_relationships);
+ //init relationships
+ getRelationshipsInternal();
+ return Collections.unmodifiableList(_relationships);
}
/**
[15/20] metamodel git commit: previously forgotten
Posted by ka...@apache.org.
previously forgotten
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/725e2102
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/725e2102
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/725e2102
Branch: refs/heads/master
Commit: 725e2102b439bbd323a44d1f6e2efb2720371b86
Parents: e387a5a
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Wed Aug 2 15:05:33 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Wed Aug 2 15:05:33 2017 +0200
----------------------------------------------------------------------
core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/725e2102/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java b/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
index 4e5a569..b48f14b 100644
--- a/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
@@ -25,7 +25,6 @@ import java.util.Set;
import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
-import org.apache.metamodel.util.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
[14/20] metamodel git commit: organized the imports
Posted by ka...@apache.org.
organized the imports
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/e387a5ae
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/e387a5ae
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/e387a5ae
Branch: refs/heads/master
Commit: e387a5ae62b500b467fcdae3cac0513af57fc920
Parents: 6234fb4
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Wed Aug 2 14:39:31 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Wed Aug 2 14:39:31 2017 +0200
----------------------------------------------------------------------
.../org/apache/metamodel/AbstractDataContext.java | 13 ++++++-------
.../org/apache/metamodel/CompositeDataContext.java | 15 +++++++++++----
.../main/java/org/apache/metamodel/DataContext.java | 1 -
.../org/apache/metamodel/convert/Converters.java | 13 ++++++++-----
.../org/apache/metamodel/data/AbstractDataSet.java | 8 +++-----
.../apache/metamodel/data/CachingDataSetHeader.java | 7 +++----
.../org/apache/metamodel/data/DataSetTableModel.java | 1 -
.../apache/metamodel/data/ScalarFunctionDataSet.java | 5 ++---
.../apache/metamodel/data/SimpleDataSetHeader.java | 7 +++----
.../java/org/apache/metamodel/data/UnionDataSet.java | 6 +++---
.../intercept/InterceptableDataContext.java | 2 --
.../org/apache/metamodel/schema/AbstractSchema.java | 11 ++++++-----
.../org/apache/metamodel/schema/AbstractTable.java | 8 +++-----
.../metamodel/schema/ImmutableRelationship.java | 1 -
.../apache/metamodel/AbstractDataContextTest.java | 1 -
.../intercept/InterceptableDataContextTest.java | 7 +++----
.../LegacyDeserializationObjectInputStreamTest.java | 6 ++----
17 files changed, 53 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
index 4fd00a6..379b9ed 100644
--- a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
@@ -18,13 +18,6 @@
*/
package org.apache.metamodel;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.CompiledQuery;
import org.apache.metamodel.query.DefaultCompiledQuery;
@@ -36,6 +29,12 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
/**
* Abstract implementation of the DataContext interface. Provides convenient
* implementations of all trivial and datastore-independent methods.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/CompositeDataContext.java b/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
index 0ddc78c..f595b2e 100644
--- a/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
@@ -18,10 +18,6 @@
*/
package org.apache.metamodel;
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.FromItem;
import org.apache.metamodel.query.Query;
@@ -31,6 +27,17 @@ import org.apache.metamodel.schema.Table;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.function.Function;
+
/**
* DataContext for composite datacontexts. Composite DataContexts wrap several
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/DataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/DataContext.java b/core/src/main/java/org/apache/metamodel/DataContext.java
index ee56f1e..58bec4a 100644
--- a/core/src/main/java/org/apache/metamodel/DataContext.java
+++ b/core/src/main/java/org/apache/metamodel/DataContext.java
@@ -27,7 +27,6 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
-import java.util.Collection;
import java.util.List;
/**
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/convert/Converters.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/convert/Converters.java b/core/src/main/java/org/apache/metamodel/convert/Converters.java
index f0859bb..3c2ad00 100644
--- a/core/src/main/java/org/apache/metamodel/convert/Converters.java
+++ b/core/src/main/java/org/apache/metamodel/convert/Converters.java
@@ -18,12 +18,7 @@
*/
package org.apache.metamodel.convert;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
import org.apache.metamodel.DataContext;
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.UpdateableDataContext;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.Row;
@@ -38,6 +33,14 @@ import org.apache.metamodel.schema.Table;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.stream.Collectors;
+
/**
* This class consists of static methods for decorating {@link DataContext}s
* with {@link TypeConverter}s, which allows for automatic conversion of values
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/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 17699b5..39e5303 100644
--- a/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java
@@ -18,17 +18,15 @@
*/
package org.apache.metamodel.data;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.util.BaseObject;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
-import org.apache.metamodel.MetaModelHelper;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
-import org.apache.metamodel.util.BaseObject;
-
/**
* Abstract DataSet implementation. Provides convenient implementations of
* trivial method and reusable parts of non-trivial methods of a DataSet.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java b/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
index 76ce891..965dea3 100644
--- a/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
@@ -18,14 +18,13 @@
*/
package org.apache.metamodel.data;
-import java.util.Arrays;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.schema.Column;
+
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
-
/**
* Most common implementation of {@link DataSetHeader}. This implementation is
* 'caching' in the sense that index values of selectitems are cached in a map
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java b/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
index c67ff05..939b980 100644
--- a/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
+++ b/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
@@ -19,7 +19,6 @@
package org.apache.metamodel.data;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import javax.swing.table.AbstractTableModel;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java b/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
index 9d45946..d9e6e9c 100644
--- a/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
@@ -18,13 +18,12 @@
*/
package org.apache.metamodel.data;
-import java.util.Arrays;
-import java.util.List;
-
import org.apache.metamodel.query.ScalarFunction;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.util.CollectionUtils;
+import java.util.List;
+
/**
* A {@link DataSet} that enhances another {@link DataSet} with
* {@link ScalarFunction}s.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/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 71703d5..e3bf59d 100644
--- a/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java
@@ -18,15 +18,14 @@
*/
package org.apache.metamodel.data;
+import org.apache.metamodel.query.SelectItem;
+import org.apache.metamodel.schema.Column;
+
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
-import org.apache.metamodel.MetaModelHelper;
-import org.apache.metamodel.query.SelectItem;
-import org.apache.metamodel.schema.Column;
-
/**
* Simple implementation of {@link DataSetHeader} which does no magic to improve
* performance.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java b/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
index f13124c..f8ef9bf 100644
--- a/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
@@ -18,6 +18,9 @@
*/
package org.apache.metamodel.data;
+import org.apache.metamodel.query.InvokableQuery;
+import org.apache.metamodel.util.ImmutableRef;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.Objects;
@@ -25,9 +28,6 @@ import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
-import org.apache.metamodel.query.InvokableQuery;
-import org.apache.metamodel.util.ImmutableRef;
-
/**
* A {@link DataSet} that represents the union of two or more other data sets
*/
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/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 3076ca8..74af932 100644
--- a/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java
@@ -36,9 +36,7 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.update.RowUpdationBuilder;
-import org.apache.metamodel.util.HasNameMapper;
-import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java b/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
index df4a033..f8b8c1d 100644
--- a/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
@@ -18,15 +18,16 @@
*/
package org.apache.metamodel.schema;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import org.apache.metamodel.util.CollectionUtils;
import org.apache.metamodel.util.EqualsBuilder;
-import org.apache.metamodel.util.HasNameMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* Abstract implementation of the {@link Schema} interface. Implements most
* common and trivial methods.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java b/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
index 6e5b55f..4f11f50 100644
--- a/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
+++ b/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
@@ -18,15 +18,13 @@
*/
package org.apache.metamodel.schema;
-import java.util.*;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-
-import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.util.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.*;
+import java.util.stream.Collectors;
+
/**
* Abstract {@link Table} implementation. Includes most common/trivial methods.
*/
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java b/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
index b930359..7ca8fe9 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ImmutableRelationship.java
@@ -19,7 +19,6 @@
package org.apache.metamodel.schema;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java b/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
index c526df5..8c102af 100644
--- a/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java
@@ -21,7 +21,6 @@ package org.apache.metamodel;
import java.util.*;
import com.google.common.collect.Lists;
-import javafx.scene.Scene;
import junit.framework.TestCase;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.Query;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
index 647ace4..fe69b6c 100644
--- a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
+++ b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
@@ -18,11 +18,7 @@
*/
package org.apache.metamodel.intercept;
-import java.util.Arrays;
-import java.util.List;
-
import junit.framework.TestCase;
-
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MockUpdateableDataContext;
import org.apache.metamodel.data.DataSet;
@@ -32,6 +28,9 @@ import org.apache.metamodel.schema.MutableSchema;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.Arrays;
+import java.util.List;
+
public class InterceptableDataContextTest extends TestCase {
private final MockUpdateableDataContext delegateDataContext = new MockUpdateableDataContext();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/e387a5ae/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
index 7753539..ce6e85c 100644
--- a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
+++ b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
@@ -18,14 +18,12 @@
*/
package org.apache.metamodel.util;
-import java.io.FileInputStream;
-
import junit.framework.TestCase;
-
import org.apache.metamodel.query.Query;
-import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Table;
+import java.io.FileInputStream;
+
public class LegacyDeserializationObjectInputStreamTest extends TestCase {
/**
[03/20] metamodel git commit: first round of refactoring
Posted by ka...@apache.org.
first round of refactoring
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/ab5c9482
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/ab5c9482
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/ab5c9482
Branch: refs/heads/master
Commit: ab5c9482dd2efbb4cdc17402fddabfed05915ff2
Parents: 6f9e094
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Thu Jul 27 13:01:26 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Thu Jul 27 13:01:26 2017 +0200
----------------------------------------------------------------------
core/pom.xml | 4 +
.../apache/metamodel/AbstractDataContext.java | 48 ++++---
.../metamodel/AbstractUpdateCallback.java | 4 +-
.../apache/metamodel/CompositeDataContext.java | 21 +---
.../metamodel/CompositeQueryDelegate.java | 3 +-
.../java/org/apache/metamodel/DataContext.java | 7 +-
.../metamodel/DeleteAndInsertBuilder.java | 13 +-
.../org/apache/metamodel/MetaModelHelper.java | 59 +++++----
.../metamodel/QueryPostprocessDataContext.java | 55 ++++----
.../convert/ConvertedDataSetInterceptor.java | 9 +-
.../apache/metamodel/convert/Converters.java | 33 ++---
.../create/AbstractTableCreationBuilder.java | 18 +--
.../apache/metamodel/data/AbstractDataSet.java | 6 +-
.../org/apache/metamodel/data/AbstractRow.java | 3 +-
.../metamodel/data/AbstractRowBuilder.java | 9 +-
.../metamodel/data/CachingDataSetHeader.java | 3 -
.../java/org/apache/metamodel/data/DataSet.java | 2 +-
.../apache/metamodel/data/DataSetHeader.java | 3 +-
.../metamodel/data/DataSetTableModel.java | 8 +-
.../org/apache/metamodel/data/EmptyDataSet.java | 8 --
.../apache/metamodel/data/InMemoryDataSet.java | 2 +-
.../java/org/apache/metamodel/data/Row.java | 3 +-
.../metamodel/data/ScalarFunctionDataSet.java | 2 +-
.../metamodel/data/SimpleDataSetHeader.java | 9 +-
.../org/apache/metamodel/data/UnionDataSet.java | 2 +-
.../insert/AbstractRowInsertionBuilder.java | 8 +-
.../intercept/InterceptableDataContext.java | 30 +++--
.../org/apache/metamodel/query/FromItem.java | 14 +--
.../java/org/apache/metamodel/query/Query.java | 14 ++-
.../query/builder/GroupedQueryBuilderImpl.java | 2 +-
.../query/builder/InitFromBuilderImpl.java | 2 +-
.../query/builder/SatisfiedFromBuilder.java | 6 +-
.../builder/SatisfiedFromBuilderCallback.java | 5 +
.../metamodel/schema/AbstractRelationship.java | 32 ++---
.../apache/metamodel/schema/AbstractSchema.java | 44 +++----
.../apache/metamodel/schema/AbstractTable.java | 119 ++++++++----------
.../metamodel/schema/CompositeSchema.java | 22 ++--
.../metamodel/schema/ImmutableRelationship.java | 31 ++---
.../metamodel/schema/ImmutableSchema.java | 10 +-
.../apache/metamodel/schema/ImmutableTable.java | 12 +-
.../metamodel/schema/MutableRelationship.java | 25 ++--
.../apache/metamodel/schema/MutableSchema.java | 6 +-
.../apache/metamodel/schema/MutableTable.java | 11 +-
.../apache/metamodel/schema/Relationship.java | 5 +-
.../org/apache/metamodel/schema/Schema.java | 10 +-
.../java/org/apache/metamodel/schema/Table.java | 32 ++---
.../metamodel/AbstractDataContextTest.java | 24 ++--
.../metamodel/CompositeDataContextTest.java | 17 ++-
.../apache/metamodel/MetaModelHelperTest.java | 41 +++---
.../org/apache/metamodel/MetaModelTestCase.java | 14 +--
.../org/apache/metamodel/MockDataContext.java | 9 +-
.../metamodel/MockUpdateableDataContext.java | 13 +-
.../QueryPostprocessDataContextTest.java | 124 +++++++++----------
.../metamodel/convert/ConvertersTest.java | 4 +-
.../create/AbstractCreateTableBuilderTest.java | 14 +--
.../metamodel/data/DataSetTableModelTest.java | 3 +-
.../apache/metamodel/data/DefaultRowTest.java | 9 +-
.../java/org/apache/metamodel/data/RowTest.java | 17 ++-
.../apache/metamodel/data/UnionDataSetTest.java | 19 ++-
.../delete/AbstractRowDeletionCallbackTest.java | 2 +-
.../intercept/InterceptableDataContextTest.java | 25 ++--
.../apache/metamodel/query/FilterItemTest.java | 30 ++---
.../apache/metamodel/query/FromItemTest.java | 11 +-
.../org/apache/metamodel/query/QueryTest.java | 2 +-
.../apache/metamodel/query/SelectItemTest.java | 14 ++-
.../builder/GroupedQueryBuilderImplTest.java | 4 +-
.../query/builder/SyntaxExamplesTest.java | 6 +-
.../metamodel/schema/MutableTableTest.java | 19 +--
.../metamodel/schema/SchemaModelTest.java | 40 +++---
...acyDeserializationObjectInputStreamTest.java | 5 +-
.../metamodel/sugarcrm/SugarCrmDataContext.java | 2 +-
.../apache/metamodel/xml/XmlDomDataContext.java | 69 +++++------
.../apache/metamodel/xml/XmlSaxDataContext.java | 11 +-
.../metamodel/xml/XmlDomDataContextTest.java | 53 ++++----
.../metamodel/xml/XmlSaxDataContextTest.java | 10 +-
75 files changed, 705 insertions(+), 680 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 3af58c9..4add6ad 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -28,6 +28,10 @@ under the License.
<name>MetaModel core API</name>
<dependencies>
<dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
index a42d7f6..4fd00a6 100644
--- a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
@@ -45,7 +45,7 @@ public abstract class AbstractDataContext implements DataContext {
private static final String NULL_SCHEMA_NAME_TOKEN = "<metamodel.schema.name.null>";
private final ConcurrentMap<String, Schema> _schemaCache = new ConcurrentHashMap<String, Schema>();
private final Comparator<? super String> _schemaNameComparator = SchemaNameComparator.getInstance();
- private String[] _schemaNameCache;
+ private List<String> _schemaNameCache;
/**
* {@inheritDoc}
@@ -70,11 +70,10 @@ public abstract class AbstractDataContext implements DataContext {
* {@inheritDoc}
*/
@Override
- public final Schema[] getSchemas() throws MetaModelException {
- String[] schemaNames = getSchemaNames();
- Schema[] schemas = new Schema[schemaNames.length];
- for (int i = 0; i < schemaNames.length; i++) {
- final String name = schemaNames[i];
+ public final List<Schema> getSchemas() throws MetaModelException {
+ List<String> schemaNames = getSchemaNames();
+ List<Schema> schemas = new ArrayList<>();
+ for (final String name: schemaNames) {
final Schema schema = _schemaCache.get(getSchemaCacheKey(name));
if (schema == null) {
final Schema newSchema = getSchemaByName(name);
@@ -83,12 +82,12 @@ public abstract class AbstractDataContext implements DataContext {
}
final Schema existingSchema = _schemaCache.putIfAbsent(getSchemaCacheKey(name), newSchema);
if (existingSchema == null) {
- schemas[i] = newSchema;
+ schemas.add(newSchema);
} else {
- schemas[i] = existingSchema;
+ schemas.add(existingSchema);
}
} else {
- schemas[i] = schema;
+ schemas.add(schema);
}
}
return schemas;
@@ -105,12 +104,12 @@ public abstract class AbstractDataContext implements DataContext {
* m {@inheritDoc}
*/
@Override
- public final String[] getSchemaNames() throws MetaModelException {
+ public final List<String> getSchemaNames() throws MetaModelException {
if (_schemaNameCache == null) {
_schemaNameCache = getSchemaNamesInternal();
}
- String[] schemaNames = Arrays.copyOf(_schemaNameCache, _schemaNameCache.length);
- Arrays.sort(schemaNames, _schemaNameComparator);
+ List<String> schemaNames = new ArrayList<>(_schemaNameCache);
+ schemaNames.sort(_schemaNameComparator);
return schemaNames;
}
@@ -125,13 +124,12 @@ public abstract class AbstractDataContext implements DataContext {
result = getSchemaByName(defaultSchemaName);
}
if (result == null) {
- final Schema[] schemas = getSchemas();
- if (schemas.length == 1) {
- result = schemas[0];
+ final List<Schema> schemas = getSchemas();
+ if (schemas.size() == 1) {
+ result = schemas.get(0);
} else {
int highestTableCount = -1;
- for (int i = 0; i < schemas.length; i++) {
- final Schema schema = schemas[i];
+ for (Schema schema: schemas) {
String name = schema.getName();
if (schema != null) {
name = name.toLowerCase();
@@ -200,7 +198,7 @@ public abstract class AbstractDataContext implements DataContext {
if (name == null) {
schema = getSchemaByNameInternal(null);
} else {
- String[] schemaNames = getSchemaNames();
+ List<String> schemaNames = getSchemaNames();
for (String schemaName : schemaNames) {
if (name.equalsIgnoreCase(schemaName)) {
schema = getSchemaByNameInternal(name);
@@ -255,7 +253,7 @@ public abstract class AbstractDataContext implements DataContext {
}
Schema schema = null;
- final String[] schemaNames = getSchemaNames();
+ final List<String> schemaNames = getSchemaNames();
for (final String schemaName : schemaNames) {
if (schemaName == null) {
// search without schema name (some databases have only a single
@@ -333,7 +331,7 @@ public abstract class AbstractDataContext implements DataContext {
private final Column getColumn(final Schema schema, final String tableAndColumnPath) {
Table table = null;
String columnPath = tableAndColumnPath;
- final String[] tableNames = schema.getTableNames();
+ final List<String> tableNames = schema.getTableNames();
for (final String tableName : tableNames) {
if (tableName != null) {
// search case-sensitive
@@ -368,8 +366,8 @@ public abstract class AbstractDataContext implements DataContext {
}
}
- if (table == null && tableNames.length == 1) {
- table = schema.getTables()[0];
+ if (table == null && tableNames.size() == 1) {
+ table = schema.getTables().get(0);
}
if (table != null) {
@@ -403,7 +401,7 @@ public abstract class AbstractDataContext implements DataContext {
}
Schema schema = null;
- String[] schemaNames = getSchemaNames();
+ List<String> schemaNames = getSchemaNames();
for (String schemaName : schemaNames) {
if (schemaName == null) {
// there's an unnamed schema present.
@@ -452,7 +450,7 @@ public abstract class AbstractDataContext implements DataContext {
/**
* Tokenizes a path for a table or a column.
*
- * @param tableName
+ * @param path
* @param expectedParts
* @return
*/
@@ -545,7 +543,7 @@ public abstract class AbstractDataContext implements DataContext {
*
* @return an array of schema names.
*/
- protected abstract String[] getSchemaNamesInternal();
+ protected abstract List<String> getSchemaNamesInternal();
/**
* Gets the name of the default schema.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/AbstractUpdateCallback.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/AbstractUpdateCallback.java b/core/src/main/java/org/apache/metamodel/AbstractUpdateCallback.java
index a1c2f1a..4ff7279 100644
--- a/core/src/main/java/org/apache/metamodel/AbstractUpdateCallback.java
+++ b/core/src/main/java/org/apache/metamodel/AbstractUpdateCallback.java
@@ -60,7 +60,7 @@ public abstract class AbstractUpdateCallback implements UpdateCallback {
final Table table = schema.getTableByName(tableName);
if (table == null) {
throw new IllegalArgumentException("Nu such table '" + tableName + "' found in schema: " + schema
- + ". Available tables are: " + Arrays.toString(schema.getTableNames()));
+ + ". Available tables are: " + Arrays.toString(schema.getTableNames().toArray()));
}
return dropTable(table);
}
@@ -82,7 +82,7 @@ public abstract class AbstractUpdateCallback implements UpdateCallback {
final Table table = schema.getTableByName(tableName);
if (table == null) {
throw new IllegalArgumentException("Nu such table '" + tableName + "' found in schema: " + schema
- + ". Available tables are: " + Arrays.toString(schema.getTableNames()));
+ + ". Available tables are: " + Arrays.toString(schema.getTableNames().toArray()));
}
return table;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/CompositeDataContext.java b/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
index 8612a51..0ddc78c 100644
--- a/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/CompositeDataContext.java
@@ -18,16 +18,9 @@
*/
package org.apache.metamodel;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.function.Function;
+import java.util.stream.Collectors;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.FromItem;
@@ -178,10 +171,10 @@ public class CompositeDataContext extends AbstractDataContext {
}
@Override
- public String[] getSchemaNamesInternal() throws MetaModelException {
- Set<String> set = new HashSet<String>();
+ public List<String> getSchemaNamesInternal() throws MetaModelException {
+ Set<String> set = new TreeSet<>();
for (DataContext dc : _delegates) {
- String[] schemaNames = dc.getSchemaNames();
+ List<String> schemaNames = dc.getSchemaNames();
for (String name : schemaNames) {
if (!MetaModelHelper.isInformationSchema(name)) {
// we skip information schemas, since they're anyways going
@@ -190,9 +183,7 @@ public class CompositeDataContext extends AbstractDataContext {
}
}
}
- String[] result = set.toArray(new String[set.size()]);
- Arrays.sort(result);
- return result;
+ return new ArrayList<>(set);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/CompositeQueryDelegate.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/CompositeQueryDelegate.java b/core/src/main/java/org/apache/metamodel/CompositeQueryDelegate.java
index d3e1a04..8402695 100644
--- a/core/src/main/java/org/apache/metamodel/CompositeQueryDelegate.java
+++ b/core/src/main/java/org/apache/metamodel/CompositeQueryDelegate.java
@@ -18,6 +18,7 @@
*/
package org.apache.metamodel;
+import java.util.List;
import java.util.function.Function;
import org.apache.metamodel.data.DataSet;
@@ -35,7 +36,7 @@ final class CompositeQueryDelegate extends QueryPostprocessDelegate {
}
@Override
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns,
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns,
int maxRows) {
// find the appropriate datacontext to execute a simple
// table materialization query
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/DataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/DataContext.java b/core/src/main/java/org/apache/metamodel/DataContext.java
index 132ecfb..ee56f1e 100644
--- a/core/src/main/java/org/apache/metamodel/DataContext.java
+++ b/core/src/main/java/org/apache/metamodel/DataContext.java
@@ -27,6 +27,9 @@ import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
+import java.util.Collection;
+import java.util.List;
+
/**
* A DataContext represents the central entry point for interactions with
* datastores. The DataContext contains of the structure of data (in the form of
@@ -51,7 +54,7 @@ public interface DataContext {
* @throws MetaModelException
* if an error occurs retrieving the schema model
*/
- public Schema[] getSchemas() throws MetaModelException;
+ public List<Schema> getSchemas() throws MetaModelException;
/**
* Gets the names of all schemas within this DataContext.
@@ -60,7 +63,7 @@ public interface DataContext {
* @throws MetaModelException
* if an error occurs retrieving the schema model
*/
- public String[] getSchemaNames() throws MetaModelException;
+ public List<String> getSchemaNames() throws MetaModelException;
/**
* Gets the default schema of this DataContext.
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java b/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
index 1b4670b..2227256 100644
--- a/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/DeleteAndInsertBuilder.java
@@ -82,11 +82,11 @@ public class DeleteAndInsertBuilder extends AbstractRowUpdationBuilder {
* @return
*/
private Row update(final Row original) {
- SelectItem[] items = original.getSelectItems();
- Object[] values = new Object[items.length];
- for (int i = 0; i < items.length; i++) {
+ List<SelectItem> items = original.getSelectItems();
+ Object[] values = new Object[items.size()];
+ for (int i = 0; i < items.size(); i++) {
final Object value;
- Column column = items[i].getColumn();
+ Column column = items.get(i).getColumn();
if (isSet(column)) {
// use update statement's value
value = getValues()[i];
@@ -103,7 +103,10 @@ public class DeleteAndInsertBuilder extends AbstractRowUpdationBuilder {
final DataContext dc = _updateCallback.getDataContext();
final Table table = getTable();
final List<FilterItem> whereItems = getWhereItems();
- final DataSet dataSet = dc.query().from(table).select(table.getColumns()).where(whereItems).execute();
+ final DataSet dataSet = dc.query()
+ .from(table)
+ .select(table.getColumns().toArray(new Column[table.getColumns().size()]))
+ .where(whereItems).execute();
final List<Row> rows = dataSet.toRows();
return rows;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/MetaModelHelper.java b/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
index 09d47bc..ae87083 100644
--- a/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
+++ b/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
@@ -28,7 +28,10 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import com.google.common.collect.Lists;
import org.apache.metamodel.data.CachingDataSetHeader;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetHeader;
@@ -185,8 +188,8 @@ public final class MetaModelHelper {
List<SelectItem> selectItems = new ArrayList<SelectItem>();
for (DataSet dataSet : fromDataSets) {
- for (int i = 0; i < dataSet.getSelectItems().length; i++) {
- SelectItem item = dataSet.getSelectItems()[i];
+ for (int i = 0; i < dataSet.getSelectItems().size(); i++) {
+ SelectItem item = dataSet.getSelectItems().get(i);
selectItems.add(item);
}
}
@@ -195,7 +198,7 @@ public final class MetaModelHelper {
List<Object[]> data = new ArrayList<Object[]>();
for (int fromDataSetIndex = 0; fromDataSetIndex < fromDataSets.length; fromDataSetIndex++) {
DataSet fromDataSet = fromDataSets[fromDataSetIndex];
- SelectItem[] fromSelectItems = fromDataSet.getSelectItems();
+ List<SelectItem> fromSelectItems = fromDataSet.getSelectItems();
if (fromDataSetIndex == 0) {
while (fromDataSet.next()) {
Object[] values = fromDataSet.getRow().getValues();
@@ -220,7 +223,7 @@ public final class MetaModelHelper {
}
}
}
- selectItemOffset += fromSelectItems.length;
+ selectItemOffset += fromSelectItems.size();
}
if (data.isEmpty()) {
@@ -261,7 +264,7 @@ public final class MetaModelHelper {
}
public static DataSet getSelection(final List<SelectItem> selectItems, final DataSet dataSet) {
- final List<SelectItem> dataSetSelectItems = Arrays.asList(dataSet.getSelectItems());
+ final List<SelectItem> dataSetSelectItems = dataSet.getSelectItems();
// check if the selection is already the same
if (selectItems.equals(dataSetSelectItems)) {
@@ -295,18 +298,17 @@ public final class MetaModelHelper {
public static DataSet getGrouped(List<SelectItem> selectItems, DataSet dataSet,
Collection<GroupByItem> groupByItems) {
- return getGrouped(selectItems, dataSet, groupByItems.toArray(new GroupByItem[groupByItems.size()]));
+ return getGrouped(selectItems, dataSet, groupByItems);
}
- public static DataSet getGrouped(List<SelectItem> selectItems, DataSet dataSet, GroupByItem[] groupByItems) {
+ public static DataSet getGrouped(List<SelectItem> selectItems, DataSet dataSet, List<GroupByItem> groupByItems) {
DataSet result = dataSet;
- if (groupByItems != null && groupByItems.length > 0) {
+ if (groupByItems != null && groupByItems.size() > 0) {
Map<Row, Map<SelectItem, List<Object>>> uniqueRows = new HashMap<Row, Map<SelectItem, List<Object>>>();
- final SelectItem[] groupBySelects = new SelectItem[groupByItems.length];
- for (int i = 0; i < groupBySelects.length; i++) {
- groupBySelects[i] = groupByItems[i].getSelectItem();
- }
+ final List<SelectItem> groupBySelects = groupByItems.stream()
+ .map(gbi -> gbi.getSelectItem())
+ .collect(Collectors.toList());
final DataSetHeader groupByHeader = new CachingDataSetHeader(groupBySelects);
// Creates a list of SelectItems that have aggregate functions
@@ -663,12 +665,9 @@ public final class MetaModelHelper {
if (ds2 == null) {
throw new IllegalArgumentException("Right DataSet cannot be null");
}
- SelectItem[] si1 = ds1.getSelectItems();
- SelectItem[] si2 = ds2.getSelectItems();
- SelectItem[] selectItems = new SelectItem[si1.length + si2.length];
- System.arraycopy(si1, 0, selectItems, 0, si1.length);
- System.arraycopy(si2, 0, selectItems, si1.length, si2.length);
-
+ List<SelectItem> si1 = ds1.getSelectItems();
+ List<SelectItem> si2 = ds2.getSelectItems();
+ List<SelectItem> selectItems = Stream.concat(si1.stream(),si2.stream()).collect(Collectors.toList());
List<Row> resultRows = new ArrayList<Row>();
List<Row> ds2data = readDataSetFull(ds2);
if (ds2data.isEmpty()) {
@@ -695,7 +694,7 @@ public final class MetaModelHelper {
resultRows.addAll(carthesianRows);
} else {
Object[] values = ds1row.getValues();
- Object[] row = new Object[selectItems.length];
+ Object[] row = new Object[selectItems.size()];
System.arraycopy(values, 0, row, 0, values.length);
resultRows.add(new DefaultRow(header, row));
}
@@ -721,11 +720,11 @@ public final class MetaModelHelper {
* @return the right joined result dataset
*/
public static DataSet getRightJoin(DataSet ds1, DataSet ds2, FilterItem[] onConditions) {
- SelectItem[] ds1selects = ds1.getSelectItems();
- SelectItem[] ds2selects = ds2.getSelectItems();
- SelectItem[] leftOrderedSelects = new SelectItem[ds1selects.length + ds2selects.length];
- System.arraycopy(ds1selects, 0, leftOrderedSelects, 0, ds1selects.length);
- System.arraycopy(ds2selects, 0, leftOrderedSelects, ds1selects.length, ds2selects.length);
+ List<SelectItem> ds1selects = ds1.getSelectItems();
+ List<SelectItem> ds2selects = ds2.getSelectItems();
+ List<SelectItem> leftOrderedSelects = new ArrayList<>();
+ leftOrderedSelects.addAll(ds1selects);
+ leftOrderedSelects.addAll(ds2selects);
// We will reuse the left join algorithm (but switch the datasets
// around)
@@ -744,12 +743,12 @@ public final class MetaModelHelper {
}
public static DataSet getDistinct(DataSet dataSet) {
- SelectItem[] selectItems = dataSet.getSelectItems();
- GroupByItem[] groupByItems = new GroupByItem[selectItems.length];
- for (int i = 0; i < groupByItems.length; i++) {
- groupByItems[i] = new GroupByItem(selectItems[i]);
- }
- return getGrouped(Arrays.asList(selectItems), dataSet, groupByItems);
+ List<SelectItem> selectItems = dataSet.getSelectItems();
+ List<GroupByItem> groupByItems = selectItems.stream()
+ .map(GroupByItem::new)
+ .collect(Collectors.toList());
+
+ return getGrouped(selectItems, dataSet, groupByItems);
}
public static Table[] getTables(Column[] columns) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/QueryPostprocessDataContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/QueryPostprocessDataContext.java b/core/src/main/java/org/apache/metamodel/QueryPostprocessDataContext.java
index fac70d0..cbd97d3 100644
--- a/core/src/main/java/org/apache/metamodel/QueryPostprocessDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/QueryPostprocessDataContext.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.convert.ConvertedDataSetInterceptor;
import org.apache.metamodel.convert.Converters;
@@ -366,11 +367,11 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
if (selectItems == null || selectItems.isEmpty()) {
// add any column (typically this occurs because of COUNT(*)
// queries)
- Column[] columns = table.getColumns();
- if (columns.length == 0) {
+ List<Column> columns = table.getColumns();
+ if (columns.size() == 0) {
logger.warn("Queried table has no columns: {}", table);
} else {
- selectItems.add(new SelectItem(columns[0]));
+ selectItems.add(new SelectItem(columns.get(0)));
}
}
@@ -442,10 +443,10 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
}
@Override
- protected final String[] getSchemaNamesInternal() throws MetaModelException {
- final String[] schemaNames = new String[2];
- schemaNames[0] = INFORMATION_SCHEMA_NAME;
- schemaNames[1] = getMainSchemaName();
+ protected final List<String> getSchemaNamesInternal() throws MetaModelException {
+ final List<String> schemaNames = new ArrayList<>();
+ schemaNames.add(INFORMATION_SCHEMA_NAME);
+ schemaNames.add(getMainSchemaName());
return schemaNames;
}
@@ -527,9 +528,11 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
private DataSet materializeInformationSchemaTable(final Table table, final List<SelectItem> selectItems) {
final String tableName = table.getName();
- final SelectItem[] columnSelectItems = MetaModelHelper.createSelectItems(table.getColumns());
+ final List<SelectItem> columnSelectItems = table.getColumns().stream()
+ .map(SelectItem::new)
+ .collect(Collectors.toList());
final SimpleDataSetHeader header = new SimpleDataSetHeader(columnSelectItems);
- final Table[] tables = getDefaultSchema().getTables();
+ final List<Table> tables = getDefaultSchema().getTables();
final List<Row> data = new ArrayList<Row>();
if ("tables".equals(tableName)) {
// "tables" columns: name, type, num_columns, remarks
@@ -558,13 +561,13 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
// "relationships" columns: primary_table, primary_column,
// foreign_table, foreign_column
for (Relationship r : getDefaultSchema().getRelationships()) {
- Column[] primaryColumns = r.getPrimaryColumns();
- Column[] foreignColumns = r.getForeignColumns();
+ List<Column> primaryColumns = r.getPrimaryColumns();
+ List<Column> foreignColumns = r.getForeignColumns();
Table pTable = r.getPrimaryTable();
Table fTable = r.getForeignTable();
- for (int i = 0; i < primaryColumns.length; i++) {
- Column pColumn = primaryColumns[i];
- Column fColumn = foreignColumns[i];
+ for (int i = 0; i < primaryColumns.size(); i++) {
+ Column pColumn = primaryColumns.get(i);
+ Column fColumn = foreignColumns.get(i);
data.add(new DefaultRow(header,
new Object[] { pTable.getName(), pColumn.getName(), fTable.getName(), fColumn.getName() }));
}
@@ -628,11 +631,11 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
DataSet dataSet;
if (whereItems.isEmpty()) {
// paging is pushed down to materializeMainSchemaTable
- dataSet = materializeMainSchemaTable(table, workingSelectItems, firstRow, maxRows);
+ dataSet = materializeMainSchemaTableSelect(table, workingSelectItems, firstRow, maxRows);
dataSet = MetaModelHelper.getSelection(selectItems, dataSet);
} else {
// do not push down paging, first we have to apply filtering
- dataSet = materializeMainSchemaTable(table, workingSelectItems, 1, -1);
+ dataSet = materializeMainSchemaTableSelect(table, workingSelectItems, 1, -1);
dataSet = MetaModelHelper.getFiltered(dataSet, whereItems);
dataSet = MetaModelHelper.getPaged(dataSet, firstRow, maxRows);
dataSet = MetaModelHelper.getSelection(selectItems, dataSet);
@@ -643,19 +646,19 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
/**
* Executes a simple one-table query against a table in the main schema of
* the subclasses of this class. This default implementation will delegate
- * to {@link #materializeMainSchemaTable(Table, Column[], int, int)}.
- *
+ * to {@link #materializeMainSchemaTable(Table, List, int, int)}.
+ *
* @param table
* @param selectItems
* @param firstRow
* @param maxRows
* @return
*/
- protected DataSet materializeMainSchemaTable(Table table, List<SelectItem> selectItems, int firstRow, int maxRows) {
- Column[] columns = new Column[selectItems.size()];
- for (int i = 0; i < columns.length; i++) {
- columns[i] = selectItems.get(i).getColumn();
- }
+ protected DataSet materializeMainSchemaTableSelect(Table table, List<SelectItem> selectItems, int firstRow, int maxRows) {
+ List<Column> columns = selectItems.stream()
+ .map(si -> si.getColumn())
+ .collect(Collectors.toList());
+
DataSet dataSet = materializeMainSchemaTable(table, columns, firstRow, maxRows);
dataSet = MetaModelHelper.getSelection(selectItems, dataSet);
@@ -666,7 +669,7 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
/**
* Executes a simple one-table query against a table in the main schema of
* the subclasses of this class. This default implementation will delegate
- * to {@link #materializeMainSchemaTable(Table, Column[], int)} and apply a
+ * to {@link #materializeMainSchemaTable(Table, List, int)} and apply a
* {@link FirstRowDataSet} if necessary.
*
* @param table
@@ -675,7 +678,7 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
* @param maxRows
* @return
*/
- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int firstRow, int maxRows) {
+ protected DataSet materializeMainSchemaTable(Table table, List<Column> columns, int firstRow, int maxRows) {
final int rowsToMaterialize;
if (firstRow == 1) {
rowsToMaterialize = maxRows;
@@ -702,5 +705,5 @@ public abstract class QueryPostprocessDataContext extends AbstractDataContext im
* wanted.
* @return a dataset with the raw table/column content.
*/
- protected abstract DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows);
+ protected abstract DataSet materializeMainSchemaTable(Table table, List<Column> columns, int maxRows);
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/convert/ConvertedDataSetInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/convert/ConvertedDataSetInterceptor.java b/core/src/main/java/org/apache/metamodel/convert/ConvertedDataSetInterceptor.java
index 082d121..4ff00e8 100644
--- a/core/src/main/java/org/apache/metamodel/convert/ConvertedDataSetInterceptor.java
+++ b/core/src/main/java/org/apache/metamodel/convert/ConvertedDataSetInterceptor.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.convert;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.metamodel.data.DataSet;
@@ -67,10 +68,10 @@ public class ConvertedDataSetInterceptor implements DataSetInterceptor, HasReadT
}
boolean hasConverter = false;
- SelectItem[] selectItems = dataSet.getSelectItems();
- TypeConverter<?, ?>[] converterArray = new TypeConverter[selectItems.length];
- for (int i = 0; i < selectItems.length; i++) {
- SelectItem selectItem = selectItems[i];
+ List<SelectItem> selectItems = dataSet.getSelectItems();
+ TypeConverter<?, ?>[] converterArray = new TypeConverter[selectItems.size()];
+ for (int i = 0; i < selectItems.size(); i++) {
+ SelectItem selectItem = selectItems.get(i);
Column column = selectItem.getColumn();
if (column != null && selectItem.getAggregateFunction() == null) {
TypeConverter<?, ?> converter = converters.get(column);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/convert/Converters.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/convert/Converters.java b/core/src/main/java/org/apache/metamodel/convert/Converters.java
index 1be0e13..142987e 100644
--- a/core/src/main/java/org/apache/metamodel/convert/Converters.java
+++ b/core/src/main/java/org/apache/metamodel/convert/Converters.java
@@ -18,10 +18,9 @@
*/
package org.apache.metamodel.convert;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
-import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.MetaModelHelper;
@@ -136,15 +135,19 @@ public final class Converters {
* used (eg. with the {@link #addTypeConverters(DataContext, Map)}
* method) to decorate the DataContext with type converters.
*/
- public static Map<Column, TypeConverter<?, ?>> autoDetectConverters(DataContext dataContext, Column[] columns,
+ public static Map<Column, TypeConverter<?, ?>> autoDetectConverters(DataContext dataContext, final List<Column> columns,
int sampleSize) {
- columns = MetaModelHelper.getColumnsBySuperType(columns, SuperColumnType.LITERAL_TYPE);
final Map<Column, TypeConverter<?, ?>> result = new HashMap<Column, TypeConverter<?, ?>>();
- Table[] tables = MetaModelHelper.getTables(columns);
- for (Table table : tables) {
- Column[] tableColumns = MetaModelHelper.getTableColumns(table, columns);
- autoDetectConvertersInternally(dataContext, table, tableColumns, sampleSize, result);
- }
+ columns.stream()
+ .filter(col -> col.getType() != null)
+ .filter(col -> col.getType().getSuperType().equals(SuperColumnType.LITERAL_TYPE))
+ // group by table
+ .collect(Collectors.toMap(Column::getTable,Arrays::asList))
+ //and detect it
+ .forEach((tab, cols) ->{
+ autoDetectConvertersInternally(dataContext,tab,cols,sampleSize,result);
+ });
+
return result;
}
@@ -172,14 +175,14 @@ public final class Converters {
public static Map<Column, TypeConverter<?, ?>> autoDetectConverters(DataContext dataContext, Table table,
int sampleSize) {
final Map<Column, TypeConverter<?, ?>> result = new HashMap<Column, TypeConverter<?, ?>>();
- Column[] columns = table.getColumnsOfSuperType(SuperColumnType.LITERAL_TYPE);
+ List<Column> columns = table.getColumnsOfSuperType(SuperColumnType.LITERAL_TYPE);
autoDetectConvertersInternally(dataContext, table, columns, sampleSize, result);
return result;
}
- private static void autoDetectConvertersInternally(DataContext dataContext, Table table, Column[] columns,
+ private static void autoDetectConvertersInternally(DataContext dataContext, Table table, List<Column> columns,
int sampleSize, Map<Column, TypeConverter<?, ?>> result) {
- if (columns == null || columns.length == 0) {
+ if (columns == null || columns.size() == 0) {
return;
}
@@ -188,7 +191,7 @@ public final class Converters {
detectors.put(column, new ColumnTypeDetector());
}
- Query query = dataContext.query().from(table).select(columns).toQuery();
+ Query query = dataContext.query().from(table).select(columns.toArray(new Column[columns.size()])).toQuery();
if (sampleSize > 0 && sampleSize != Integer.MAX_VALUE) {
query.setMaxRows(sampleSize);
}
@@ -306,7 +309,7 @@ public final class Converters {
*/
protected static <RB extends RowBuilder<?>> RB convertRow(RB rowBuilder, Map<Column, TypeConverter<?, ?>> converters) {
Table table = rowBuilder.getTable();
- Column[] columns = table.getColumns();
+ List<Column> columns = table.getColumns();
Row row = rowBuilder.toRow();
for (Column column : columns) {
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/create/AbstractTableCreationBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/create/AbstractTableCreationBuilder.java b/core/src/main/java/org/apache/metamodel/create/AbstractTableCreationBuilder.java
index 401be9f..1833120 100644
--- a/core/src/main/java/org/apache/metamodel/create/AbstractTableCreationBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/create/AbstractTableCreationBuilder.java
@@ -29,6 +29,8 @@ import org.apache.metamodel.schema.TableType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.List;
+
/**
* Abstract {@link TableCreationBuilder} implementation, provided as convenience
* for {@link TableCreatable} implementations. Handles all the building
@@ -72,7 +74,7 @@ public abstract class AbstractTableCreationBuilder<U extends UpdateCallback> imp
@Override
public TableCreationBuilder like(Table table) {
logger.debug("like({})", table);
- Column[] columns = table.getColumns();
+ List<Column> columns = table.getColumns();
for (Column column : columns) {
withColumn(column.getName()).like(column);
}
@@ -101,12 +103,12 @@ public abstract class AbstractTableCreationBuilder<U extends UpdateCallback> imp
sb.append("CREATE TABLE ");
sb.append(_table.getQualifiedLabel());
sb.append(" (");
- Column[] columns = _table.getColumns();
- for (int i = 0; i < columns.length; i++) {
+ List<Column> columns = _table.getColumns();
+ for (int i = 0; i < columns.size(); i++) {
if (i != 0) {
sb.append(',');
}
- Column column = columns[i];
+ Column column = columns.get(i);
sb.append(column.getName());
ColumnType type = column.getType();
if (type != null) {
@@ -125,15 +127,15 @@ public abstract class AbstractTableCreationBuilder<U extends UpdateCallback> imp
}
}
boolean primaryKeyExists = false;
- for(int i = 0 ; i < columns.length ; i++) {
- if(columns[i].isPrimaryKey()) {
+ for(int i = 0 ; i < columns.size() ; i++) {
+ if(columns.get(i).isPrimaryKey()) {
if(!primaryKeyExists) {
sb.append(", PRIMARY KEY(");
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
primaryKeyExists = true;
} else {
sb.append(",");
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
}
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 f616ddc..6e64446 100644
--- a/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/AbstractDataSet.java
@@ -56,7 +56,7 @@ public abstract class AbstractDataSet extends BaseObject implements DataSet {
if (dataSet instanceof AbstractDataSet) {
_header = ((AbstractDataSet) dataSet).getHeader();
} else {
- _header = new CachingDataSetHeader(Arrays.asList(dataSet.getSelectItems()));
+ _header = new CachingDataSetHeader(dataSet.getSelectItems());
}
}
@@ -72,7 +72,7 @@ public abstract class AbstractDataSet extends BaseObject implements DataSet {
* {@inheritDoc}
*/
@Override
- public SelectItem[] getSelectItems() {
+ public List<SelectItem> getSelectItems() {
return getHeader().getSelectItems();
}
@@ -118,7 +118,7 @@ public abstract class AbstractDataSet extends BaseObject implements DataSet {
*/
@Override
public String toString() {
- return "DataSet[selectItems=" + Arrays.toString(getSelectItems()) + "]";
+ return "DataSet[selectItems=" + Arrays.toString(getSelectItems().toArray()) + "]";
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/AbstractRow.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/AbstractRow.java b/core/src/main/java/org/apache/metamodel/data/AbstractRow.java
index 9c931f1..f438a64 100644
--- a/core/src/main/java/org/apache/metamodel/data/AbstractRow.java
+++ b/core/src/main/java/org/apache/metamodel/data/AbstractRow.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.data;
import java.util.Arrays;
+import java.util.List;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
@@ -122,7 +123,7 @@ public abstract class AbstractRow implements Cloneable, Row {
}
@Override
- public final SelectItem[] getSelectItems() {
+ public final List<SelectItem> getSelectItems() {
return getHeader().getSelectItems();
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/AbstractRowBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/AbstractRowBuilder.java b/core/src/main/java/org/apache/metamodel/data/AbstractRowBuilder.java
index fef04c9..144017c 100644
--- a/core/src/main/java/org/apache/metamodel/data/AbstractRowBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/data/AbstractRowBuilder.java
@@ -19,7 +19,10 @@
package org.apache.metamodel.data;
import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Table;
@@ -37,8 +40,8 @@ public abstract class AbstractRowBuilder<RB extends RowBuilder<?>> implements Ro
this(table.getColumns());
}
- public AbstractRowBuilder(Column[] columns) {
- _columns = columns;
+ public AbstractRowBuilder(List<Column> columns) {
+ _columns = columns.toArray(new Column[columns.size()]);
_explicitNulls = new boolean[_columns.length];
_values = new Object[_columns.length];
_styles = new Style[_columns.length];
@@ -68,7 +71,7 @@ public abstract class AbstractRowBuilder<RB extends RowBuilder<?>> implements Ro
@Override
public final Row toRow() {
- return new DefaultRow(new SimpleDataSetHeader(_columns), _values);
+ return new DefaultRow(new SimpleDataSetHeader(Arrays.stream(_columns).map(SelectItem::new).collect(Collectors.toList())), _values);
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java b/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
index 2c4b0c9..76ce891 100644
--- a/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/CachingDataSetHeader.java
@@ -46,9 +46,6 @@ public final class CachingDataSetHeader extends SimpleDataSetHeader implements D
super(items);
}
- public CachingDataSetHeader(SelectItem[] items) {
- this(Arrays.asList(items));
- }
@Override
public int indexOf(Column column) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/DataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/DataSet.java b/core/src/main/java/org/apache/metamodel/data/DataSet.java
index 993d408..fc277d0 100644
--- a/core/src/main/java/org/apache/metamodel/data/DataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/DataSet.java
@@ -35,7 +35,7 @@ public interface DataSet extends Closeable, Iterable<Row> {
/**
* @return the SelectItems that represent the columns of this DataSet
*/
- public SelectItem[] getSelectItems();
+ public List<SelectItem> getSelectItems();
/**
* Finds the index of a given SelectItem
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/DataSetHeader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/DataSetHeader.java b/core/src/main/java/org/apache/metamodel/data/DataSetHeader.java
index 79e8c6c..6113497 100644
--- a/core/src/main/java/org/apache/metamodel/data/DataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/DataSetHeader.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.data;
import java.io.Serializable;
+import java.util.List;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
@@ -29,7 +30,7 @@ import org.apache.metamodel.schema.Column;
*/
public interface DataSetHeader extends Serializable {
- public SelectItem[] getSelectItems();
+ public List<SelectItem> getSelectItems();
public int size();
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java b/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
index 7316c00..c67ff05 100644
--- a/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
+++ b/core/src/main/java/org/apache/metamodel/data/DataSetTableModel.java
@@ -39,7 +39,7 @@ public class DataSetTableModel extends AbstractTableModel {
private boolean _materialized;
private final List<Row> _materializedRows = new ArrayList<Row>();
private final DataSet _dataSet;
- private final SelectItem[] _selectItems;
+ private final List<SelectItem> _selectItems;
public DataSetTableModel(DataSet dataSet) {
_dataSet = dataSet;
@@ -49,7 +49,7 @@ public class DataSetTableModel extends AbstractTableModel {
@Override
public int hashCode() {
- return Arrays.hashCode(_selectItems) + _materializedRows.hashCode();
+ return _selectItems.hashCode() + _materializedRows.hashCode();
}
@Override
@@ -71,7 +71,7 @@ public class DataSetTableModel extends AbstractTableModel {
}
public int getColumnCount() {
- return _selectItems.length;
+ return _selectItems.size();
}
public int getRowCount() {
@@ -99,7 +99,7 @@ public class DataSetTableModel extends AbstractTableModel {
@Override
public String getColumnName(int column) {
- return _selectItems[column].getSuperQueryAlias(false);
+ return _selectItems.get(column).getSuperQueryAlias(false);
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 0849255..fd71be3 100644
--- a/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/EmptyDataSet.java
@@ -32,14 +32,6 @@ public final class EmptyDataSet extends AbstractDataSet {
super(header);
}
- public EmptyDataSet(SelectItem[] selectItems) {
- super(new SimpleDataSetHeader(selectItems));
- }
-
- public EmptyDataSet(Column[] columns) {
- super(new SimpleDataSetHeader(columns));
- }
-
public EmptyDataSet(List<SelectItem> selectItems) {
this(new SimpleDataSetHeader(selectItems));
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/InMemoryDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/InMemoryDataSet.java b/core/src/main/java/org/apache/metamodel/data/InMemoryDataSet.java
index a6b2d7e..88bf5ad 100644
--- a/core/src/main/java/org/apache/metamodel/data/InMemoryDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/InMemoryDataSet.java
@@ -55,7 +55,7 @@ public final class InMemoryDataSet extends AbstractDataSet {
+ " for this");
}
- final SelectItem[] selectItems = rows.get(0).getSelectItems();
+ final List<SelectItem> selectItems = rows.get(0).getSelectItems();
if (rows.size() > 3) {
// not that many records - caching will not have body to scale
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/Row.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/Row.java b/core/src/main/java/org/apache/metamodel/data/Row.java
index 65fc273..9f6f634 100644
--- a/core/src/main/java/org/apache/metamodel/data/Row.java
+++ b/core/src/main/java/org/apache/metamodel/data/Row.java
@@ -19,6 +19,7 @@
package org.apache.metamodel.data;
import java.io.Serializable;
+import java.util.List;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
@@ -96,7 +97,7 @@ public interface Row extends Serializable {
*
* @return
*/
- public SelectItem[] getSelectItems();
+ public List<SelectItem> getSelectItems();
/**
* Gets the values of the row, represented as an object array
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java b/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
index 64a7866..9d45946 100644
--- a/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/ScalarFunctionDataSet.java
@@ -36,7 +36,7 @@ public class ScalarFunctionDataSet extends AbstractDataSet implements WrappingDa
public ScalarFunctionDataSet(List<SelectItem> scalarFunctionSelectItemsToEvaluate, DataSet dataSet) {
super(CollectionUtils.concat(false, scalarFunctionSelectItemsToEvaluate,
- Arrays.<SelectItem> asList(dataSet.getSelectItems())));
+ dataSet.getSelectItems()));
_scalarFunctionSelectItemsToEvaluate = scalarFunctionSelectItemsToEvaluate;
_dataSet = dataSet;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 8f8a8a8..afc6226 100644
--- a/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java
+++ b/core/src/main/java/org/apache/metamodel/data/SimpleDataSetHeader.java
@@ -19,7 +19,9 @@
package org.apache.metamodel.data;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.query.SelectItem;
@@ -46,13 +48,10 @@ public class SimpleDataSetHeader implements DataSetHeader {
this(Arrays.asList(selectItems));
}
- public SimpleDataSetHeader(Column[] columns) {
- this(MetaModelHelper.createSelectItems(columns));
- }
@Override
- public final SelectItem[] getSelectItems() {
- return _items.toArray(new SelectItem[_items.size()]);
+ public final List<SelectItem> getSelectItems() {
+ return Collections.unmodifiableList(_items);
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java b/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
index 7962f56..f13124c 100644
--- a/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
+++ b/core/src/main/java/org/apache/metamodel/data/UnionDataSet.java
@@ -67,7 +67,7 @@ public class UnionDataSet extends AbstractDataSet implements WrappingDataSet {
return false;
}
_currentDataSet = _iterator.next().get();
- assert getHeader().size() == _currentDataSet.getSelectItems().length;
+ assert getHeader().size() == _currentDataSet.getSelectItems().size();
}
return true;
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java b/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java
index bc09f98..58c0da8 100644
--- a/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java
@@ -25,6 +25,8 @@ import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Table;
+import java.util.List;
+
/**
* Abstract implementation of the {@link RowInsertionBuilder} interface,
* provided as a convenience to {@link RowInsertable} implementations. Handles
@@ -53,9 +55,9 @@ public abstract class AbstractRowInsertionBuilder<U extends UpdateCallback> exte
@Override
public RowInsertionBuilder like(Row row) {
- SelectItem[] selectItems = row.getSelectItems();
- for (int i = 0; i < selectItems.length; i++) {
- SelectItem selectItem = selectItems[i];
+ List<SelectItem> selectItems = row.getSelectItems();
+ for (int i = 0; i < selectItems.size(); i++) {
+ SelectItem selectItem = selectItems.get(i);
Column column = selectItem.getColumn();
if (column != null) {
if (_table == column.getTable()) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/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 f8c74cb..1811e78 100644
--- a/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/intercept/InterceptableDataContext.java
@@ -38,6 +38,10 @@ import org.apache.metamodel.schema.Table;
import org.apache.metamodel.update.RowUpdationBuilder;
import org.apache.metamodel.util.HasNameMapper;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
public class InterceptableDataContext implements UpdateableDataContext {
private final DataContext _delegate;
@@ -189,27 +193,29 @@ public class InterceptableDataContext implements UpdateableDataContext {
}
@Override
- public Schema[] getSchemas() throws MetaModelException {
- Schema[] schemas = _delegate.getSchemas();
+ 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.length; i++) {
- schemas[i] = _schemaInterceptors.interceptAll(schemas[i]);
+ for (int i = 0; i < schemas.size(); i++) {
+ schemas.set(i, _schemaInterceptors.interceptAll(schemas.get(i)));
}
+ }else {
+ result = schemas;
}
- return schemas;
+ return result;
+
}
@Override
- public String[] getSchemaNames() throws MetaModelException {
+ public List<String> getSchemaNames() throws MetaModelException {
if (_schemaInterceptors.isEmpty()) {
return _delegate.getSchemaNames();
}
- Schema[] schemas = getSchemas();
- String[] schemaNames = new String[schemas.length];
- for (int i = 0; i < schemaNames.length; i++) {
- schemaNames[i] = new HasNameMapper().apply(schemas[i]);
- }
- return schemaNames;
+
+ return getSchemas().stream()
+ .map(schema -> schema.getName())
+ .collect(Collectors.toList());
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/query/FromItem.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/query/FromItem.java b/core/src/main/java/org/apache/metamodel/query/FromItem.java
index 392c0bf..63eac69 100644
--- a/core/src/main/java/org/apache/metamodel/query/FromItem.java
+++ b/core/src/main/java/org/apache/metamodel/query/FromItem.java
@@ -88,16 +88,16 @@ public class FromItem extends BaseObject implements QueryItem, Cloneable {
public FromItem(JoinType join, Relationship relationship) {
_join = join;
_leftSide = new FromItem(relationship.getPrimaryTable());
- Column[] columns = relationship.getPrimaryColumns();
- _leftOn = new SelectItem[columns.length];
- for (int i = 0; i < columns.length; i++) {
- _leftOn[i] = new SelectItem(columns[i]);
+ List<Column> columns = relationship.getPrimaryColumns();
+ _leftOn = new SelectItem[columns.size()];
+ for (int i = 0; i < columns.size(); i++) {
+ _leftOn[i] = new SelectItem(columns.get(i));
}
_rightSide = new FromItem(relationship.getForeignTable());
columns = relationship.getForeignColumns();
- _rightOn = new SelectItem[columns.length];
- for (int i = 0; i < columns.length; i++) {
- _rightOn[i] = new SelectItem(columns[i]);
+ _rightOn = new SelectItem[columns.size()];
+ for (int i = 0; i < columns.size(); i++) {
+ _rightOn[i] = new SelectItem(columns.get(i));
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/query/Query.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/query/Query.java b/core/src/main/java/org/apache/metamodel/query/Query.java
index 7dc9278..e29b7dd 100644
--- a/core/src/main/java/org/apache/metamodel/query/Query.java
+++ b/core/src/main/java/org/apache/metamodel/query/Query.java
@@ -92,6 +92,10 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
return select(selectItem);
}
+ public Query select(List<Column> columns){
+ return select(columns.toArray(new Column[columns.size()]));
+ }
+
public Query select(Column... columns) {
for (Column column : columns) {
SelectItem selectItem = new SelectItem(column);
@@ -164,7 +168,7 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
public Query selectAll(final FromItem fromItem) {
if (fromItem.getTable() != null) {
- final Column[] columns = fromItem.getTable().getColumns();
+ final List<Column> columns = fromItem.getTable().getColumns();
for (final Column column : columns) {
select(column, fromItem);
}
@@ -242,6 +246,14 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
return this;
}
+ public Query groupBy(List<Column> columns) {
+ for (Column column : columns) {
+ SelectItem selectItem = new SelectItem(column).setQuery(this);
+ _groupByClause.addItem(new GroupByItem(selectItem));
+ }
+ return this;
+ }
+
public Query orderBy(OrderByItem... items) {
_orderByClause.addItems(items);
return this;
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImpl.java b/core/src/main/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImpl.java
index d73ae8f..904b657 100644
--- a/core/src/main/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImpl.java
+++ b/core/src/main/java/org/apache/metamodel/query/builder/GroupedQueryBuilderImpl.java
@@ -198,7 +198,7 @@ final class GroupedQueryBuilderImpl extends BaseObject implements GroupedQueryBu
final Table table = fromItem.getTable();
if (table != null) {
logger.debug("Table available in FROM item: {}. Column names: {}", table, Arrays.toString(table
- .getColumnNames()));
+ .getColumnNames().toArray()));
}
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/query/builder/InitFromBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/query/builder/InitFromBuilderImpl.java b/core/src/main/java/org/apache/metamodel/query/builder/InitFromBuilderImpl.java
index 2585bea..9248db6 100644
--- a/core/src/main/java/org/apache/metamodel/query/builder/InitFromBuilderImpl.java
+++ b/core/src/main/java/org/apache/metamodel/query/builder/InitFromBuilderImpl.java
@@ -65,7 +65,7 @@ public final class InitFromBuilderImpl extends BaseObject implements InitFromBui
Table table = schema.getTableByName(tableName);
if (table == null) {
throw new IllegalArgumentException("Nu such table '" + tableName + "' found in schema: " + schema
- + ". Available tables are: " + Arrays.toString(schema.getTableNames()));
+ + ". Available tables are: " + Arrays.toString(schema.getTableNames().toArray()));
}
return from(table);
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilder.java b/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilder.java
index f1a706c..8984dca 100644
--- a/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilder.java
@@ -22,6 +22,8 @@ import org.apache.metamodel.query.FunctionType;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Table;
+import java.util.List;
+
/**
* Represents a builder where the FROM part is satisfied, ie. a SELECT clause is
* now buildable.
@@ -47,7 +49,9 @@ public interface SatisfiedFromBuilder {
public CountSelectBuilder<?> selectCount();
public SatisfiedSelectBuilder<?> select(Column... columns);
-
+
+ public SatisfiedSelectBuilder<?> select(List<Column> columns);
+
public SatisfiedSelectBuilder<?> selectAll();
public SatisfiedSelectBuilder<?> select(String selectExpression);
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilderCallback.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilderCallback.java b/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilderCallback.java
index 74831e9..4fb54ef 100644
--- a/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilderCallback.java
+++ b/core/src/main/java/org/apache/metamodel/query/builder/SatisfiedFromBuilderCallback.java
@@ -150,6 +150,11 @@ abstract class SatisfiedFromBuilderCallback extends BaseObject implements Satisf
}
@Override
+ public SatisfiedSelectBuilder<?> select(List<Column> columns) {
+ return select(columns.toArray(new Column[columns.size()]));
+ }
+
+ @Override
public SatisfiedSelectBuilder<?> select(String... columnNames) {
if (columnNames == null) {
throw new IllegalArgumentException("columnNames cannot be null");
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/AbstractRelationship.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractRelationship.java b/core/src/main/java/org/apache/metamodel/schema/AbstractRelationship.java
index 88dd54e..cafa1c1 100644
--- a/core/src/main/java/org/apache/metamodel/schema/AbstractRelationship.java
+++ b/core/src/main/java/org/apache/metamodel/schema/AbstractRelationship.java
@@ -27,16 +27,16 @@ public abstract class AbstractRelationship extends BaseObject implements
private static final long serialVersionUID = 1L;
- protected static Table checkSameTable(Column[] columns) {
- if (columns == null || columns.length == 0) {
+ protected static Table checkSameTable(List<Column> columns) {
+ if (columns == null || columns.size() == 0) {
throw new IllegalArgumentException(
"At least one key-column must exist on both "
+ "primary and foreign side for "
+ "a relation to exist.");
}
Table table = null;
- for (int i = 0; i < columns.length; i++) {
- Column column = columns[i];
+ for (int i = 0; i < columns.size(); i++) {
+ Column column = columns.get(i);
if (i == 0) {
table = column.getTable();
} else {
@@ -51,12 +51,12 @@ public abstract class AbstractRelationship extends BaseObject implements
@Override
public Table getForeignTable() {
- return getForeignColumns()[0].getTable();
+ return getForeignColumns().get(0).getTable();
}
@Override
public Table getPrimaryTable() {
- return getPrimaryColumns()[0].getTable();
+ return getPrimaryColumns().get(0).getTable();
}
@Override
@@ -64,23 +64,23 @@ public abstract class AbstractRelationship extends BaseObject implements
StringBuilder sb = new StringBuilder();
sb.append("Relationship[");
sb.append("primaryTable=" + getPrimaryTable().getName());
- Column[] columns = getPrimaryColumns();
+ List<Column> columns = getPrimaryColumns();
sb.append(",primaryColumns=[");
- for (int i = 0; i < columns.length; i++) {
+ for (int i = 0; i < columns.size(); i++) {
if (i != 0) {
sb.append(", ");
}
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
}
sb.append("]");
sb.append(",foreignTable=" + getForeignTable().getName());
columns = getForeignColumns();
sb.append(",foreignColumns=[");
- for (int i = 0; i < columns.length; i++) {
+ for (int i = 0; i < columns.size(); i++) {
if (i != 0) {
sb.append(", ");
}
- sb.append(columns[i].getName());
+ sb.append(columns.get(i).getName());
}
sb.append("]");
sb.append("]");
@@ -105,11 +105,11 @@ public abstract class AbstractRelationship extends BaseObject implements
@Override
public boolean containsColumnPair(Column pkColumn, Column fkColumn) {
if (pkColumn != null && fkColumn != null) {
- Column[] primaryColumns = getPrimaryColumns();
- Column[] foreignColumns = getForeignColumns();
- for (int i = 0; i < primaryColumns.length; i++) {
- if (pkColumn.equals(primaryColumns[i])
- && fkColumn.equals(foreignColumns[i])) {
+ List<Column> primaryColumns = getPrimaryColumns();
+ List<Column> foreignColumns = getForeignColumns();
+ for (int i = 0; i < primaryColumns.size(); i++) {
+ if (pkColumn.equals(primaryColumns.get(i))
+ && fkColumn.equals(foreignColumns.get(i))) {
return true;
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java b/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
index e44737a..df4a033 100644
--- a/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/AbstractSchema.java
@@ -18,10 +18,8 @@
*/
package org.apache.metamodel.schema;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
import org.apache.metamodel.util.CollectionUtils;
import org.apache.metamodel.util.EqualsBuilder;
@@ -49,22 +47,15 @@ public abstract class AbstractSchema implements Schema {
}
@Override
- public Relationship[] getRelationships() {
- final Set<Relationship> result = new LinkedHashSet<Relationship>();
- CollectionUtils.forEach(getTables(), table -> {
- final Relationship[] relations = table.getRelationships();
- for (int i = 0; i < relations.length; i++) {
- final Relationship relation = relations[i];
- result.add(relation);
- }
- });
- return result.toArray(new Relationship[result.size()]);
+ public Collection<Relationship> getRelationships() {
+ return getTables().stream()
+ .flatMap(tab -> tab.getRelationships().stream())
+ .collect(Collectors.toCollection(LinkedHashSet::new));
}
@Override
public Table getTable(int index) throws IndexOutOfBoundsException {
- Table[] tables = getTables();
- return tables[index];
+ return getTables().get(index);
}
@Override
@@ -74,24 +65,24 @@ public abstract class AbstractSchema implements Schema {
@Override
public final int getTableCount(TableType type) {
- return getTables(type).length;
+ return getTables(type).size();
}
@Override
public final int getRelationshipCount() {
- return getRelationships().length;
+ return getRelationships().size();
}
@Override
public final int getTableCount() {
- return getTables().length;
+ return getTables().size();
}
@Override
- public final Table[] getTables(final TableType type) {
- return CollectionUtils.filter(getTables(), table -> {
- return table.getType() == type;
- }).toArray(new Table[0]);
+ public final List<Table> getTables(final TableType type) {
+ return getTables().stream()
+ .filter(table -> table.getType().equals(type))
+ .collect(Collectors.toList());
}
@Override
@@ -131,9 +122,10 @@ public abstract class AbstractSchema implements Schema {
}
@Override
- public final String[] getTableNames() {
- Table[] tables = getTables();
- return CollectionUtils.map(tables, new HasNameMapper()).toArray(new String[tables.length]);
+ public final List<String> getTableNames() {
+ return getTables().stream()
+ .map(table -> table.getName())
+ .collect(Collectors.toList());
}
@Override
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java b/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
index 4f5ad7f..6e5b55f 100644
--- a/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
+++ b/core/src/main/java/org/apache/metamodel/schema/AbstractTable.java
@@ -18,16 +18,12 @@
*/
package org.apache.metamodel.schema;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.function.Predicate;
+import java.util.stream.Collectors;
import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.util.CollectionUtils;
-import org.apache.metamodel.util.HasNameMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,13 +38,12 @@ public abstract class AbstractTable implements Table {
@Override
public final int getColumnCount() {
- return getColumns().length;
+ return getColumns().size();
}
@Override
public Column getColumn(int index) throws IndexOutOfBoundsException {
- Column[] columns = getColumns();
- return columns[index];
+ return getColumns().get(index);
}
@Override
@@ -93,112 +88,102 @@ public abstract class AbstractTable implements Table {
@Override
public final int getRelationshipCount() {
- return getRelationships().length;
+ return getRelationships().size();
}
@Override
- public final Column[] getNumberColumns() {
- return CollectionUtils.filter(getColumns(), new Predicate<Column>() {
- @Override
- public boolean test(Column col) {
- ColumnType type = col.getType();
- return type != null && type.isNumber();
- }
- }).toArray(new Column[0]);
+ public final List<Column> getNumberColumns() {
+ return getColumnsOfSuperType(SuperColumnType.NUMBER_TYPE);
}
@Override
- public final Column[] getLiteralColumns() {
- return CollectionUtils.filter(getColumns(), new Predicate<Column>() {
- @Override
- public boolean test(Column col) {
- ColumnType type = col.getType();
- return type != null && type.isLiteral();
- }
- }).toArray(new Column[0]);
+ public final List<Column> getLiteralColumns() {
+ return getColumnsOfSuperType(SuperColumnType.LITERAL_TYPE);
}
@Override
- public final Column[] getTimeBasedColumns() {
- return CollectionUtils.filter(getColumns(), col -> {
- final ColumnType type = col.getType();
- return type != null && type.isTimeBased();
- }).toArray(new Column[0]);
+ public final List<Column> getTimeBasedColumns() {
+ return getColumnsOfSuperType(SuperColumnType.TIME_TYPE);
}
@Override
- public final Column[] getBooleanColumns() {
- return CollectionUtils.filter(getColumns(), col -> {
- final ColumnType type = col.getType();
- return type != null && type.isBoolean();
- }).toArray(new Column[0]);
+ public final List<Column> getBooleanColumns() {
+ return getColumnsOfSuperType(SuperColumnType.BOOLEAN_TYPE);
}
@Override
- public final Column[] getIndexedColumns() {
- return CollectionUtils.filter(getColumns(), Column::isIndexed).toArray(new Column[0]);
+ public final List<Column> getIndexedColumns() {
+ return getColumns().stream()
+ .filter(Column::isIndexed)
+ .collect(Collectors.toList());
}
@Override
- public final Relationship[] getForeignKeyRelationships() {
+ public final Collection<Relationship> getForeignKeyRelationships() {
return CollectionUtils.filter(getRelationships(), rel -> {
return AbstractTable.this.equals(rel.getForeignTable());
- }).toArray(new Relationship[0]);
+ });
}
@Override
- public final Relationship[] getPrimaryKeyRelationships() {
+ public final List<Relationship> getPrimaryKeyRelationships() {
return CollectionUtils.filter(getRelationships(), rel -> {
return AbstractTable.this.equals(rel.getPrimaryTable());
- }).toArray(new Relationship[0]);
+ });
}
@Override
- public final Column[] getForeignKeys() {
- final Set<Column> columns = new HashSet<Column>();
- final Relationship[] relationships = getForeignKeyRelationships();
+ public final List<Column> getForeignKeys() {
+ final Set<Column> columns = new LinkedHashSet<>();
+ final Collection<Relationship> relationships = getForeignKeyRelationships();
CollectionUtils.forEach(relationships, rel -> {
- Column[] foreignColumns = rel.getForeignColumns();
+ List<Column> foreignColumns = rel.getForeignColumns();
for (Column column : foreignColumns) {
columns.add(column);
}
});
- return columns.toArray(new Column[columns.size()]);
+ return new ArrayList<>(columns);
}
@Override
- public final Column[] getPrimaryKeys() {
+ public final List<Column> getPrimaryKeys() {
final List<Column> primaryKeyColumns = new ArrayList<Column>();
- final Column[] columnsInTable = getColumns();
+ final List<Column> columnsInTable = getColumns();
for (Column column : columnsInTable) {
if (column.isPrimaryKey()) {
primaryKeyColumns.add(column);
}
}
- return primaryKeyColumns.toArray(new Column[primaryKeyColumns.size()]);
+ return primaryKeyColumns;
}
@Override
- public final String[] getColumnNames() {
- Column[] columns = getColumns();
- return CollectionUtils.map(columns, new HasNameMapper()).toArray(new String[columns.length]);
+ public final List<String> getColumnNames() {
+ return getColumns().stream()
+ .map(col -> col.getName())
+ .collect(Collectors.toList());
}
@Override
- public final Column[] getColumnsOfType(ColumnType columnType) {
- Column[] columns = getColumns();
- return MetaModelHelper.getColumnsByType(columns, columnType);
+ public final List<Column> getColumnsOfType(ColumnType columnType) {
+ return getColumns().stream()
+ .filter(col -> col.getType()!=null)
+ .filter((col -> col.getType().equals(columnType)))
+ .collect(Collectors.toList());
}
+
+
@Override
- public final Column[] getColumnsOfSuperType(final SuperColumnType superColumnType) {
- Column[] columns = getColumns();
- return MetaModelHelper.getColumnsBySuperType(columns, superColumnType);
+ public final List<Column> getColumnsOfSuperType(final SuperColumnType superColumnType) {
+ return getColumns().stream() .filter(col -> col.getType()!=null)
+ .filter((col -> col.getType().getSuperType().equals(superColumnType)))
+ .collect(Collectors.toList());
}
@Override
- public final Relationship[] getRelationships(final Table otherTable) {
- Relationship[] relationships = getRelationships();
+ public final Collection<Relationship> getRelationships(final Table otherTable) {
+ Collection<Relationship> relationships = getRelationships();
return CollectionUtils.filter(relationships, relation -> {
if (relation.getForeignTable() == otherTable && relation.getPrimaryTable() == AbstractTable.this) {
@@ -207,7 +192,7 @@ public abstract class AbstractTable implements Table {
return true;
}
return false;
- }).toArray(new Relationship[0]);
+ });
}
@Override
@@ -270,12 +255,12 @@ public abstract class AbstractTable implements Table {
}
try {
- final String[] columnNames1 = getColumnNames();
- final String[] columnNames2 = other.getColumnNames();
+ final List<String> columnNames1 = getColumnNames();
+ final List<String> columnNames2 = other.getColumnNames();
- if (columnNames1 != null && columnNames1.length != 0) {
- if (columnNames2 != null && columnNames2.length != 0) {
- if (!Arrays.equals(columnNames1, columnNames2)) {
+ if (columnNames1 != null && columnNames1.size() != 0) {
+ if (columnNames2 != null && columnNames2.size() != 0) {
+ if (!columnNames1.equals(columnNames2)) {
return false;
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/ab5c9482/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java b/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
index 68cfecf..4e5a569 100644
--- a/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
+++ b/core/src/main/java/org/apache/metamodel/schema/CompositeSchema.java
@@ -20,7 +20,9 @@ package org.apache.metamodel.schema;
import java.util.Collection;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.metamodel.DataContext;
import org.apache.metamodel.util.CollectionUtils;
@@ -60,21 +62,17 @@ public class CompositeSchema extends AbstractSchema {
}
@Override
- public Relationship[] getRelationships() {
- Relationship[] result = new Relationship[0];
- for (Schema delegate : delegates) {
- result = CollectionUtils.array(result, delegate.getRelationships());
- }
- return result;
+ public List<Relationship> getRelationships() {
+ return delegates.stream()
+ .flatMap(delegate -> delegate.getRelationships().stream())
+ .collect(Collectors.toList());
}
@Override
- public Table[] getTables() {
- Table[] result = new Table[0];
- for (Schema delegate : delegates) {
- result = CollectionUtils.array(result, delegate.getTables());
- }
- return result;
+ public List<Table> getTables() {
+ return delegates.stream()
+ .flatMap(delegate -> delegate.getTables().stream())
+ .collect(Collectors.toList());
}
@Override
[19/20] metamodel git commit: merged master
Posted by ka...@apache.org.
merged master
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/c4acebd5
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/c4acebd5
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/c4acebd5
Branch: refs/heads/master
Commit: c4acebd5d3911bc208c3fd919a8cf7894b371c00
Parents: a07b8fe 2fe6a2b
Author: Jörg Unbehauen <jo...@unbehauen.net>
Authored: Fri Aug 4 15:31:21 2017 +0200
Committer: Jörg Unbehauen <jo...@unbehauen.net>
Committed: Fri Aug 4 15:31:21 2017 +0200
----------------------------------------------------------------------
CHANGES.md | 2 +
README.md | 78 +++++------
.../org/apache/metamodel/MetaModelHelper.java | 138 +++++++++++--------
.../factory/DataContextPropertiesImpl.java | 3 +
.../apache/metamodel/MetaModelHelperTest.java | 83 +++++++++--
jdbc/pom.xml | 4 +
.../metamodel/jdbc/JdbcMetadataLoader.java | 92 ++++++++++---
.../jdbc/dialects/DefaultQueryRewriter.java | 24 ++--
.../jdbc/dialects/HsqldbQueryRewriter.java | 13 ++
.../apache/metamodel/jdbc/H2databaseTest.java | 104 +++++++++-----
.../org/apache/metamodel/jdbc/HsqldbTest.java | 112 +++++++++++----
.../metamodel/jdbc/MultiJDBCDataSetTest.java | 132 ++++++++++++++++++
.../apache/metamodel/pojo/PojoDataContext.java | 4 +-
.../metamodel/pojo/PojoDataContextFactory.java | 71 ++++++++++
....apache.metamodel.factory.DataContextFactory | 1 +
pom.xml | 84 ++++++++++-
spring/pom.xml | 12 --
17 files changed, 732 insertions(+), 225 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4acebd5/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/metamodel/MetaModelHelper.java
index 4f0a8dd,a2681da..f23c98e
--- a/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
+++ b/core/src/main/java/org/apache/metamodel/MetaModelHelper.java
@@@ -18,19 -18,10 +18,12 @@@
*/
package org.apache.metamodel;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
+ import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+
import org.apache.metamodel.data.CachingDataSetHeader;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.data.DataSetHeader;
@@@ -184,67 -180,86 +182,87 @@@ public final class MetaModelHelper
if (fromDataSets.length == 1) {
return getFiltered(fromDataSets[0], whereItems);
}
+ // do a nested loop join, no matter what
+ Iterator<DataSet> dsIter = Arrays.asList(fromDataSets).iterator();
- List<SelectItem> selectItems = new ArrayList<SelectItem>();
- for (DataSet dataSet : fromDataSets) {
- for (int i = 0; i < dataSet.getSelectItems().size(); i++) {
- SelectItem item = dataSet.getSelectItems().get(i);
- selectItems.add(item);
- }
- }
+
- int selectItemOffset = 0;
- List<Object[]> data = new ArrayList<Object[]>();
- for (int fromDataSetIndex = 0; fromDataSetIndex < fromDataSets.length; fromDataSetIndex++) {
- DataSet fromDataSet = fromDataSets[fromDataSetIndex];
- List<SelectItem> fromSelectItems = fromDataSet.getSelectItems();
- if (fromDataSetIndex == 0) {
- while (fromDataSet.next()) {
- Object[] values = fromDataSet.getRow().getValues();
- Object[] row = new Object[selectItems.size()];
- System.arraycopy(values, 0, row, selectItemOffset, values.length);
- data.add(row);
- }
- fromDataSet.close();
- } else {
- List<Object[]> fromDataRows = new ArrayList<Object[]>();
- while (fromDataSet.next()) {
- fromDataRows.add(fromDataSet.getRow().getValues());
- }
- fromDataSet.close();
- for (int i = 0; i < data.size(); i = i + fromDataRows.size()) {
- Object[] originalRow = data.get(i);
- data.remove(i);
- for (int j = 0; j < fromDataRows.size(); j++) {
- Object[] newRow = fromDataRows.get(j);
- System.arraycopy(newRow, 0, originalRow, selectItemOffset, newRow.length);
- data.add(i + j, originalRow.clone());
- }
- }
- }
- selectItemOffset += fromSelectItems.size();
- }
+ DataSet joined = dsIter.next();
+
+ while (dsIter.hasNext()) {
+ joined = nestedLoopJoin(dsIter.next(), joined, (whereItems));
- if (data.isEmpty()) {
- return new EmptyDataSet(selectItems);
}
- final DataSetHeader header = new CachingDataSetHeader(selectItems);
- final List<Row> rows = new ArrayList<Row>(data.size());
- for (Object[] objects : data) {
- rows.add(new DefaultRow(header, objects, null));
+ return joined;
+
+ }
+
+ /**
+ * Executes a simple nested loop join. The innerLoopDs will be copied in an
+ * in-memory dataset.
+ *
+ */
+ public static InMemoryDataSet nestedLoopJoin(DataSet innerLoopDs, DataSet outerLoopDs,
+ Iterable<FilterItem> filtersIterable) {
+
+ List<FilterItem> filters = new ArrayList<>();
+ for (FilterItem fi : filtersIterable) {
+ filters.add(fi);
}
+ List<Row> innerRows = innerLoopDs.toRows();
+
- List<SelectItem> allItems = new ArrayList<>(Arrays.asList(outerLoopDs.getSelectItems()));
- allItems.addAll(Arrays.asList(innerLoopDs.getSelectItems()));
++ List<SelectItem> allItems = new ArrayList<>(outerLoopDs.getSelectItems());
++ allItems.addAll(innerLoopDs.getSelectItems());
- DataSet result = new InMemoryDataSet(header, rows);
- if (whereItems != null) {
- DataSet filteredResult = getFiltered(result, whereItems);
- result = filteredResult;
+ Set<FilterItem> applicableFilters = applicableFilters(filters, allItems);
+
+ DataSetHeader jointHeader = new CachingDataSetHeader(allItems);
+
+ List<Row> resultRows = new ArrayList<>();
+ for (Row outerRow : outerLoopDs) {
+ for (Row innerRow : innerRows) {
+
+ Object[] joinedRowObjects = new Object[outerRow.getValues().length + innerRow.getValues().length];
+
+ System.arraycopy(outerRow.getValues(), 0, joinedRowObjects, 0, outerRow.getValues().length);
+ System.arraycopy(innerRow.getValues(), 0, joinedRowObjects, outerRow.getValues().length, innerRow
+ .getValues().length);
+
+ Row joinedRow = new DefaultRow(jointHeader, joinedRowObjects);
+
+ if (applicableFilters.isEmpty() || applicableFilters.stream().allMatch(fi -> fi.accept(joinedRow))) {
+ resultRows.add(joinedRow);
+ }
+ }
}
- return result;
+
+ return new InMemoryDataSet(jointHeader, resultRows);
}
- public static DataSet getCarthesianProduct(DataSet[] fromDataSets, FilterItem... filterItems) {
- return getCarthesianProduct(fromDataSets, Arrays.asList(filterItems));
+ /**
+ * Filters the FilterItems such that only the FilterItems are returned,
+ * which contain SelectItems that are contained in selectItemList
+ *
+ * @param filters
+ * @param selectItemList
+ * @return
+ */
+ private static Set<FilterItem> applicableFilters(Collection<FilterItem> filters,
+ Collection<SelectItem> selectItemList) {
+
+ Set<SelectItem> items = new HashSet<SelectItem>(selectItemList);
+
+ return filters.stream().filter(fi -> {
+ Collection<SelectItem> fiSelectItems = new ArrayList<>();
+ fiSelectItems.add(fi.getSelectItem());
+ Object operand = fi.getOperand();
+ if (operand instanceof SelectItem) {
+ fiSelectItems.add((SelectItem) operand);
+ }
+
+ return items.containsAll(fiSelectItems);
+
+ }).collect(Collectors.toSet());
}
public static DataSet getFiltered(DataSet dataSet, Iterable<FilterItem> filterItems) {
http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4acebd5/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
index 84a09b2,a84cef1..7196bf4
--- a/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
+++ b/core/src/test/java/org/apache/metamodel/MetaModelHelperTest.java
@@@ -116,21 -115,19 +116,21 @@@ public class MetaModelHelperTest extend
public void testSimpleCarthesianProduct() throws Exception {
DataSet dataSet = MetaModelHelper.getCarthesianProduct(createDataSet1(), createDataSet2());
+ List<String> results = new ArrayList<String>();
++
+ while (dataSet.next()) {
+ results.add(dataSet.getRow().toString());
+ }
- assertEquals(2, dataSet.getSelectItems().length);
+ assertEquals(2, dataSet.getSelectItems().size());
- assertTrue(dataSet.next());
- assertEquals("Row[values=[f, b]]", dataSet.getRow().toString());
- assertTrue(dataSet.next());
- assertEquals("Row[values=[f, a]]", dataSet.getRow().toString());
- assertTrue(dataSet.next());
- assertTrue(dataSet.next());
- assertTrue(dataSet.next());
- assertTrue(dataSet.next());
- assertTrue(dataSet.next());
- assertTrue(dataSet.next());
- assertTrue(dataSet.next());
- assertEquals("Row[values=[o, r]]", dataSet.getRow().toString());
- assertFalse(dataSet.next());
+ assertEquals(9, results.size());
+ assertTrue(results.contains("Row[values=[f, b]]"));
+ assertTrue(results.contains("Row[values=[f, a]]"));
+ assertTrue(results.contains("Row[values=[f, r]]"));
+ assertTrue(results.contains("Row[values=[o, b]]"));
+ assertTrue(results.contains("Row[values=[o, a]]"));
+ assertTrue(results.contains("Row[values=[o, r]]"));
++
}
public void testTripleCarthesianProduct() throws Exception {
@@@ -188,8 -185,8 +188,10 @@@
data1.add(new Object[] { "f" });
data1.add(new Object[] { "o" });
data1.add(new Object[] { "o" });
- DataSet dataSet1 = createDataSet(new SelectItem[] { new SelectItem(new MutableColumn("foo",
- ColumnType.VARCHAR)) }, data1);
++
+ DataSet dataSet1 = createDataSet(
+ Lists.newArrayList( new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR)) ), data1);
++
return dataSet1;
}
@@@ -206,8 -203,8 +208,10 @@@
List<Object[]> data3 = new ArrayList<Object[]>();
data3.add(new Object[] { "w00p", true });
data3.add(new Object[] { "yippie", false });
- DataSet dataSet3 = createDataSet(new SelectItem[] { new SelectItem("expression", "e"), new SelectItem("webish?",
- "w") }, data3);
++
+ DataSet dataSet3 = createDataSet(Lists.newArrayList(new SelectItem("expression", "e"),
+ new SelectItem("webish?", "w") ), data3);
++
return dataSet3;
}
@@@ -217,6 -214,41 +221,41 @@@
return dataSet4;
}
+ private int bigDataSetSize = 3000;
+
+ /**
+ *
+ * @return a big dataset, mocking an employee table
+ */
+ private DataSet createDataSet5() {
+ List<Object[]> data5 = new ArrayList<Object[]>();
+
+ for (int i = 0; i < bigDataSetSize; i++) {
+ data5.add(new Object[] { i, "Person_" + i, bigDataSetSize - (i + 1) });
+ }
+
- DataSet dataSet5 = createDataSet(new SelectItem[] { new SelectItem(new MutableColumn("nr", ColumnType.BIGINT)),
++ DataSet dataSet5 = createDataSet(Lists.newArrayList( new SelectItem(new MutableColumn("nr", ColumnType.BIGINT)),
+ new SelectItem(new MutableColumn("name", ColumnType.STRING)), new SelectItem(new MutableColumn("dnr",
- ColumnType.BIGINT)) }, data5);
++ ColumnType.BIGINT)) ), data5);
+ return dataSet5;
+ }
+
+ /**
+ *
+ * @return a big dataset, mocking an department table
+ */
+ private DataSet createDataSet6() {
+ List<Object[]> data6 = new ArrayList<Object[]>();
+
+ for (int i = 0; i < bigDataSetSize; i++) {
+ data6.add(new Object[] { i, "Department_" + i });
+ }
+
- DataSet dataSet6 = createDataSet(new SelectItem[] { new SelectItem(new MutableColumn("nr", ColumnType.BIGINT)),
- new SelectItem(new MutableColumn("name", ColumnType.STRING)), }, data6);
++ DataSet dataSet6 = createDataSet(Lists.newArrayList(new SelectItem(new MutableColumn("nr", ColumnType.BIGINT)),
++ new SelectItem(new MutableColumn("name", ColumnType.STRING))), data6);
+ return dataSet6;
+ }
+
public void testGetTables() throws Exception {
MutableTable table1 = new MutableTable("table1");
MutableTable table2 = new MutableTable("table2");
@@@ -325,4 -357,22 +364,22 @@@
assertEquals("Row[values=[1, 2, null]]", joinedDs.getRow().toString());
assertFalse(joinedDs.next());
}
+
+ public void testCarthesianProductScalability() {
+
+ DataSet employees = createDataSet5();
+ DataSet departmens = createDataSet6();
+
- FilterItem fi = new FilterItem(employees.getSelectItems()[2], OperatorType.EQUALS_TO, departmens
- .getSelectItems()[0]);
++ FilterItem fi = new FilterItem(employees.getSelectItems().get(2), OperatorType.EQUALS_TO, departmens
++ .getSelectItems().get(0));
+
+ DataSet joined = MetaModelHelper.getCarthesianProduct(new DataSet[] { employees, departmens }, fi);
+ int count = 0;
+ while (joined.next()) {
+ count++;
+ }
+
+ assertTrue(count == bigDataSetSize);
+
+ }
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4acebd5/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
----------------------------------------------------------------------
diff --cc jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
index 49e242b,2c29405..ce64b87
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java
@@@ -452,9 -468,42 +467,42 @@@ final class JdbcMetadataLoader implemen
logger.error("pkColumn={}", pkColumn);
logger.error("fkColumn={}", fkColumn);
} else {
- MutableRelationship.createRelationship(pkColumn, fkColumn);
+
+ if (!relations.containsKey(pkTable)) {
+ relations.put(pkTable, new HashMap<>());
+ }
+
+ // get or init the columns tuple
+ ColumnsTuple ct = relations.get(pkTable).get(fkTable);
+ if (Objects.isNull(ct)) {
+ ct = new ColumnsTuple();
+ relations.get(pkTable).put(fkTable, ct);
+ }
+ // we can now safely add the columns
+ ct.getPkCols().add(pkColumn);
+ ct.getFkCols().add(fkColumn);
}
}
+
+ relations.values().stream().flatMap(map -> map.values().stream()).forEach(ct -> MutableRelationship
- .createRelationship(ct.getPkCols().toArray(new Column[0]), ct.getFkCols().toArray(new Column[0])));
++ .createRelationship(ct.getPkCols(), ct.getFkCols()));
+ }
+
+ /**
+ * Represents the columns of a relationship while it is being built from a
+ * {@link ResultSet}.
+ */
+ private static class ColumnsTuple {
+ private final List<Column> pkCols = new ArrayList<>();
+ private final List<Column> fkCols = new ArrayList<>();
+
+ public List<Column> getFkCols() {
+ return fkCols;
+ }
+
+ public List<Column> getPkCols() {
+ return pkCols;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4acebd5/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
----------------------------------------------------------------------
diff --cc jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
index e7b5386,d46bc31..18b02de
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/H2databaseTest.java
@@@ -276,14 -281,17 +281,17 @@@ public class H2databaseTest extends Tes
@Override
public void run(UpdateCallback cb) {
- JdbcCreateTableBuilder createTableBuilder = (JdbcCreateTableBuilder) cb.createTable(schema, "test_table");
+ JdbcCreateTableBuilder createTableBuilder = (JdbcCreateTableBuilder) cb.createTable(schema,
+ "test_table");
Table writtenTable = createTableBuilder.withColumn("id").asPrimaryKey().ofType(ColumnType.INTEGER)
- .withColumn("name").ofSize(255).ofType(ColumnType.VARCHAR).withColumn("age").ofType(ColumnType.INTEGER)
- .execute();
+ .withColumn("name").ofSize(255).ofType(ColumnType.VARCHAR).withColumn("age").ofType(
+ ColumnType.INTEGER).execute();
String sql = createTableBuilder.createSqlStatement();
- assertEquals("CREATE TABLE PUBLIC.test_table (id INTEGER, name VARCHAR(255), age INTEGER, PRIMARY KEY(id))", sql);
+ assertEquals(
+ "CREATE TABLE PUBLIC.test_table (id INTEGER, name VARCHAR(255), age INTEGER, PRIMARY KEY(id))",
+ sql);
assertNotNull(writtenTable);
- assertEquals("[ID, NAME, AGE]", Arrays.toString(writtenTable.getColumnNames()));
+ assertEquals("[ID, NAME, AGE]", Arrays.toString(writtenTable.getColumnNames().toArray()));
writtenTableRef.set(writtenTable);
}
@@@ -521,4 -531,32 +531,32 @@@
public void testInterpretationOfNull() throws Exception {
JdbcTestTemplates.interpretationOfNulls(conn);
}
+
+ public void testCompositeFkRelation() throws Exception {
+
+ try (Statement stmt = conn.createStatement()) {
+ stmt.execute(
+ "CREATE TABLE PARENT (P1 INTEGER, P2 INTEGER, P3 INTEGER, P4 INTEGER, PRIMARY KEY (P1,P2, P3, P4))");
+ stmt.execute(
+ "CREATE TABLE CHILD (C1 INTEGER PRIMARY KEY, CP1 INTEGER , CP2 INTEGER, CP3 INTEGER, CP4 INTEGER, FOREIGN KEY (CP1,CP2,CP3,CP4) REFERENCES PARENT(P1,P2,P3,P4))");
+ }
+
+ final JdbcDataContext dc = new JdbcDataContext(conn);
+
+ final Schema schema = dc.getDefaultSchema();
+
- assertEquals(1, schema.getRelationships().length);
++ assertEquals(1, schema.getRelationships().size());
+
- Relationship rel = schema.getRelationships()[0];
++ Relationship rel = schema.getRelationships().iterator().next();
+
- assertEquals("CP1", rel.getForeignColumns()[0].getName());
- assertEquals("CP2", rel.getForeignColumns()[1].getName());
- assertEquals("CP3", rel.getForeignColumns()[2].getName());
- assertEquals("CP4", rel.getForeignColumns()[3].getName());
++ assertEquals("CP1", rel.getForeignColumns().get(0).getName());
++ assertEquals("CP2", rel.getForeignColumns().get(1).getName());
++ assertEquals("CP3", rel.getForeignColumns().get(2).getName());
++ assertEquals("CP4", rel.getForeignColumns().get(3).getName());
+
- assertEquals("P1", rel.getPrimaryColumns()[0].getName());
- assertEquals("P2", rel.getPrimaryColumns()[1].getName());
- assertEquals("P3", rel.getPrimaryColumns()[2].getName());
- assertEquals("P4", rel.getPrimaryColumns()[3].getName());
++ assertEquals("P1", rel.getPrimaryColumns().get(0).getName());
++ assertEquals("P2", rel.getPrimaryColumns().get(1).getName());
++ assertEquals("P3", rel.getPrimaryColumns().get(2).getName());
++ assertEquals("P4", rel.getPrimaryColumns().get(3).getName());
+ }
}
http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4acebd5/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
----------------------------------------------------------------------
diff --cc jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
index bf64fdd,d9f0587..3d9d268
--- a/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
+++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/HsqldbTest.java
@@@ -146,8 -145,8 +145,9 @@@ public class HsqldbTest extends TestCas
Table productsTable = schema.getTableByName("PRODUCTS");
Table factTable = schema.getTableByName("ORDERFACT");
- Query q = new Query().from(new FromItem(JoinType.INNER, productsTable.getRelationships(factTable)[0]))
- .select(productsTable.getColumns()[0], factTable.getColumns()[0]);
+ Query q = new Query().from(new FromItem(JoinType.INNER, productsTable.getRelationships(factTable).iterator().next())).select(
+ productsTable.getColumns().get(0), factTable.getColumns().get(0));
++
assertEquals(
"SELECT \"PRODUCTS\".\"PRODUCTCODE\", \"ORDERFACT\".\"ORDERNUMBER\" FROM PUBLIC.\"PRODUCTS\" INNER JOIN PUBLIC.\"ORDERFACT\" ON \"PRODUCTS\".\"PRODUCTCODE\" = \"ORDERFACT\".\"PRODUCTCODE\"",
q.toString());
http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4acebd5/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
----------------------------------------------------------------------