1919
2020import java .io .BufferedInputStream ;
2121import java .io .InputStream ;
22+ import java .io .UnsupportedEncodingException ;
2223import java .util .Date ;
2324import java .util .List ;
2425import 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