
com.github.damianwajser.factories.jsonbased.FactoryCriteriaJsonBased Maven / Gradle / Ivy
package com.github.damianwajser.factories.jsonbased;
import com.github.damianwajser.factories.jsonbased.criteria.Criteria;
import com.github.damianwajser.factories.jsonbased.criteria.Criterion;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
import java.util.Collection;
import java.util.stream.Collectors;
public class FactoryCriteriaJsonBased {
public Criteria criteria;
public FactoryCriteriaJsonBased(Criteria criteria) {
this.criteria = criteria;
}
public Collection find(DocumentContext json) {
Collection result = criteria.getAllCriterion().stream()
.filter(c -> c.match(json))
.map(Criterion::getResult)
.collect(Collectors.toList());
if (result.isEmpty() && criteria.getDefaultResult() != null) {
result.add(criteria.getDefaultResult());
}
return result;
}
public Collection find(String json) {
return this.find(JsonPath.parse(json));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy