METAMODEL-1114: Fixed Fixes #126
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/060884c1 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/060884c1 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/060884c1 Branch: refs/heads/5.x Commit: 060884c17d1c5c35348d2cb675bed1c404013579 Parents: 9c8f0b9 Author: Arjan Seijkens <arjan.seijk...@humaninference.com> Authored: Mon Sep 5 21:16:01 2016 -0700 Committer: Kasper Sørensen <i.am.kasper.soren...@gmail.com> Committed: Mon Sep 5 21:16:01 2016 -0700 ---------------------------------------------------------------------- CHANGES.md | 1 + .../metamodel/fixedwidth/EbcdicConfiguration.java | 9 ++++++++- .../apache/metamodel/fixedwidth/EBCDICTest.java | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/060884c1/CHANGES.md ---------------------------------------------------------------------- diff --git a/CHANGES.md b/CHANGES.md index c8f288f..f44077e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,7 @@ * [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. + * [METAMODEL-1114] - Added support for ColumnNamingStrategy in EBCDIC connector. ### Apache MetaModel 4.5.4 http://git-wip-us.apache.org/repos/asf/metamodel/blob/060884c1/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java ---------------------------------------------------------------------- diff --git a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java index 389a4f8..e4bff94 100644 --- a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java +++ b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/EbcdicConfiguration.java @@ -18,6 +18,8 @@ */ package org.apache.metamodel.fixedwidth; +import org.apache.metamodel.schema.naming.ColumnNamingStrategy; + /** * Special fixed-width configuration for EBCDIC files. */ @@ -35,7 +37,12 @@ public final class EbcdicConfiguration extends FixedWidthConfiguration { public EbcdicConfiguration(int columnNameLineNumber, String encoding, int[] valueWidths, boolean failOnInconsistentLineWidth, boolean skipEbcdicHeader, boolean eolPresent) { - super(columnNameLineNumber, null, encoding, valueWidths, failOnInconsistentLineWidth); + this(columnNameLineNumber, null, encoding, valueWidths, failOnInconsistentLineWidth, skipEbcdicHeader, eolPresent); + } + + public EbcdicConfiguration(int columnNameLineNumber, ColumnNamingStrategy columnNamingStrategy, String encoding, + int[] valueWidths, boolean failOnInconsistentLineWidth, boolean skipEbcdicHeader, boolean eolPresent) { + super(columnNameLineNumber, columnNamingStrategy, encoding, valueWidths, failOnInconsistentLineWidth); _skipEbcdicHeader = skipEbcdicHeader; _eolPresent = eolPresent; } http://git-wip-us.apache.org/repos/asf/metamodel/blob/060884c1/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/EBCDICTest.java ---------------------------------------------------------------------- diff --git a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/EBCDICTest.java b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/EBCDICTest.java index ea19960..2b5c8be 100644 --- a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/EBCDICTest.java +++ b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/EBCDICTest.java @@ -20,12 +20,15 @@ package org.apache.metamodel.fixedwidth; import java.io.File; +import org.apache.metamodel.DataContext; import org.apache.metamodel.data.DataSet; import org.apache.metamodel.schema.Schema; import org.apache.metamodel.schema.Table; +import org.apache.metamodel.schema.naming.CustomColumnNamingStrategy; import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; public class EBCDICTest { private static final int[] COLUMN_WIDTHS = new int[] { 2, 7, 10, 10 }; @@ -74,4 +77,19 @@ public class EBCDICTest { } } } + + @Test + public void testCustomColumnNames() throws Exception { + final String[] columnNames = {"first", "second", "third", "fourth"}; + final FixedWidthConfiguration configuration = new EbcdicConfiguration( + FixedWidthConfiguration.NO_COLUMN_NAME_LINE, new CustomColumnNamingStrategy(columnNames), ENCODING, + COLUMN_WIDTHS, false, true, false); + final DataContext dataContext = new FixedWidthDataContext(new File( + "src/test/resources/fixed-width-2-7-10-10.ebc"), configuration); + final Table table = dataContext.getDefaultSchema().getTable(0); + + for (int i = 0; i < columnNames.length; i++) { + assertNotNull(table.getColumnByName(columnNames[i])); + } + } }