[ 
https://issues.apache.org/jira/browse/GOBBLIN-2153?focusedWorklogId=934553&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-934553
 ]

ASF GitHub Bot logged work on GOBBLIN-2153:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 12/Sep/24 15:29
            Start Date: 12/Sep/24 15:29
    Worklog Time Spent: 10m 
      Work Description: Blazer-007 commented on code in PR #4052:
URL: https://github.com/apache/gobblin/pull/4052#discussion_r1756762437


##########
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/ddm/util/TemporalWorkFlowUtils.java:
##########
@@ -0,0 +1,52 @@
+package org.apache.gobblin.temporal.ddm.util;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import lombok.NonNull;
+import lombok.experimental.UtilityClass;
+import org.apache.gobblin.configuration.ConfigurationKeys;
+import org.apache.gobblin.temporal.ddm.work.assistance.Help;
+
+
+/**
+ * Utility class for handling Temporal workflow-related operations.
+ */
+@UtilityClass
+public class TemporalWorkFlowUtils {
+
+  /**
+   * Generates search attributes for a WorkFlow  based on the provided GAAS 
job properties.
+   *
+   * @param jobProps the properties of the job, must not be null.
+   * @return a map containing the generated search attributes.
+   */
+  public static Map<String, Object> generateGaasSearchAttributes(@NonNull 
Properties jobProps) {
+    Map<String, Object> attributes = new HashMap<>();
+    attributes.put(Help.GAAS_FLOW_KEY, String.format("%s.%s", 
jobProps.getProperty(ConfigurationKeys.FLOW_GROUP_KEY),
+        jobProps.getProperty(ConfigurationKeys.FLOW_NAME_KEY)));
+    attributes.put(Help.USER_TO_PROXY_SEARCH_KEY, 
jobProps.getProperty(Help.USER_TO_PROXY_KEY));
+    return attributes;
+  }
+
+  /**
+   * Converts search attribute values from a map of lists to a map of objects.
+   *
+   * @param searchAttributes a map where the keys are attribute names and the 
values are lists of attribute values.
+   *                         Can be null.
+   * @return a map where the keys are attribute names and the values are the 
corresponding attribute values.
+   *         If the input map is null, an empty map is returned.
+   */
+  public static Map<String, Object> 
convertSearchAttributesValuesFromListToObject(
+      Map<String, List<?>> searchAttributes) {
+    if (searchAttributes == null) {
+      return null;

Review Comment:
   I was thinking of Optional<> as return type, since it is null safe by 
default but as a parameter can be good way too.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 934553)
    Time Spent: 2h  (was: 1h 50m)

> Add SearchAttributes to filter Temporal Flows in the UI
> -------------------------------------------------------
>
>                 Key: GOBBLIN-2153
>                 URL: https://issues.apache.org/jira/browse/GOBBLIN-2153
>             Project: Apache Gobblin
>          Issue Type: Improvement
>            Reporter: Aditya Pratap Singh
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> Add SearchAttributes to filter Temporal Flows in the UI



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to