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" })));