This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hop.git


The following commit(s) were added to refs/heads/master by this push:
     new 1024aec  HOP-2792 Add CRLFto concatenate option in GroupBy transform
     new 647de06  Merge pull request #752 from sramazzina/master
1024aec is described below

commit 1024aec6d0a91fcc8b3c197425bda0e0b378e609
Author: sergio.ramazzina <[email protected]>
AuthorDate: Fri Apr 16 21:47:37 2021 +0200

    HOP-2792 Add CRLFto concatenate option in GroupBy transform
---
 .../hop/pipeline/transforms/groupby/GroupBy.java   | 12 +++++++
 .../pipeline/transforms/groupby/GroupByMeta.java   | 11 ++++--
 .../groupby/messages/messages_en_US.properties     |  1 +
 .../groupby/messages/messages_it_IT.properties     | 39 +++++++++++-----------
 4 files changed, 42 insertions(+), 21 deletions(-)

diff --git 
a/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupBy.java 
b/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupBy.java
index 3297b5f..93da989 100644
--- 
a/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupBy.java
+++ 
b/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupBy.java
@@ -551,6 +551,17 @@ public class GroupBy extends BaseTransform<GroupByMeta, 
GroupByData> implements
           }
 
           break;
+
+        case GroupByMeta.TYPE_GROUP_CONCAT_STRING_CRLF:
+          if ( !( subj == null ) ) {
+            StringBuilder sb = (StringBuilder) value;
+            if ( sb.length() > 0 ) {
+              sb.append( System.lineSeparator() );
+            }
+            sb.append( subjMeta.getString( subj ) );
+          }
+
+          break;
         default:
           break;
       }
@@ -625,6 +636,7 @@ public class GroupBy extends BaseTransform<GroupByMeta, 
GroupByData> implements
           v = new StringBuilder();
           break;
         case GroupByMeta.TYPE_GROUP_CONCAT_STRING:
+        case GroupByMeta.TYPE_GROUP_CONCAT_STRING_CRLF:
           vMeta = new ValueMetaString( fieldName );
           v = new StringBuilder();
           break;
diff --git 
a/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
 
b/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
index e41cae3..ddf7ef5 100644
--- 
a/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
+++ 
b/engine/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
@@ -97,6 +97,7 @@ public class GroupByMeta extends BaseTransformMeta implements 
ITransformMeta<Gro
 
   public static final int TYPE_GROUP_CONCAT_STRING = 16;
 
+
   public static final int TYPE_GROUP_COUNT_DISTINCT = 17;
 
   public static final int TYPE_GROUP_COUNT_ANY = 18;
@@ -105,6 +106,8 @@ public class GroupByMeta extends BaseTransformMeta 
implements ITransformMeta<Gro
 
   public static final int TYPE_GROUP_PERCENTILE_NEAREST_RANK = 20;
 
+  public static final int TYPE_GROUP_CONCAT_STRING_CRLF = 21;
+
   public static final String[]
       typeGroupCode = /* WARNING: DO NOT TRANSLATE THIS. WE ARE SERIOUS, DON'T 
TRANSLATE! */ {
     "-",
@@ -127,7 +130,8 @@ public class GroupByMeta extends BaseTransformMeta 
implements ITransformMeta<Gro
     "COUNT_DISTINCT",
     "COUNT_ANY",
     "STD_DEV_SAMPLE",
-    "PERCENTILE_NEAREST_RANK"
+    "PERCENTILE_NEAREST_RANK",
+    "CONCAT_STRING_CRLF"
   };
 
   public static final String[] typeGroupLongDesc = {
@@ -151,7 +155,9 @@ public class GroupByMeta extends BaseTransformMeta 
implements ITransformMeta<Gro
     BaseMessages.getString(PKG, 
"GroupByMeta.TypeGroupLongDesc.COUNT_DISTINCT"),
     BaseMessages.getString(PKG, "GroupByMeta.TypeGroupLongDesc.COUNT_ANY"),
     BaseMessages.getString(PKG, 
"GroupByMeta.TypeGroupLongDesc.STANDARD_DEVIATION_SAMPLE"),
-    BaseMessages.getString(PKG, 
"GroupByMeta.TypeGroupLongDesc.PERCENTILE_NEAREST_RANK")
+    BaseMessages.getString(PKG, 
"GroupByMeta.TypeGroupLongDesc.PERCENTILE_NEAREST_RANK"),
+          BaseMessages.getString(PKG, 
"GroupByMeta.TypeGroupLongDesc.CONCAT_STRING_CRLF")
+
   };
 
   /** All rows need to pass, adding an extra row at the end of each 
group/block. */
@@ -435,6 +441,7 @@ public class GroupByMeta extends BaseTransformMeta 
implements ITransformMeta<Gro
             valueType = IValueMeta.TYPE_NUMBER;
             break;
           case TYPE_GROUP_CONCAT_STRING:
