algairim commented on a change in pull request #1297:
URL: https://github.com/apache/brooklyn-server/pull/1297#discussion_r800508180



##########
File path: 
utils/common/src/main/java/org/apache/brooklyn/util/collections/CollectionFunctionals.java
##########
@@ -119,6 +115,35 @@ public T apply(Iterable<? extends T> input) {
         @Override public String toString() { return "firstElementFunction"; }
     }
 
+    public static class AllEqualsFunction implements Function<Iterable<?>, 
Comparable<?>> {
+        private final Comparable<?> value;
+
+        public AllEqualsFunction(Comparable<?> value) {
+            if (Objects.isNull(value)) {
+                throw new IllegalArgumentException("The value to compare all 
to must be defined");
+            }
+            this.value = value;
+        }
+
+        @Override
+        public Boolean apply(@Nullable Iterable<?> input) {
+            if (Objects.isNull(input) || Iterables.isEmpty(input)) return null;

Review comment:
       In the real scenario we cannot say if it is true or false since there is 
nothing to compare yet, hence, we return null. This will mean that the result 
sensor will have no value until there is something certain to compare, as in 
example below:
   ```
   # Calculates process status of the group - all must be 'RUNNING'
   - type: org.apache.brooklyn.enricher.stock.Aggregator
     brooklyn.config:
       enricher.sourceSensor: $brooklyn:sensor("my.custom.app.isRunning")
       enricher.targetSensor: $brooklyn:sensor("service.process.isRunning")
       enricher.aggregating.fromMembers: true
       enricher.transformation:
         $brooklyn:object:
           type: 
"org.apache.brooklyn.util.collections.CollectionFunctionals$AllTrueFunction"
   ```
   
   Returning `false` prematurely could be misleading @jcabrerizo.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to