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/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new 62c07ca86e Filter "Specify copies" GuiAction if transform doesn't 
support it #3439 Disable multi-copy execution support for 4 transforms: - Abort 
- Analytic query - Group by - Memory group by
     new 90d1b9d58c Merge pull request #3446 from nadment/3439
62c07ca86e is described below

commit 62c07ca86ecdc06a2f297c7b4e7e3a0edaacd059
Author: Nicolas Adment <[email protected]>
AuthorDate: Wed Nov 22 21:04:15 2023 +0100

    Filter "Specify copies" GuiAction if transform doesn't support it #3439
    Disable multi-copy execution support for 4 transforms:
    - Abort
    - Analytic query
    - Group by
    - Memory group by
---
 .../java/org/apache/hop/pipeline/transform/BaseTransformMeta.java  | 5 +++++
 .../java/org/apache/hop/pipeline/transform/ITransformMeta.java     | 5 +++++
 .../main/java/org/apache/hop/pipeline/transform/TransformMeta.java | 4 ++++
 .../java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java   | 5 +++++
 .../hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java   | 5 +++++
 .../org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java    | 5 +++++
 .../hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java      | 5 +++++
 .../apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java    | 7 ++++++-
 8 files changed, 40 insertions(+), 1 deletion(-)

diff --git 
a/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java 
b/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
index 7f369d5c6a..7f92b16bdc 100644
--- 
a/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
+++ 
b/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
@@ -408,6 +408,11 @@ public class BaseTransformMeta<Main extends ITransform, 
Data extends ITransformD
     return false;
   }
 
+  @Override
+  public boolean supportsMultiCopyExecution() {
+    return true;
+  }
+  
   /** This method is added to exclude certain transforms from layout checking. 
*/
   public boolean excludeFromRowLayoutVerification() {
     return false;
diff --git 
a/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java 
b/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
index 89406545ca..29b3e0e525 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
@@ -330,6 +330,11 @@ public interface ITransformMeta {
    */
   boolean supportsErrorHandling();
 
+  /**
+   * @return true if this transform supports multi-copies execution. By 
default return true.
+   */
+  boolean supportsMultiCopyExecution();
+  
   /**
    * Get a list of all the resource dependencies that the transform is 
depending on.
    *
diff --git 
a/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java 
b/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
index 24cabaad87..2c08350171 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
@@ -665,6 +665,10 @@ public class TransformMeta
     return null;
   }
 
+  public boolean supportsMultiCopyExecution() {
+    return transform.supportsMultiCopyExecution();
+  }
+  
   public boolean supportsErrorHandling() {
     return transform.supportsErrorHandling();
   }
diff --git 
a/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
 
b/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
index 4b54d16b14..a90cbff925 100644
--- 
a/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
+++ 
b/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
@@ -204,4 +204,9 @@ public class AbortMeta extends BaseTransformMeta<Abort, 
AbortData> {
   public void setAbortOption(AbortOption abortOption) {
     this.abortOption = abortOption;
   }
+
+  @Override
+  public boolean supportsMultiCopyExecution() {
+    return false;
+  }    
 }
diff --git 
a/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
 
b/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
index d6495cab2f..ca499c10ce 100644
--- 
a/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
+++ 
b/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
@@ -178,4 +178,9 @@ public class AnalyticQueryMeta extends 
BaseTransformMeta<AnalyticQuery, Analytic
   public void setQueryFields(List<QueryField> queryFields) {
     this.queryFields = queryFields;
   }
+
+  @Override
+  public boolean supportsMultiCopyExecution() {
+    return false;
+  }
 }
diff --git 
a/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
 
b/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
index 6b6eabc4f9..28940f7360 100644
--- 
a/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
+++ 
b/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
@@ -442,4 +442,9 @@ public class GroupByMeta extends BaseTransformMeta<GroupBy, 
GroupByData> {
   public void setAggregations(List<Aggregation> aggregations) {
     this.aggregations = aggregations;
   }
+  
+  @Override
+  public boolean supportsMultiCopyExecution() {
+    return false;
+  }  
 }
diff --git 
a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
 
b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
index 8e38d9265a..55c4ecabe8 100644
--- 
a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
+++ 
b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
@@ -475,4 +475,9 @@ public class MemoryGroupByMeta extends 
BaseTransformMeta<MemoryGroupBy, MemoryGr
   public void setAlwaysGivingBackOneRow(boolean alwaysGivingBackOneRow) {
     this.alwaysGivingBackOneRow = alwaysGivingBackOneRow;
   }
+
+  @Override
+  public boolean supportsMultiCopyExecution() {
+    return false;
+  }  
 }
diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
 
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
index dd496538db..0e38652d0b 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
@@ -265,6 +265,8 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
       "pipeline-graph-transform-10650-rows-copy";
   public static final String 
ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ROWS_DISTRIBUTE =
       "pipeline-graph-transform-10600-rows-distribute";
+  public static final String ACTION_ID_PIPELINE_GRAPH_TRANSFORM_SPECIFY_COPIES 
=
+  "pipeline-graph-transform-10100-copies";   
   public static final String ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ERROR_HANDLING 
=
       "pipeline-graph-transform-10800-error-handling"; 
   public static final String 
ACTION_ID_PIPELINE_GRAPH_TRANSFORM_VIEW_EXECUTION_INFO =
@@ -2279,7 +2281,7 @@ public class HopGuiPipelineGraph extends 
HopGuiAbstractGraph
   }
 
   @GuiContextAction(
-      id = "pipeline-graph-transform-10100-copies",
+      id = ACTION_ID_PIPELINE_GRAPH_TRANSFORM_SPECIFY_COPIES,
       parentId = HopGuiPipelineTransformContext.CONTEXT_ID,
       type = GuiActionType.Modify,
       name = "i18n::HopGuiPipelineGraph.TransformAction.SpecifyCopies.Name",
@@ -2441,6 +2443,9 @@ public class HopGuiPipelineGraph extends 
HopGuiAbstractGraph
     if (contextActionId.equals(ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ROWS_COPY)) {
       return context.getTransformMeta().isDistributes();
     }
+    if 
(contextActionId.equals(ACTION_ID_PIPELINE_GRAPH_TRANSFORM_SPECIFY_COPIES)) {
+      return context.getTransformMeta().supportsMultiCopyExecution();
+    }
     if 
(contextActionId.equals(ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ERROR_HANDLING)) {
       return context.getTransformMeta().supportsErrorHandling();
     }

Reply via email to