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

zehnder pushed a commit to branch 3112-opc-ua-multi-node-selection-editor
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to 
refs/heads/3112-opc-ua-multi-node-selection-editor by this push:
     new d47e4f4b4c feat(#3112): Refactor parameter extractor for tree 
properties
d47e4f4b4c is described below

commit d47e4f4b4c1a9f57b460050202c3f640cea4adfb
Author: Philipp Zehnder <[email protected]>
AuthorDate: Tue Aug 13 09:56:57 2024 +0200

    feat(#3112): Refactor parameter extractor for tree properties
---
 .../api/extractor/IParameterExtractor.java         |   7 +
 .../adapter/OpcUaNodeMetadataExtractorTest.java    |  67 ++---
 .../sdk/extractor/AbstractParameterExtractor.java  | 275 ++++++++++++++-------
 3 files changed, 229 insertions(+), 120 deletions(-)

diff --git 
a/streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/extractor/IParameterExtractor.java
 
b/streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/extractor/IParameterExtractor.java
index dbcdb4eba4..396f0f3961 100644
--- 
a/streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/extractor/IParameterExtractor.java
+++ 
b/streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/extractor/IParameterExtractor.java
@@ -60,6 +60,13 @@ public interface IParameterExtractor {
 
   <V> List<V> selectedMultiValues(String internalName, Class<V> targetClass);
 
+  <V> List<V> selectedTreeNodesInternalNames(String internalName,
+                                             Class<V> targetClass);
+
+  /**
+   * @deprecated use {@link #selectedTreeNodesInternalNames(String, Class)} 
instead
+   */
+  @Deprecated(since = "0.97.0", forRemoval = true)
   <V> List<V> selectedTreeNodesInternalNames(String internalName,
                                              Class<V> targetClass,
                                              boolean onlyDataNodes);
diff --git 
a/streampipes-extensions/streampipes-connectors-opcua/src/test/java/org/apache/streampipes/extensions/connectors/opcua/adapter/OpcUaNodeMetadataExtractorTest.java
 
b/streampipes-extensions/streampipes-connectors-opcua/src/test/java/org/apache/streampipes/extensions/connectors/opcua/adapter/OpcUaNodeMetadataExtractorTest.java
index d37f81d8c3..4a5360563f 100644
--- 
a/streampipes-extensions/streampipes-connectors-opcua/src/test/java/org/apache/streampipes/extensions/connectors/opcua/adapter/OpcUaNodeMetadataExtractorTest.java
+++ 
b/streampipes-extensions/streampipes-connectors-opcua/src/test/java/org/apache/streampipes/extensions/connectors/opcua/adapter/OpcUaNodeMetadataExtractorTest.java
@@ -25,9 +25,10 @@ import 
org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText;
 import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
 import org.eclipse.milo.opcua.stack.core.types.builtin.QualifiedName;
 import org.eclipse.milo.opcua.stack.core.types.enumerated.NodeClass;
-import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -45,8 +46,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractDescription();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("Description"));
-    Assertions.assertEquals(description, metadata.get("Description"));
+    assertTrue(metadata.containsKey("Description"));
+    assertEquals(description, metadata.get("Description"));
   }
 
   @Test
@@ -58,8 +59,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractDescription();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("Description"));
-    Assertions.assertEquals("", metadata.get("Description"));
+    assertTrue(metadata.containsKey("Description"));
+    assertEquals("", metadata.get("Description"));
   }
 
   @Test
@@ -71,8 +72,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractNamespaceIndex();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("NamespaceIndex"));
-    Assertions.assertEquals("1", metadata.get("NamespaceIndex"));
+    assertTrue(metadata.containsKey("NamespaceIndex"));
+    assertEquals("1", metadata.get("NamespaceIndex"));
   }
 
   @Test
