@Override
 public boolean evaluateWithObject(Object object) {
   Object destinationValue =
       NSKeyValueCodingAdditions.Utility.valueForKeyPath(object, relationshipName);
   if (destinationValue != null) {
     if (destinationValue instanceof NSArray) {
       NSArray arr = (NSArray) destinationValue;
       return EOQualifier.filteredArrayWithQualifier(arr, qualifier).count() > 0;
     }
     return qualifier.evaluateWithObject(destinationValue);
   }
   return false;
 }
示例#2
0
 /**
  * Like EOQualifier.filteredArrayWithQualifier but for an NSSet.
  *
  * @param <T> type of set contents
  * @param set the set to filter
  * @param qualifier the qualifier to apply
  * @return the filtered set
  */
 public static <T> NSSet<T> filteredSetWithQualifier(NSSet<T> set, EOQualifier qualifier) {
   if (set == null) {
     return NSSet.EmptySet;
   }
   if (qualifier == null || qualifier._isEmpty()) {
     return set;
   }
   int count = set.count();
   NSMutableSet<T> filteredSet = new NSMutableSet<>(count);
   Enumeration setEnum = set.objectEnumerator();
   while (setEnum.hasMoreElements()) {
     Object object = setEnum.nextElement();
     if (qualifier.evaluateWithObject(object)) {
       filteredSet.addObject((T) object);
     }
   }
   return filteredSet;
 }