+          case TYPE_GROUP_CONCAT_STRING_CRLF:
             valueType = IValueMeta.TYPE_STRING;
             break;
           default:
diff --git 
a/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_en_US.properties
 
b/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_en_US.properties
index c15cd02..e22af7b 100644
--- 
a/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_en_US.properties
+++ 
b/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_en_US.properties
@@ -78,6 +78,7 @@ GroupByDialog.GroupByWarningDialog.DialogMessage=If the 
incoming data is not sor
 GroupByMeta.TypeGroupLongDesc.MEDIAN=Median
 GroupByMeta.TypeGroupLongDesc.COUNT_ANY=Number of rows (without field argument)
 GroupByMeta.TypeGroupLongDesc.CONCAT_STRING=Concatenate strings separated by
+GroupByMeta.TypeGroupLongDesc.CONCAT_STRING_CRLF=Concatenate strings separated 
by CRLF
 
 GroupByMeta.Injection.PASS_ALL_ROWS = Pass all rows?
 GroupByMeta.Injection.TEMP_DIRECTORY=Temporary directory
diff --git 
a/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_it_IT.properties
 
b/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_it_IT.properties
index 0c2a698..d089b05 100644
--- 
a/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_it_IT.properties
+++ 
b/engine/src/main/resources/org/apache/hop/pipeline/transforms/groupby/messages/messages_it_IT.properties
@@ -19,33 +19,33 @@
 #
 
 GroupByDialog.GroupByWarningDialog.DialogTitle=Attenzione\!
-GroupByDialog.FailedToGetFields.DialogMessage=Impossibile prelevare i campi 
dai passi precedenti a causa di un errore
+GroupByDialog.FailedToGetFields.DialogMessage=Impossibile prelevare i campi 
dai transforms precedenti a causa di un errore
 GroupByDialog.GetLookupFields.Button=&Preleva campi di lookup
-GroupByMeta.CheckResult.ReceivingInfoOK=Il passo sta ricevendo informazioni 
dagli altri passi.
+GroupByMeta.CheckResult.ReceivingInfoOK=Il transform sta ricevendo 
informazioni dagli altri transforms.
 GroupBy.Log.GroupFieldCouldNotFound=Il campo di raggruppamento [{0}] non 
\u00E8 stato trovato\!
 GroupByDialog.Aggregates.Label=Aggregati\: 
-GroupByMeta.CheckResult.NoInputError=Nessun input ricevuto dagli altri passi\!
+GroupByMeta.CheckResult.NoInputError=Nessun input ricevuto dai transforms 
precedenti\!
 GroupByDialog.AlwaysAddResult.Label=Restituisci sempre una riga di risultato
 GroupByDialog.LineNrField.Label=Nome campo del numero linea
 GroupByMeta.TypeGroupLongDesc.LAST=Ultimo valore non nullo
 GroupByDialog.ColumnInfo.Type=Tipo
 GroupByDialog.Shell.Title=Raggruppa per
 GroupByDialog.Group.Label=Campi che formano il gruppo\: 
-GroupByDialog.FailedToGetFields.DialogTitle=Recupero campi fallito
+GroupByDialog.FailedToGetFields.DialogTitle=Recupero dei campi fallito
 GroupBy.LineNumber=Linea n\u00B0 
-GroupByDialog.AlwaysAddResult.ToolTip=Per avere la sicurezza di avere come 
output una corretta aggregazione, \nviene sempre mandata in output almeno una 
riga, anche se non ci sono righe d''input.\nIn questo modo il comportamento 
\u00E8 consistente con l''aggregazione nel GROUP BY dell''SQL.
-GroupBy.Exception.UnableToCloseInputStream=Impossibile chiudere l''input 
stream\!
+GroupByDialog.AlwaysAddResult.ToolTip=Per avere la sicurezza di avere come 
output una corretta aggregazione, \nviene sempre mandata in output almeno una 
riga, anche se non ci sono righe di input.\nIn questo modo il comportamento 
\u00E8 consistente con l''aggregazione rispetto alla GROUP BY dell''SQL.
+GroupBy.Exception.UnableToCloseInputStream=Impossibile chiudere lo stream di 
input\!
 GroupByMeta.TypeGroupLongDesc.CONCAT_ALL=Numero dei valori
 GroupByMeta.TypeGroupLongDesc.CUMUMALTIVE_SUM=Somma cumulata (opzione valida 
solo per tutte le righe\!)
-GroupByDialog.FilePrefix.Label=Prefisso TMP-file 
+GroupByDialog.FilePrefix.Label=Prefisso del file temporaneo 
 GroupByDialog.Browse.Button=&Sfoglia...
 GroupByMeta.TypeGroupLongDesc.CUMUMALTIVE_AVERAGE=Media cumulata (opzione 
valida solo per tutte le righe\!)
 GroupByMeta.TypeGroupLongDesc.AVERAGE=Media