@@ -84,8 +85,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractNamespaceIndex();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("NamespaceIndex"));
-    Assertions.assertEquals("", metadata.get("NamespaceIndex"));
+    assertTrue(metadata.containsKey("NamespaceIndex"));
+    assertEquals("", metadata.get("NamespaceIndex"));
   }
 
   @Test
@@ -97,8 +98,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractNodeClass();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("NodeClass"));
-    Assertions.assertEquals("Variable", metadata.get("NodeClass"));
+    assertTrue(metadata.containsKey("NodeClass"));
+    assertEquals("Variable", metadata.get("NodeClass"));
   }
 
   @Test
@@ -110,8 +111,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractNodeClass();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("NodeClass"));
-    Assertions.assertEquals("", metadata.get("NodeClass"));
+    assertTrue(metadata.containsKey("NodeClass"));
+    assertEquals("", metadata.get("NodeClass"));
   }
 
   @Test
@@ -124,8 +125,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractBrowseName();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("BrowseName"));
-    Assertions.assertEquals(expectedNodeName, metadata.get("BrowseName"));
+    assertTrue(metadata.containsKey("BrowseName"));
+    assertEquals(expectedNodeName, metadata.get("BrowseName"));
   }
 
   @Test
@@ -137,8 +138,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractBrowseName();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("BrowseName"));
-    Assertions.assertEquals("", metadata.get("BrowseName"));
+    assertTrue(metadata.containsKey("BrowseName"));
+    assertEquals("", metadata.get("BrowseName"));
   }
 
   @Test
@@ -151,8 +152,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractDisplayName();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("DisplayName"));
-    Assertions.assertEquals(expectedName, metadata.get("DisplayName"));
+    assertTrue(metadata.containsKey("DisplayName"));
+    assertEquals(expectedName, metadata.get("DisplayName"));
   }
 
   @Test
@@ -164,8 +165,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractDisplayName();
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("DisplayName"));
-    Assertions.assertEquals("", metadata.get("DisplayName"));
+    assertTrue(metadata.containsKey("DisplayName"));
+    assertEquals("", metadata.get("DisplayName"));
   }
 
   @Test
@@ -177,8 +178,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractSourceTime(value);
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("SourceTime"));
-    Assertions.assertEquals(date, metadata.get("SourceTime"));
+    assertTrue(metadata.containsKey("SourceTime"));
+    assertEquals(date, metadata.get("SourceTime"));
   }
 
   @Test
@@ -190,8 +191,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractSourceTime(value);
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("SourceTime"));
-    Assertions.assertEquals("", metadata.get("SourceTime"));
+    assertTrue(metadata.containsKey("SourceTime"));
+    assertEquals("", metadata.get("SourceTime"));
   }
 
   @Test
@@ -203,8 +204,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractServerTime(value);
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("ServerTime"));
-    Assertions.assertEquals(date, metadata.get("ServerTime"));
+    assertTrue(metadata.containsKey("ServerTime"));
+    assertEquals(date, metadata.get("ServerTime"));
   }
 
   @Test
@@ -216,8 +217,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractServerTime(value);
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("ServerTime"));
-    Assertions.assertEquals("", metadata.get("ServerTime"));
+    assertTrue(metadata.containsKey("ServerTime"));
+    assertEquals("", metadata.get("ServerTime"));
   }
 
   @Test
@@ -230,8 +231,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractDataType(dataTypeNode);
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("DataType"));
-    Assertions.assertEquals(expectedName, metadata.get("DataType"));
+    assertTrue(metadata.containsKey("DataType"));
+    assertEquals(expectedName, metadata.get("DataType"));
   }
 
   @Test
