You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2021/04/16 22:06:49 UTC

[incubator-hop] branch master updated: HOP-2792 Add CRLFto concatenate option in GroupBy transform

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 <se...@serasoft.it>
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