-GroupByDialog.GroupByWarningDialog.Option2=Prego, non mostrare pi\u00F9 questo 
messaggio.
+GroupByDialog.GroupByWarningDialog.Option2=Per favore, non mostrare pi\u00F9 
questo messaggio.
 GroupByMeta.TypeGroupLongDesc.MIN=Minimo
 GroupByMeta.TypeGroupLongDesc.PERCENTILE=Percentile
 GroupByDialog.GroupByWarningDialog.Option1=Capisco
-GroupByDialog.GetFields.Button=&Preleva campi
+GroupByDialog.GetFields.Button=&Preleva i campi
 GroupByDialog.ColumnInfo.Value=Valore
 GroupByDialog.ColumnInfo.GroupField=Campo di raggruppamento
 GroupByDialog.ColumnInfo.Name=Nome
@@ -53,22 +53,23 @@ GroupByDialog.ColumnInfo.Subject=Oggetto
 GroupByDialog.TempDir.Label=Cartella dei file temporanei
 GroupByMeta.TypeGroupLongDesc.FIRST=Primo valore non nullo
 GroupByMeta.TypeGroupLongDesc.LAST_INCL_NULL=Ultimo valore
-GroupByMeta.TypeGroupLongDesc.CONCAT_COMMA=Concatena le stringhe separate da ,
+GroupByMeta.TypeGroupLongDesc.CONCAT_COMMA=Concatena le stringhe separandole 
con ,
 GroupByDialog.Log.GettingKeyInfo=recupero informazioni chiavi...
 GroupByMeta.TypeGroupLongDesc.STANDARD_DEVIATION=Deviazione standard
-GroupByDialog.AddLineNr.Label=Aggiungi numero linea, riparti ad ogni gruppo
-GroupBy.Exception.UnableToReadBackRowFromTemporaryFile=Impossibile leggere 
riga dal file temporaneo\!
+GroupByDialog.AddLineNr.Label=Aggiungi numero linea ed azzera a break di gruppo
+GroupBy.Exception.UnableToReadBackRowFromTemporaryFile=Impossibile leggere la 
riga dal file temporaneo\!
 GroupByDialog.ColumnInfo.Value.Tooltip=Riempire qua se sono richiesti pi\u00F9 
valori.\nPer esempio per l''opzione ''Concatenare le stringhe separate da''.
-GroupBy.Log.AggregateSubjectFieldCouldNotFound=Il campo oggetto aggregato 
[{0}] non \u00E8 stato trovato\!
-GroupByDialog.AllRows.Label=Includere tutte le righe? 
+GroupBy.Log.AggregateSubjectFieldCouldNotFound=Il campo su cui effettuare 
l''aggregazione [{0}] non \u00E8 stato trovato\!
+GroupByDialog.AllRows.Label=Devo includere tutte le righe? 
 GroupByMeta.TypeGroupLongDesc.SUM=Somma
-GroupByMeta.Exception.UnableToLoadTransformMetaFromXML=Impossibile caricare le 
informazioni del passo da XML
-GroupBy.Exception.UnableToCreateTemporaryFile=Impossibile creare file 
temporaneo
+GroupByMeta.Exception.UnableToLoadTransformMetaFromXML=Impossibile caricare le 
informazioni del transform dai metadati XML
+GroupBy.Exception.UnableToCreateTemporaryFile=Impossibile creare il file 
temporaneo
 GroupByMeta.TypeGroupLongDesc.FIRST_INCL_NULL=Primo valore
 GroupByMeta.TypeGroupLongDesc.COUNT_DISTINCT=Numero di valori distinti (N)
-GroupByDialog.TransformName.Label=Nome del passo
+GroupByDialog.TransformName.Label=Nome del transform
 GroupByMeta.TypeGroupLongDesc.MAX=Massimo
-GroupByDialog.GroupByWarningDialog.DialogMessage=Il gruppo per funzione 
richiede l''input ordinato sulle chiavi specificate.{0} Se non viene ordinato, 
i risultati potrebbero non essere corretti.
+GroupByDialog.GroupByWarningDialog.DialogMessage=Il raggruppamento, per 
funzonare correttamente, richiede che l''input sa ordinato sulle chiavi 
specificate.{0} Se non viene ordinato, i risultati potrebbero non essere 
corretti.
 GroupByMeta.TypeGroupLongDesc.MEDIAN=Mediana
 GroupByMeta.TypeGroupLongDesc.COUNT_ANY=Numero di righe (senza argomenti di 
campo)
-GroupByMeta.TypeGroupLongDesc.CONCAT_STRING=Concatena le string separate da
+GroupByMeta.TypeGroupLongDesc.CONCAT_STRING=Concatena le stringhe separandole 
con
+GroupByMeta.TypeGroupLongDesc.CONCAT_STRING_CRLF=Concatena le stringhe 
separandole con CRLF

Reply via email to