Flesh out CustomList operators

This commit is contained in:
drdev
2015-09-06 02:15:18 +00:00
parent 225f39f3ba
commit 6049b67a8e

View File

@@ -294,61 +294,91 @@ public class AdvancedSearch {
IS_EXACTLY("is exactly", "%1$s is %2$s", FilterValueCount.MANY, new OperatorEvaluator<Object>() { IS_EXACTLY("is exactly", "%1$s is %2$s", FilterValueCount.MANY, new OperatorEvaluator<Object>() {
@Override @Override
public boolean apply(Object input, List<Object> values) { public boolean apply(Object input, List<Object> values) {
if (input != null && values.size() == 1) {
return input.equals(values.get(0));
}
return false; return false;
} }
@Override @Override
public boolean apply(Set<Object> inputs, List<Object> values) { public boolean apply(Set<Object> inputs, List<Object> values) {
if (inputs != null && inputs.size() == values.size()) {
for (Object value : values) {
if (!inputs.contains(value)) {
return false;
}
}
return true;
}
return false; return false;
} }
}), }),
IS_ANY("is any of", "%1$s is %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() { IS_ANY("is any of", "%1$s is %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
@Override @Override
public boolean apply(Object input, List<Object> values) { public boolean apply(Object input, List<Object> values) {
if (input != null) {
for (Object value : values) {
if (input.equals(value)) {
return true;
}
}
}
return false; return false;
} }
@Override @Override
public boolean apply(Set<Object> inputs, List<Object> values) { public boolean apply(Set<Object> inputs, List<Object> values) {
if (inputs != null) {
for (Object value : values) {
if (inputs.contains(value)) {
return true;
}
}
}
return false; return false;
} }
}), }),
IS_ALL("is all of", "%1$s is %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() { IS_ALL("is all of", "%1$s is %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() {
@Override @Override
public boolean apply(Object input, List<Object> values) { public boolean apply(Object input, List<Object> values) {
if (input != null && values.size() == 1) {
return input.equals(values.get(0));
}
return false; return false;
} }
@Override @Override
public boolean apply(Set<Object> inputs, List<Object> values) { public boolean apply(Set<Object> inputs, List<Object> values) {
if (inputs != null) {
for (Object value : values) {
if (!inputs.contains(value)) {
return false;
}
}
return true;
}
return false; return false;
} }
}), }),
IS_NONE("is none of", "%1$s is not %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() { IS_NONE("is none of", "%1$s is not %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() {
@Override @Override
public boolean apply(Object input, List<Object> values) { public boolean apply(Object input, List<Object> values) {
return false; if (input != null) {
for (Object value : values) {
if (input.equals(value)) {
return false;
}
}
}
return true;
} }
@Override @Override
public boolean apply(Set<Object> inputs, List<Object> values) { public boolean apply(Set<Object> inputs, List<Object> values) {
return false; if (inputs != null) {
} for (Object value : values) {
}), if (inputs.contains(value)) {
INCLUDES_ANY("includes any of", "%1$s includes %2$s", FilterValueCount.MANY_OR, new OperatorEvaluator<Object>() { return false;
@Override }
public boolean apply(Object input, List<Object> values) { }
return false; }
} return true;
@Override
public boolean apply(Set<Object> inputs, List<Object> values) {
return false;
}
}),
INCLUDES_ALL("includes all of", "%1$s includes %2$s", FilterValueCount.MANY_AND, new OperatorEvaluator<Object>() {
@Override
public boolean apply(Object input, List<Object> values) {
return false;
}
@Override
public boolean apply(Set<Object> inputs, List<Object> values) {
return false;
} }
}); });
@@ -362,7 +392,7 @@ public class AdvancedSearch {
IS_EXACTLY, IS_ANY, IS_NONE IS_EXACTLY, IS_ANY, IS_NONE
}; };
public static final FilterOperator[] MULTI_LIST_OPS = new FilterOperator[] { public static final FilterOperator[] MULTI_LIST_OPS = new FilterOperator[] {
IS_EXACTLY, IS_ANY, IS_ALL, IS_NONE, INCLUDES_ANY, INCLUDES_ALL IS_EXACTLY, IS_ANY, IS_ALL, IS_NONE
}; };
private final String caption, formatStr; private final String caption, formatStr;