Browse Source

Rename subset to subsetof

pull/365/head
Daniel Halperin 8 years ago
parent
commit
c9527bf89e
  1. 2
      README.md
  2. 12
      json-path/src/main/java/com/jayway/jsonpath/Criteria.java
  3. 6
      json-path/src/main/java/com/jayway/jsonpath/internal/filter/EvaluatorFactory.java
  4. 2
      json-path/src/main/java/com/jayway/jsonpath/internal/filter/RelationalOperator.java
  5. 2
      json-path/src/main/java/com/jayway/jsonpath/internal/filter/ValueNode.java

2
README.md

@ -101,7 +101,7 @@ Filters are logical expressions used to filter arrays. A typical filter would be
| =~ | left matches regular expression [?(@.name =~ /foo.*?/i)] | | =~ | left matches regular expression [?(@.name =~ /foo.*?/i)] |
| in | left exists in right [?(@.size in ['S', 'M'])] | | in | left exists in right [?(@.size in ['S', 'M'])] |
| nin | left does not exists in right | | nin | left does not exists in right |
| subset | left is a subset of right [?(@.sizes subset ['S', 'M', 'L'])] | | subsetof | left is a subset of right [?(@.sizes subsetof ['S', 'M', 'L'])] |
| size | size of left (array or string) should match right | | size | size of left (array or string) should match right |
| empty | left (array or string) should be empty | | empty | left (array or string) should be empty |

12
json-path/src/main/java/com/jayway/jsonpath/Criteria.java

@ -268,28 +268,28 @@ public class Criteria implements Predicate {
} }
/** /**
* The <code>subset</code> operator selects objects for which the specified field is * The <code>subsetof</code> operator selects objects for which the specified field is
* an array whose elements comprise a subset of the set comprised by the elements of * an array whose elements comprise a subset of the set comprised by the elements of
* the specified array. * the specified array.
* *
* @param o the values to match against * @param o the values to match against
* @return the criteria * @return the criteria
*/ */
public Criteria subset(Object... o) { public Criteria subsetof(Object... o) {
return subset(Arrays.asList(o)); return subsetof(Arrays.asList(o));
} }
/** /**
* The <code>subset</code> operator selects objects for which the specified field is * The <code>subsetof</code> operator selects objects for which the specified field is
* an array whose elements comprise a subset of the set comprised by the elements of * an array whose elements comprise a subset of the set comprised by the elements of
* the specified array. * the specified array.
* *
* @param c the values to match against * @param c the values to match against
* @return the criteria * @return the criteria
*/ */
public Criteria subset(Collection<?> c) { public Criteria subsetof(Collection<?> c) {
notNull(c, "collection can not be null"); notNull(c, "collection can not be null");
this.criteriaType = RelationalOperator.SUBSET; this.criteriaType = RelationalOperator.SUBSETOF;
this.right = new ValueNode.ValueListNode(c); this.right = new ValueNode.ValueListNode(c);
return this; return this;
} }

6
json-path/src/main/java/com/jayway/jsonpath/internal/filter/EvaluatorFactory.java

@ -29,7 +29,7 @@ public class EvaluatorFactory {
evaluators.put(RelationalOperator.CONTAINS, new ContainsEvaluator()); evaluators.put(RelationalOperator.CONTAINS, new ContainsEvaluator());
evaluators.put(RelationalOperator.MATCHES, new PredicateMatchEvaluator()); evaluators.put(RelationalOperator.MATCHES, new PredicateMatchEvaluator());
evaluators.put(RelationalOperator.TYPE, new TypeEvaluator()); evaluators.put(RelationalOperator.TYPE, new TypeEvaluator());
evaluators.put(RelationalOperator.SUBSET, new SubsetEvaluator()); evaluators.put(RelationalOperator.SUBSETOF, new SubsetOfEvaluator());
} }
public static Evaluator createEvaluator(RelationalOperator operator){ public static Evaluator createEvaluator(RelationalOperator operator){
@ -266,7 +266,7 @@ public class EvaluatorFactory {
} }
} }
private static class SubsetEvaluator implements Evaluator { private static class SubsetOfEvaluator implements Evaluator {
@Override @Override
public boolean evaluate(ValueNode left, ValueNode right, Predicate.PredicateContext ctx) { public boolean evaluate(ValueNode left, ValueNode right, Predicate.PredicateContext ctx) {
ValueNode.ValueListNode rightValueListNode; ValueNode.ValueListNode rightValueListNode;
@ -291,7 +291,7 @@ public class EvaluatorFactory {
} else { } else {
leftValueListNode = left.asValueListNode(); leftValueListNode = left.asValueListNode();
} }
return leftValueListNode.subset(rightValueListNode); return leftValueListNode.subsetof(rightValueListNode);
} }
} }

2
json-path/src/main/java/com/jayway/jsonpath/internal/filter/RelationalOperator.java

@ -30,7 +30,7 @@ public enum RelationalOperator {
TYPE("TYPE"), TYPE("TYPE"),
MATCHES("MATCHES"), MATCHES("MATCHES"),
EMPTY("EMPTY"), EMPTY("EMPTY"),
SUBSET("SUBSET"); SUBSETOF("SUBSETOF");
private final String operatorString; private final String operatorString;

2
json-path/src/main/java/com/jayway/jsonpath/internal/filter/ValueNode.java

@ -714,7 +714,7 @@ public abstract class ValueNode {
return nodes.contains(node); return nodes.contains(node);
} }
public boolean subset(ValueListNode right) { public boolean subsetof(ValueListNode right) {
for (ValueNode leftNode : nodes) { for (ValueNode leftNode : nodes) {
if (!right.nodes.contains(leftNode)) { if (!right.nodes.contains(leftNode)) {
return false; return false;

Loading…
Cancel
Save