This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 609bbf4fb80aa93d769266d0ea3f44fad9bfe9a5 Author: longxu <neoxu...@gmail.com> AuthorDate: Tue Jan 30 22:56:19 2018 +1100 update bindy csv by annoation skipField --- .../camel/dataformat/bindy/BindyCsvFactory.java | 34 ++++++++++------------ .../dataformat/bindy/annotation/CsvRecord.java | 6 ++++ .../dataformat/bindy/csv/BindyCsvDataFormat.java | 16 +--------- .../bindy/csv/BindyCsvSkipFieldTest.java | 4 +-- 4 files changed, 24 insertions(+), 36 deletions(-) diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java index 0015947..e2046c9 100755 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java @@ -37,8 +37,6 @@ import org.apache.camel.dataformat.bindy.annotation.OneToMany; import org.apache.camel.dataformat.bindy.annotation.Section; import org.apache.camel.dataformat.bindy.format.FormatException; import org.apache.camel.dataformat.bindy.util.ConverterUtils; -import org.apache.camel.impl.DefaultClassResolver; -import org.apache.camel.spi.ClassResolver; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.ReflectionHelper; import org.slf4j.Logger; @@ -67,6 +65,7 @@ public class BindyCsvFactory extends BindyAbstractFactory implements BindyFactor private String separator; private boolean skipFirstLine; + private boolean skipField; private boolean generateHeaderColumnNames; private boolean messageOrdered; private String quote; @@ -75,20 +74,12 @@ public class BindyCsvFactory extends BindyAbstractFactory implements BindyFactor private boolean allowEmptyStream; private boolean quotingEscaped; private boolean endWithLineBreak; - - private boolean isSkipField; public BindyCsvFactory(Class<?> type) throws Exception { - this(type, false); - } - - public BindyCsvFactory(Class<?> type, boolean isSkipField) throws Exception { super(type); // initialize specific parameters of the csv model initCsvModel(); - - this.isSkipField = isSkipField; } /** @@ -611,6 +602,10 @@ public class BindyCsvFactory extends BindyAbstractFactory implements BindyFactor skipFirstLine = record.skipFirstLine(); LOG.debug("Skip First Line parameter of the CSV: {}" + skipFirstLine); + // Get skipFirstLine parameter + skipField = record.skipField(); + LOG.debug("Skip Field parameter of the CSV: {}" + skipField); + // Get generateHeaderColumnNames parameter generateHeaderColumnNames = record.generateHeaderColumns(); LOG.debug("Generate header column names parameter of the CSV: {}", generateHeaderColumnNames); @@ -710,6 +705,15 @@ public class BindyCsvFactory extends BindyAbstractFactory implements BindyFactor } /** + * Indicate if can skip fields + * + * @return boolean + */ + public boolean isSkipField() { + return this.skipField; + } + + /** * If last record is to span the rest of the line */ public boolean getAutospanLine() { @@ -740,13 +744,5 @@ public class BindyCsvFactory extends BindyAbstractFactory implements BindyFactor public boolean isEndWithLineBreak() { return endWithLineBreak; } - - /** - * Indicate if DataField can be ignored - * - * @return boolean - */ - public boolean isSkipField() { - return this.isSkipField; - } + } diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/CsvRecord.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/CsvRecord.java index dd7bd18..6175e5c 100755 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/CsvRecord.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/CsvRecord.java @@ -54,6 +54,12 @@ public @interface CsvRecord { boolean skipFirstLine() default false; /** + * The skipField parameter will allow to skip fields of a CSV file. + * If some fields are not necessary, they can be skipped. + */ + boolean skipField() default false; + + /** * Character to be used to add a carriage return after each record * (optional) Three values can be used : WINDOWS, UNIX or MAC. */ diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java index d076198..00ea809 100755 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java @@ -47,21 +47,11 @@ import org.slf4j.LoggerFactory; public class BindyCsvDataFormat extends BindyAbstractDataFormat { private static final Logger LOG = LoggerFactory.getLogger(BindyCsvDataFormat.class); - /** - * If isSkipField = true, a CSV file doesn't need to declare all the fields, otherwise, all the fields are mandatory. - */ - private boolean isSkipField; - public BindyCsvDataFormat() { } public BindyCsvDataFormat(Class<?> type) { - this(type, false); - } - - public BindyCsvDataFormat(Class<?> type, boolean isSkipField) { super(type); - this.isSkipField = isSkipField; } @Override @@ -320,12 +310,8 @@ public class BindyCsvDataFormat extends BindyAbstractDataFormat { @Override protected BindyAbstractFactory createModelFactory(FormatFactory formatFactory) throws Exception { - BindyCsvFactory bindyCsvFactory = new BindyCsvFactory(getClassType(), isSkipField()); + BindyCsvFactory bindyCsvFactory = new BindyCsvFactory(getClassType()); bindyCsvFactory.setFormatFactory(formatFactory); return bindyCsvFactory; } - - private boolean isSkipField() { - return this.isSkipField; - } } diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvSkipFieldTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvSkipFieldTest.java index f9907b5..7f4df2f 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvSkipFieldTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvSkipFieldTest.java @@ -57,7 +57,7 @@ public class BindyCsvSkipFieldTest extends AbstractJUnit4SpringContextTests { } public static class ContextConfig extends RouteBuilder { - BindyCsvDataFormat camelDataFormat = new BindyCsvDataFormat(CsvSkipField.class, true); + BindyCsvDataFormat camelDataFormat = new BindyCsvDataFormat(CsvSkipField.class); public void configure() { from(URI_DIRECT_START).unmarshal(camelDataFormat) @@ -82,7 +82,7 @@ public class BindyCsvSkipFieldTest extends AbstractJUnit4SpringContextTests { } - @CsvRecord(separator = ",") + @CsvRecord(separator = ",", skipField = true) public static class CsvSkipField { @DataField(pos = 1) private String attention; -- To stop receiving notification emails like this one, please contact davscl...@apache.org.