@@ -243,8 +244,8 @@ public class OpcUaNodeMetadataExtractorTest {
     extractor.extractDataType(dataTypeNode);
 
     var metadata = extractor.getMetadata();
-    Assertions.assertTrue(metadata.containsKey("DataType"));
-    Assertions.assertEquals("", metadata.get("DataType"));
+    assertTrue(metadata.containsKey("DataType"));
+    assertEquals("", metadata.get("DataType"));
   }
 
   private OpcUaNodeMetadataExtractor getExtractor(UaNode node) {
diff --git 
a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
 
b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
index 2bec1f786f..20e02705fc 100644
--- 
a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
+++ 
b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/extractor/AbstractParameterExtractor.java
@@ -67,7 +67,8 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
 
   public AbstractParameterExtractor(T sepaElement) {
     this.sepaElement = sepaElement;
-    this.typeParser = TypeParser.newBuilder().build();
+    this.typeParser = TypeParser.newBuilder()
+                                .build();
   }
 
   @Override
@@ -78,7 +79,8 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
         .getEventSchema()
         .getEventProperties()
         .stream()
-        .filter(ep -> ep.getRuntimeName().equals(runtimeName))
+        .filter(ep -> ep.getRuntimeName()
+                        .equals(runtimeName))
         .map(ep -> (EventPropertyPrimitive) ep)
         .findFirst()
         .get()
@@ -117,7 +119,7 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
   @Override
   public <V> V singleValueParameter(String internalName, Class<V> targetClass) 
{
     return typeParser.parse(getStaticPropertyByName(internalName, 
FreeTextStaticProperty.class)
-        .getValue(), targetClass);
+                                .getValue(), targetClass);
   }
 
   @Override
@@ -127,8 +129,10 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
 
   @Override
   public String secretValue(String internalName) {
-    return (getStaticPropertyByName(internalName, SecretStaticProperty.class)
-        .getValue());
+    return (
+        getStaticPropertyByName(internalName, SecretStaticProperty.class)
+            .getValue()
+    );
   }
 
   @Override
@@ -151,15 +155,17 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
     return getStaticPropertyByName(internalName, 
FileStaticProperty.class).getLocationPath();
   }
 
-  private <V, T extends SelectionStaticProperty> V selectedSingleValue(String 
internalName, Class<V> targetClass,
-                                                                       
Class<T> oneOfStaticProperty) {
+  private <V, T extends SelectionStaticProperty> V selectedSingleValue(
+      String internalName, Class<V> targetClass,
+      Class<T> oneOfStaticProperty
+  ) {
     return typeParser.parse(getStaticPropertyByName(internalName, 
oneOfStaticProperty)
-        .getOptions()
-        .stream()
-        .filter(Option::isSelected)
-        .findFirst()
-        .get()
-        .getName(), targetClass);
+                                .getOptions()
+                                .stream()
+                                .filter(Option::isSelected)
+                                .findFirst()
+                                .get()
+                                .getName(), targetClass);
   }
 
   @Override
@@ -170,12 +176,12 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
   @Override
   public <V> V selectedSingleValueInternalName(String internalName, Class<V> 
targetClass) {
     return typeParser.parse(getStaticPropertyByName(internalName, 
OneOfStaticProperty.class)
-        .getOptions()
-        .stream()
-        .filter(Option::isSelected)
-        .findFirst()
-        .get()
-        .getInternalName(), targetClass);
+                                .getOptions()
+                                .stream()
+                                .filter(Option::isSelected)
+                                .findFirst()
+                                .get()
+                                .getInternalName(), targetClass);
   }
 
   @Override
@@ -188,14 +194,18 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
         .collect(Collectors.toList());
   }
 
