Browse Source

Merge pull request #22 from jochenberger/use-json-provider-for-results

Use the json provider to create a new list for the results
pull/26/merge
kallestenflo 11 years ago
parent
commit
9af4623faf
  1. 7
      json-path/src/main/java/com/jayway/jsonpath/Filter.java
  2. 2
      json-path/src/main/java/com/jayway/jsonpath/internal/filter/ArrayQueryFilter.java

7
json-path/src/main/java/com/jayway/jsonpath/Filter.java

@ -16,6 +16,8 @@ package com.jayway.jsonpath;
import java.util.*;
import com.jayway.jsonpath.spi.JsonProvider;
/**
* A filter is used to filter the content of a JSON array in a JSONPath.
*
@ -45,10 +47,11 @@ public abstract class Filter<T> {
/**
* Filters the provided list based on this filter configuration
* @param filterItems items to filter
* @param jsonProvider the json provider that is used to create the result list
* @return the filtered list
*/
public List<T> doFilter(List<T> filterItems) {
List<T> result = new ArrayList<T>();
public List doFilter(List<T> filterItems, JsonProvider jsonProvider) {
List result = jsonProvider.createList();;
for (T filterItem : filterItems) {
if (accept(filterItem)) {
result.add(filterItem);

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

@ -34,7 +34,7 @@ public class ArrayQueryFilter extends PathTokenFilter {
Filter filter = filters.poll();
return filter.doFilter((List)obj);
return filter.doFilter(jsonProvider.toList(obj), jsonProvider);
}

Loading…
Cancel
Save