Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/999#discussion_r219567394
  
    --- Diff: 
core/src/main/java/org/apache/brooklyn/core/config/ConfigConstraints.java ---
    @@ -218,4 +228,88 @@ public LocationConfigConstraints(Location 
brooklynObject) {
             }
         }
     
    +    public static <T> Predicate<T> required() {
    +        return new RequiredPredicate<T>();
    +    }
    +    
    +    /** Predicate indicating a field is required:  it must not be null and 
if a string it must not be empty */
    +    public static class RequiredPredicate<T> implements Predicate<T> {
    +        @Override
    +        public boolean apply(T input) {
    +            if (input==null) return false;
    +            if (input instanceof CharSequence && 
((CharSequence)input).length()==0) return false;
    +            return true;
    +        }
    +        @Override
    +        public String toString() {
    +            return "required()";
    +        }
    +    }
    +    
    +    private static abstract class OtherKeyPredicate implements 
BrooklynObjectPredicate<Object> {
    +        private String otherKeyName;
    --- End diff --
    
    Declare this final (pretty much wherever we can declare fields final, it's 
a good idea).


---

Reply via email to