Skip to content

Commit 64f3663

Browse files
authored
Merge pull request #4970 from sramazzina/4960
fix #4960
2 parents bcdaa72 + 306fb32 commit 64f3663

File tree

1 file changed

+25
-39
lines changed
  • plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput

1 file changed

+25
-39
lines changed

plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInput.java

Lines changed: 25 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.io.BufferedInputStream;
2121
import java.io.InputStream;
22+
import java.io.UnsupportedEncodingException;
2223
import java.util.Date;
2324
import java.util.List;
2425
import org.apache.commons.io.IOUtils;
@@ -369,46 +370,20 @@ Object[] getOneRow() throws HopException {
369370

370371
switch (loadFileInputField.getElementType()) {
371372
case LoadFileInputField.ELEMENT_TYPE_FILECONTENT:
372-
373-
// DO Trimming!
374-
switch (loadFileInputField.getTrimType()) {
375-
case LoadFileInputField.TYPE_TRIM_LEFT:
376-
if (meta.getEncoding() != null) {
377-
data.filecontent =
378-
Const.ltrim(new String(data.filecontent, meta.getEncoding())).getBytes();
379-
} else {
380-
data.filecontent = Const.ltrim(new String(data.filecontent)).getBytes();
381-
}
382-
break;
383-
case LoadFileInputField.TYPE_TRIM_RIGHT:
384-
if (meta.getEncoding() != null) {
385-
data.filecontent =
386-
Const.rtrim(new String(data.filecontent, meta.getEncoding())).getBytes();
387-
} else {
388-
data.filecontent = Const.rtrim(new String(data.filecontent)).getBytes();
389-
}
390-
break;
391-
case LoadFileInputField.TYPE_TRIM_BOTH:
392-
if (meta.getEncoding() != null) {
393-
data.filecontent =
394-
Const.trim(new String(data.filecontent, meta.getEncoding())).getBytes();
395-
} else {
396-
data.filecontent = Const.trim(new String(data.filecontent)).getBytes();
397-
}
398-
break;
399-
default:
400-
break;
401-
}
402373
if (targetValueMeta.getType() != IValueMeta.TYPE_BINARY) {
403374
// handle as a String
404375
if (meta.getEncoding() != null) {
405376
o = new String(data.filecontent, meta.getEncoding());
406377
} else {
407378
o = new String(data.filecontent);
408379
}
380+
// convert string (processing type) to the target type
381+
outputRowData[indexField] =
382+
targetValueMeta.convertData(
383+
sourceValueMeta, trimField(loadFileInputField.getTrimType(), (String) o));
409384
} else {
410385
// save as byte[] without any conversion
411-
o = data.filecontent;
386+
outputRowData[indexField] = data.filecontent;
412387
}
413388
break;
414389
case LoadFileInputField.ELEMENT_TYPE_FILESIZE:
@@ -418,14 +393,6 @@ Object[] getOneRow() throws HopException {
418393
break;
419394
}
420395

421-
if (targetValueMeta.getType() == IValueMeta.TYPE_BINARY) {
422-
// save as byte[] without any conversion
423-
outputRowData[indexField] = o;
424-
} else {
425-
// convert string (processing type) to the target type
426-
outputRowData[indexField] = targetValueMeta.convertData(sourceValueMeta, o);
427-
}
428-
429396
// Do we need to repeat this field if it is null?
430397
if (loadFileInputField.isRepeated()) {
431398
if (data.previousRow != null && o == null) {
@@ -494,6 +461,25 @@ Object[] getOneRow() throws HopException {
494461
return outputRowData;
495462
}
496463

464+
private String trimField(int trimType, String o) throws UnsupportedEncodingException {
465+
// DO Trimming!
466+
switch (trimType) {
467+
case LoadFileInputField.TYPE_TRIM_LEFT:
468+
o = Const.ltrim(o);
469+
break;
470+
case LoadFileInputField.TYPE_TRIM_RIGHT:
471+
o = Const.rtrim(o);
472+
break;
473+
case LoadFileInputField.TYPE_TRIM_BOTH:
474+
o = Const.trim(o);
475+
break;
476+
default:
477+
break;
478+
}
479+
480+
return o;
481+
}
482+
497483
@Override
498484
public boolean init() {
499485

0 commit comments

Comments
 (0)