Repository: incubator-unomi
Updated Branches:
  refs/heads/master 2c32e4f5d -> bcb77c5c8


UNOMI-101 : multi-value delimiter default value


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/bcb77c5c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/bcb77c5c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/bcb77c5c

Branch: refs/heads/master
Commit: bcb77c5c88e86231690ebbd2a77cd84226ec7367
Parents: 2c32e4f
Author: Abdelkader Midani <amid...@apache.org>
Authored: Tue Aug 15 00:24:55 2017 +0200
Committer: Abdelkader Midani <amid...@apache.org>
Committed: Tue Aug 15 00:24:55 2017 +0200

----------------------------------------------------------------------
 .../core/processor/LineSplitProcessor.java       | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/bcb77c5c/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
----------------------------------------------------------------------
diff --git 
a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
 
b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
index 081a9ef..1e66374 100644
--- 
a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
+++ 
b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
@@ -33,10 +33,7 @@ import 
org.apache.unomi.router.core.exception.BadProfileDataFormatException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * Created by amidani on 29/12/2016.
@@ -105,6 +102,8 @@ public class LineSplitProcessor implements Processor {
             for (String fieldMappingKey : fieldsMapping.keySet()) {
                 PropertyType propertyType = 
RouterUtils.getPropertyTypeById(profileService.getAllPropertyTypes("profiles"), 
fieldMappingKey);
 
+                logger.debug("$$$$ : LineSplitProcessor : PropType value : 
{}", profileData[fieldsMapping.get(fieldMappingKey)].trim());
+
                 if (profileData.length > fieldsMapping.get(fieldMappingKey)) {
                     try {
                         if (propertyType.getValueTypeId().equals("string") || 
propertyType.getValueTypeId().equals("email")) {
@@ -113,8 +112,16 @@ public class LineSplitProcessor implements Processor {
                                 if 
(StringUtils.isNotBlank(multiValueDelimiter) && multiValueDelimiter.length() == 
2) {
                                     multivalueArray = 
multivalueArray.replaceAll("\\" + multiValueDelimiter.charAt(0), 
"").replaceAll("\\" + multiValueDelimiter.charAt(1), "");
                                 }
-                                String[] valuesArray = 
multivalueArray.split("\\" + multiValueSeparator);
-                                properties.put(fieldMappingKey, valuesArray);
+                                
if(multivalueArray.contains(multiValueSeparator)) {
+                                    String[] valuesArray = 
multivalueArray.split("\\" + multiValueSeparator);
+                                    properties.put(fieldMappingKey, 
valuesArray);
+                                } else {
+                                    
if(StringUtils.isNotBlank(multivalueArray)) {
+                                        properties.put(fieldMappingKey, 
multivalueArray);
+                                    } else {
+                                        properties.put(fieldMappingKey, new 
String[]{});
+                                    }
+                                }
                             } else {
                                 String singleValue = 
profileData[fieldsMapping.get(fieldMappingKey)].trim();
                                 properties.put(fieldMappingKey, singleValue);

Reply via email to