All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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