METAMODEL-1113: Fixed Fixes #125
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/9c8f0b9d Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/9c8f0b9d Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/9c8f0b9d Branch: refs/heads/5.x Commit: 9c8f0b9d100853431f20b5761b4364c04276452b Parents: 8a17fbf Author: Arjan Seijkens <arjan.seijk...@humaninference.com> Authored: Mon Sep 5 21:11:40 2016 -0700 Committer: Kasper Sørensen <i.am.kasper.soren...@gmail.com> Committed: Mon Sep 5 21:12:35 2016 -0700 ---------------------------------------------------------------------- CHANGES.md | 1 + .../apache/metamodel/csv/CsvConfiguration.java | 2 +- .../metamodel/csv/CsvDataContextTest.java | 23 ++++++++++++++++++++ .../metamodel/excel/ExcelDataContextTest.java | 17 +++++++++++++++ .../fixedwidth/FixedWidthDataContextTest.java | 17 +++++++++++++++ 5 files changed, 59 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/9c8f0b9d/CHANGES.md ---------------------------------------------------------------------- diff --git a/CHANGES.md b/CHANGES.md index 0c06db2..c8f288f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,7 @@ * [METAMODEL-1111] - Added WHERE rewrite for Oracle when empty strings are considered as NULL. * [METAMODEL-1109] - Fixed diacritics/encoding issue with Fixed Width reader. * [METAMODEL-1115] - Added support for passing your own PartnerConnection object to the Salesforce.com connector. + * [METAMODEL-1113] - Fixed support for ColumnNamingStrategy in CSV connector. ### Apache MetaModel 4.5.4 http://git-wip-us.apache.org/repos/asf/metamodel/blob/9c8f0b9d/csv/src/main/java/org/apache/metamodel/csv/CsvConfiguration.java ---------------------------------------------------------------------- diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvConfiguration.java b/csv/src/main/java/org/apache/metamodel/csv/CsvConfiguration.java index abcf2d4..332ef4b 100644 --- a/csv/src/main/java/org/apache/metamodel/csv/CsvConfiguration.java +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvConfiguration.java @@ -94,7 +94,7 @@ public final class CsvConfiguration extends BaseObject implements Serializable { this.escapeChar = escapeChar; this.failOnInconsistentRowLength = failOnInconsistentRowLength; this.multilineValues = multilineValues; - this.columnNamingStrategy = null; + this.columnNamingStrategy = columnNamingStrategy; } /** http://git-wip-us.apache.org/repos/asf/metamodel/blob/9c8f0b9d/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java ---------------------------------------------------------------------- diff --git a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java index e417cf6..39f9d43 100644 --- a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java +++ b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java @@ -48,6 +48,7 @@ import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.MutableColumn; import org.apache.metamodel.schema.Schema; import org.apache.metamodel.schema.Table; +import org.apache.metamodel.schema.naming.CustomColumnNamingStrategy; import org.apache.metamodel.util.FileHelper; import org.apache.metamodel.util.MutableRef; @@ -828,4 +829,26 @@ public class CsvDataContextTest extends TestCase { // e.getMessage()); // } // } + + public void testCustomColumnNames() throws Exception { + final String firstColumnName = "first"; + final String secondColumnName = "second"; + final String thirdColumnName = "third"; + final String fourthColumnName = "fourth"; + + final CsvConfiguration configuration = new CsvConfiguration(CsvConfiguration.DEFAULT_COLUMN_NAME_LINE, + new CustomColumnNamingStrategy(firstColumnName, secondColumnName, thirdColumnName, fourthColumnName), + FileHelper.DEFAULT_ENCODING, CsvConfiguration.DEFAULT_SEPARATOR_CHAR, + CsvConfiguration.DEFAULT_QUOTE_CHAR, CsvConfiguration.DEFAULT_ESCAPE_CHAR, false, true); + + final DataContext dataContext = new CsvDataContext(new File("src/test/resources/csv_people.csv"), + configuration); + + final Table table = dataContext.getDefaultSchema().getTable(0); + + assertNotNull(table.getColumnByName(firstColumnName)); + assertNotNull(table.getColumnByName(secondColumnName)); + assertNotNull(table.getColumnByName(thirdColumnName)); + assertNotNull(table.getColumnByName(fourthColumnName)); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metamodel/blob/9c8f0b9d/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java ---------------------------------------------------------------------- diff --git a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java index 3b69290..f8406c3 100644 --- a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java +++ b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java @@ -36,6 +36,7 @@ import org.apache.metamodel.query.Query; import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.Schema; import org.apache.metamodel.schema.Table; +import org.apache.metamodel.schema.naming.CustomColumnNamingStrategy; import org.apache.metamodel.util.DateUtils; import org.apache.metamodel.util.FileHelper; import org.apache.metamodel.util.Month; @@ -775,4 +776,20 @@ public class ExcelDataContextTest extends TestCase { assertNotNull(ds); ds.close(); } + + public void testCustomColumnNames() throws Exception { + final String firstColumnName = "first"; + final String secondColumnName = "second"; + final String thirdColumnName = "third"; + + final ExcelConfiguration configuration = new ExcelConfiguration(ExcelConfiguration.DEFAULT_COLUMN_NAME_LINE, + new CustomColumnNamingStrategy(firstColumnName, secondColumnName, thirdColumnName), true, false); + final DataContext dataContext = new ExcelDataContext(copyOf("src/test/resources/Spreadsheet2007.xlsx"), + configuration); + final Table table = dataContext.getDefaultSchema().getTable(0); + + assertNotNull(table.getColumnByName(firstColumnName)); + assertNotNull(table.getColumnByName(secondColumnName)); + assertNotNull(table.getColumnByName(thirdColumnName)); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metamodel/blob/9c8f0b9d/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java ---------------------------------------------------------------------- diff --git a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java index 7962cf6..7a4b75f 100644 --- a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java +++ b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java @@ -28,6 +28,7 @@ import org.apache.metamodel.data.DataSet; import org.apache.metamodel.query.Query; import org.apache.metamodel.schema.Schema; import org.apache.metamodel.schema.Table; +import org.apache.metamodel.schema.naming.CustomColumnNamingStrategy; public class FixedWidthDataContextTest extends TestCase { @@ -221,4 +222,20 @@ public class FixedWidthDataContextTest extends TestCase { assertEquals("[3, howdy, partner]", Arrays.toString(ds.getRow().getValues())); assertFalse(ds.next()); } + + public void testCustomColumnNames() throws Exception { + final String firstColumnName = "first"; + final String secondColumnName = "second"; + + final FixedWidthConfiguration configuration = new FixedWidthConfiguration( + FixedWidthConfiguration.DEFAULT_COLUMN_NAME_LINE, new CustomColumnNamingStrategy(firstColumnName, + secondColumnName), "UTF8", new int[] { 10, 10 }, true); + + final DataContext dataContext = new FixedWidthDataContext(new File("src/test/resources/example_simple1.txt"), + configuration); + final Table table = dataContext.getDefaultSchema().getTable(0); + + assertNotNull(table.getColumnByName(firstColumnName)); + assertNotNull(table.getColumnByName(secondColumnName)); + } }