-  private Boolean comparePropertyRuntimeType(EventProperty eventProperty,
-                                             Datatypes datatype) {
+  private Boolean comparePropertyRuntimeType(
+      EventProperty eventProperty,
+      Datatypes datatype
+  ) {
     return comparePropertyRuntimeType(eventProperty, datatype, false);
   }
 
-  private Boolean comparePropertyRuntimeType(EventProperty eventProperty,
-                                             Datatypes datatype,
-                                             boolean ignoreListElements) {
+  private Boolean comparePropertyRuntimeType(
+      EventProperty eventProperty,
+      Datatypes datatype,
+      boolean ignoreListElements
+  ) {
     EventPropertyPrimitive testProperty = null;
     if (eventProperty instanceof EventPropertyList && !ignoreListElements) {
       testProperty = (EventPropertyPrimitive) ((EventPropertyList) 
eventProperty).getEventProperty();
@@ -204,7 +214,8 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
     }
 
     if (testProperty != null) {
-      return testProperty.getRuntimeType().equals(datatype.toString());
+      return testProperty.getRuntimeType()
+                         .equals(datatype.toString());
     } else {
       return false;
     }
@@ -240,29 +251,68 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
   }
 
   @Override
-  public <V> List<V> selectedTreeNodesInternalNames(String internalName,
-                                                    Class<V> targetClass,
-                                                    boolean onlyDataNodes) {
+  /**
+   * Extracts the user configuration from the tree static property.
+   * @param internalName the internal name of the static property
+   * @param targetClass the target class of the internal names
+   * @return the list of selected nodes internal names
+   */
+  public <V> List<V> selectedTreeNodesInternalNames(
+      String internalName,
+      Class<V> targetClass
+  ) {
+    var runtimeResolvableTreeInputStaticProperty = getStaticPropertyByName(
+        internalName,
+        RuntimeResolvableTreeInputStaticProperty.class
+    );
+
+    return 
runtimeResolvableTreeInputStaticProperty.getSelectedNodesInternalNames()
+                   .stream()
+                   .map(node -> typeParser.parse(node, targetClass))
+                   .toList();
+  }
+
+  @Override
+  @Deprecated(since = "0.97.0", forRemoval = true)
+  /**
+   * This method returns a list of all nodes.
+   * Therefore, it requires both the property selectedNodesInternalNames and 
the nodes property to be set.
+   * The nodes are used to check for the data type. The problem with this 
implementation is, is that the client (e.g.
+   * UI) must get the nodes from the OPC UA server.
+   *
+   * @deprecated use {@link #selectedTreeNodesInternalNames(String, Class)} 
instead
+   */
+  public <V> List<V> selectedTreeNodesInternalNames(
+      String internalName,
+      Class<V> targetClass,
+      boolean onlyDataNodes
+  ) {
     List<TreeInputNode> allNodes = new ArrayList<>();
     RuntimeResolvableTreeInputStaticProperty sp =
         getStaticPropertyByName(internalName, 
RuntimeResolvableTreeInputStaticProperty.class);
-    if (!sp.getNodes().isEmpty()) {
-      sp.getNodes().forEach(node -> buildFlatTree(node, allNodes));
+    if (!sp.getNodes()
+           .isEmpty()) {
+      sp.getNodes()
+          .forEach(node -> buildFlatTree(node, allNodes));
     }
 
     if (!allNodes.isEmpty()) {
       return sp.getSelectedNodesInternalNames()
-          .stream()
-          .filter(node -> {
-            if (!onlyDataNodes) {
-              return true;
-            } else {
-              var existingNode = allNodes.stream().filter(n -> 
n.getInternalNodeName().equals(node)).findFirst();
-              return existingNode.map(TreeInputNode::isDataNode).orElse(false);
-            }
-          })
-          .map(node -> typeParser.parse(node, targetClass))
-          .collect(Collectors.toList());
+               .stream()
+               .filter(node -> {
+                 if (!onlyDataNodes) {
+                   return true;
+                 } else {
+                   var existingNode = allNodes.stream()
+                                              .filter(n -> 
n.getInternalNodeName()
+                                                            .equals(node))
+                                              .findFirst();
+                   return existingNode.map(TreeInputNode::isDataNode)
+                                      .orElse(false);
+                 }
+               })
+               .map(node -> typeParser.parse(node, targetClass))
+               .collect(Collectors.toList());
     } else {
       return new ArrayList<>();
     }
@@ -271,13 +321,16 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
   private void buildFlatTree(TreeInputNode parent, List<TreeInputNode> 
collector) {
     collector.add(parent);
     if (parent.hasChildren()) {
-      parent.getChildren().forEach(child -> buildFlatTree(child, collector));
+      parent.getChildren()
+            .forEach(child -> buildFlatTree(child, collector));
     }
   }
 
   @Override
-  public <W extends StaticProperty> W getStaticPropertyByName(String 
internalName, Class<W>
-      spType) {
+  public <W extends StaticProperty> W getStaticPropertyByName(
+      String internalName, Class<W>
+      spType
+  ) {
     return spType.cast(getStaticPropertyByName(internalName));
   }
 
@@ -286,10 +339,13 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
     return getStaticPropertyByName(sepaElement.getStaticProperties(), name);
   }
 
-  private StaticProperty getStaticPropertyByName(List<StaticProperty> 
staticProperties,
-                                                 String name) {
+  private StaticProperty getStaticPropertyByName(
+      List<StaticProperty> staticProperties,
+      String name
+  ) {
     for (StaticProperty p : staticProperties) {
-      if (p.getInternalName().equals(name)) {
+      if (p.getInternalName()
+           .equals(name)) {
         return p;
       } else if (p.getStaticPropertyType() == 
StaticPropertyType.StaticPropertyGroup) {
         return getStaticPropertyByName(((StaticPropertyGroup) 
p).getStaticProperties(), name);
@@ -297,7 +353,8 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
         StaticProperty tmp = 
getStaticPropertyFromSelectedAlternative((StaticPropertyAlternatives) p);
         if (tmp != null) {
           tmp = getStaticPropertyByName(Collections.singletonList(tmp), name);
-          if (tmp != null && tmp.getInternalName().equals(name)) {
+          if (tmp != null && tmp.getInternalName()
+                                .equals(name)) {
             return tmp;
           }
         }
@@ -308,11 +365,11 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
 
   private StaticProperty 
getStaticPropertyFromSelectedAlternative(StaticPropertyAlternatives sp) {
     return sp.getAlternatives()
-        .stream()
-        .filter(StaticPropertyAlternative::getSelected)
-        .findFirst()
-        .get()
-        .getStaticProperty();
+             .stream()
+             .filter(StaticPropertyAlternative::getSelected)
+             .findFirst()
+             .get()
+             .getStaticProperty();
   }
 
   @Override
@@ -342,13 +399,15 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
   public String propertyDatatype(String runtimeName) {
     List<EventProperty> eventProperties = new ArrayList<>();
     for (SpDataStream is : sepaElement.getInputStreams()) {
-      eventProperties.addAll(is.getEventSchema().getEventProperties());
+      eventProperties.addAll(is.getEventSchema()
+                               .getEventProperties());
     }
 
     Optional<EventProperty> matchedProperty = eventProperties
         .stream()
-        .filter(ep -> ep.getRuntimeName().equals
-            (runtimeName))
+        .filter(ep -> ep.getRuntimeName()
+                        .equals
+                            (runtimeName))
         .findFirst();
 
     if (matchedProperty.isPresent()) {
@@ -368,7 +427,7 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
 
   @Override
   public List<EventProperty> getEventPropertiesBySelector(List<String> 
selectors) throws
-      SpRuntimeException {
+                                                                               
   SpRuntimeException {
     List<EventProperty> properties = new ArrayList<>();
     for (String selector : selectors) {
       properties.add(getEventPropertyBySelector(selector));
@@ -380,8 +439,13 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
   public EventProperty getEventPropertyBySelector(String selector) throws 
SpRuntimeException {
     SpDataStream input = getStreamBySelector(selector);
 
-    List<EventProperty> matchedProperties = getEventProperty(selector, 
getStreamSelector
-        (selector), input.getEventSchema().getEventProperties());
+    List<EventProperty> matchedProperties = getEventProperty(
+        selector,
+        getStreamSelector
+            (selector),
+        input.getEventSchema()
+             .getEventProperties()
+    );
 
     if (matchedProperties.size() > 0) {
       return matchedProperties.get(0);
@@ -402,8 +466,10 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
 
   }
 
-  private List<EventProperty> getEventProperty(String selector, String 
currentPointer,
-                                               List<EventProperty> properties) 
{
+  private List<EventProperty> getEventProperty(
+      String selector, String currentPointer,
+      List<EventProperty> properties
+  ) {
     for (EventProperty property : properties) {
       if (makePropertyWithSelector(currentPointer, 
property.getRuntimeName()).equals(selector)) {
         return Collections.singletonList(property);
@@ -422,7 +488,8 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
 
   private SpDataStream getStreamBySelector(String selector) {
     String streamId = getStreamSelector(selector).substring(1);
-    return sepaElement.getInputStreams().get(Integer.parseInt(streamId));
+    return sepaElement.getInputStreams()
+                      .get(Integer.parseInt(streamId));
   }
 
   private String getStreamSelector(String selector) {
@@ -434,13 +501,19 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
     List<EventProperty> properties = new ArrayList<>();
     for (SpDataStream stream : sepaElement.getInputStreams()) {
       properties.addAll(
-          getNoneInputStreamEventPropertySubset(propertySelectors, 
sepaElement.getInputStreams().indexOf(stream)));
+          getNoneInputStreamEventPropertySubset(
+              propertySelectors,
+              sepaElement.getInputStreams()
+                         .indexOf(stream)
+          ));
     }
     return properties;
   }
 
-  private List<EventProperty> 
getNoneInputStreamEventPropertySubset(List<String> propertySelectors,
-                                                                    Integer 
streamIndex) {
+  private List<EventProperty> getNoneInputStreamEventPropertySubset(
+      List<String> propertySelectors,
+      Integer streamIndex
+  ) {
     return sepaElement
         .getInputStreams()
         .get(streamIndex)
@@ -459,7 +532,11 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
     List<EventProperty> properties = new ArrayList<>();
     for (SpDataStream stream : sepaElement.getInputStreams()) {
       properties.addAll(
-          getInputStreamEventPropertySubset(propertySelectors, 
sepaElement.getInputStreams().indexOf(stream)));
+          getInputStreamEventPropertySubset(
+              propertySelectors,
+              sepaElement.getInputStreams()
+                         .indexOf(stream)
+          ));
     }
     return properties;
   }
@@ -486,36 +563,45 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
   }
 
   private String getPropertySelectorFromUnaryMapping(String 
staticPropertyName) {
-    Optional<MappingPropertyUnary> property = 
sepaElement.getStaticProperties().stream()
-        .filter(p -> p instanceof MappingPropertyUnary)
-        .map((p -> (MappingPropertyUnary) p))
-        .filter(p -> p.getInternalName().equals(staticPropertyName))
-        .findFirst();
+    Optional<MappingPropertyUnary> property = sepaElement.getStaticProperties()
+                                                         .stream()
+                                                         .filter(p -> p 
instanceof MappingPropertyUnary)
+                                                         .map((p -> 
(MappingPropertyUnary) p))
+                                                         .filter(p -> 
p.getInternalName()
+                                                                       
.equals(staticPropertyName))
+                                                         .findFirst();
 
-    return 
property.map(MappingPropertyUnary::getSelectedProperty).orElse(null);
+    return property.map(MappingPropertyUnary::getSelectedProperty)
+                   .orElse(null);
   }
 
   private List<String> getPropertySelectorsFromNaryMapping(String 
staticPropertyName) {
-    Optional<MappingPropertyNary> property = 
sepaElement.getStaticProperties().stream()
-        .filter(p -> p instanceof MappingPropertyNary)
-        .map((p -> (MappingPropertyNary) p))
-        .filter(p -> p.getInternalName().equals(staticPropertyName))
-        .findFirst();
+    Optional<MappingPropertyNary> property = sepaElement.getStaticProperties()
+                                                        .stream()
+                                                        .filter(p -> p 
instanceof MappingPropertyNary)
+                                                        .map((p -> 
(MappingPropertyNary) p))
+                                                        .filter(p -> 
p.getInternalName()
+                                                                      
.equals(staticPropertyName))
+                                                        .findFirst();
 
-    return property.map(MappingPropertyNary::getSelectedProperties).orElse(new 
ArrayList<>());
+    return property.map(MappingPropertyNary::getSelectedProperties)
+                   .orElse(new ArrayList<>());
   }
 
   @Override
   public String selectedAlternativeInternalId(String alternativesInternalId) {
-    StaticPropertyAlternatives alternatives = 
getStaticPropertyByName(alternativesInternalId,
-        StaticPropertyAlternatives.class);
+    StaticPropertyAlternatives alternatives = getStaticPropertyByName(
+        alternativesInternalId,
+        StaticPropertyAlternatives.class
+    );
 
     return alternatives
         .getAlternatives()
         .stream()
         .filter(StaticPropertyAlternative::getSelected)
         .map(StaticProperty::getInternalName)
-        .findFirst().get();
+        .findFirst()
+        .get();
   }
 
   @Override
@@ -524,12 +610,17 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
 
     List<EventProperty> properties = new ArrayList<>();
     for (SpDataStream stream : sepaElement.getInputStreams()) {
-      int streamIndex = sepaElement.getInputStreams().indexOf(stream);
+      int streamIndex = sepaElement.getInputStreams()
+                                   .indexOf(stream);
       getEventPropertiesByScope(scope, streamIndex)
           .stream()
           .forEach(ep -> propertiesSelector.add(ep.getRuntimeName()));
 
-      properties.addAll(getEventPropertiesByScope(scope, 
sepaElement.getInputStreams().indexOf(stream)));
+      properties.addAll(getEventPropertiesByScope(
+          scope,
+          sepaElement.getInputStreams()
+                     .indexOf(stream)
+      ));
     }
     return propertiesSelector;
   }
@@ -540,12 +631,17 @@ public abstract class AbstractParameterExtractor<T 
extends InvocableStreamPipesE
 
     List<EventProperty> properties = new ArrayList<>();
     for (SpDataStream stream : sepaElement.getInputStreams()) {
-      int streamIndex = sepaElement.getInputStreams().indexOf(stream);
+      int streamIndex = sepaElement.getInputStreams()
+                                   .indexOf(stream);
       getEventPropertiesByScope(scope, streamIndex)
           .stream()
           .forEach(ep -> 
propertiesSelector.add(getBySelector(ep.getRuntimeName(), streamIndex)));
 
-      properties.addAll(getEventPropertiesByScope(scope, 
sepaElement.getInputStreams().indexOf(stream)));
+      properties.addAll(getEventPropertiesByScope(
+          scope,
+          sepaElement.getInputStreams()
+                     .indexOf(stream)
+      ));
     }
     return propertiesSelector;
   }
@@ -554,7 +650,11 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
   public List<EventProperty> getEventPropertiesByScope(PropertyScope scope) {
     List<EventProperty> properties = new ArrayList<>();
     for (SpDataStream stream : sepaElement.getInputStreams()) {
-      properties.addAll(getEventPropertiesByScope(scope, 
sepaElement.getInputStreams().indexOf(stream)));
+      properties.addAll(getEventPropertiesByScope(
+          scope,
+          sepaElement.getInputStreams()
+                     .indexOf(stream)
+      ));
     }
     return properties;
   }
@@ -567,7 +667,8 @@ public abstract class AbstractParameterExtractor<T extends 
InvocableStreamPipesE
         .getEventProperties()
         .stream()
         .filter(ep ->
-            ep.getPropertyScope() != null && 
ep.getPropertyScope().equals(scope.name()))
+                    ep.getPropertyScope() != null && ep.getPropertyScope()
+                                                       .equals(scope.name()))
         .collect(Collectors.toList());
   }
 }

Reply via email to