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();
