in connectfeaturelauncher/src/main/java/org/osgi/framework/FrameworkUtil.java [495:538]
public boolean matches(Map<String, ?> map) {
switch (op) {
case AND : {
FilterImpl[] filters = (FilterImpl[]) value;
for (FilterImpl f : filters) {
if (!f.matches(map)) {
return false;
}
}
return true;
}
case OR : {
FilterImpl[] filters = (FilterImpl[]) value;
for (FilterImpl f : filters) {
if (f.matches(map)) {
return true;
}
}
return false;
}
case NOT : {
FilterImpl filter = (FilterImpl) value;
return !filter.matches(map);
}
case SUBSTRING :
case EQUAL :
case GREATER :
case LESS :
case APPROX : {
Object prop = (map == null) ? null : map.get(attr);
return compare(op, prop, value);
}
case PRESENT : {
Object prop = (map == null) ? null : map.get(attr);
return prop != null;
}
}
return false;
}