Browse Source

Add JSON value wrapper interface to support expression evaluations on types not currently supported

pull/34/head
Mike Buchanan 11 years ago committed by Mike Buchanan
parent
commit
d3d328feb6
  1. 9
      json-path/src/main/java/com/jayway/jsonpath/internal/filter/eval/ExpressionEvaluator.java
  2. 10
      json-path/src/main/java/com/jayway/jsonpath/spi/JsonValueWrapper.java

9
json-path/src/main/java/com/jayway/jsonpath/internal/filter/eval/ExpressionEvaluator.java

@ -14,6 +14,8 @@
*/
package com.jayway.jsonpath.internal.filter.eval;
import com.jayway.jsonpath.spi.JsonValueWrapper;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collections;
@ -58,7 +60,12 @@ public class ExpressionEvaluator {
}
public static <T> boolean eval(T actual, String comparator, String expected) {
public static <T> boolean eval(T actualObject, String comparator, String expected) {
Object actual = actualObject;
if(actualObject != null && actualObject instanceof JsonValueWrapper) {
actual = ((JsonValueWrapper)actualObject).getValue();
}
Operator operator = operatorsByRepresentation.get(comparator);
if (operator == null) {

10
json-path/src/main/java/com/jayway/jsonpath/spi/JsonValueWrapper.java

@ -0,0 +1,10 @@
package com.jayway.jsonpath.spi;
/**
* Interface to allow wrapping a JSON value to maintain metadata associated with the value
*
* @author Mike Buchanan
*/
public interface JsonValueWrapper<T> {
public T getValue();
}
Loading…
Cancel
Save