You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2018/02/01 08:36:58 UTC
[camel] 02/02: update bindy csv by annoation skipField
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 <ne...@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
davsclaus@apache.org.