package edu.mayo.cts2.framework.webapp.rest.resolver; import edu.mayo.cts2.framework.model.command.ResolvedFilter; import edu.mayo.cts2.framework.model.core.ComponentReference; import edu.mayo.cts2.framework.model.core.MatchAlgorithmReference; import edu.mayo.cts2.framework.service.profile.BaseQueryService; import edu.mayo.cts2.framework.webapp.rest.command.RestFilter; import edu.mayo.cts2.framework.webapp.rest.util.ControllerUtils; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; @Component public class FilterResolver { public ResolvedFilter resolveRestFilter(RestFilter restFilter, BaseQueryService service){ if(restFilter == null || StringUtils.isBlank(restFilter.getMatchvalue())){ return null; } String matchAlgorithmReference = restFilter.getMatchalgorithm(); MatchAlgorithmReference matchRef = ControllerUtils.getReference(matchAlgorithmReference, service.getSupportedMatchAlgorithms()); ResolvedFilter resolvedFilter = new ResolvedFilter(); resolvedFilter.setMatchAlgorithmReference(matchRef); String nameOrUri = restFilter.getFiltercomponent(); ComponentReference componentReference = ControllerUtils.getComponentReference(nameOrUri, service.getSupportedSearchReferences()); resolvedFilter.setComponentReference(componentReference); resolvedFilter.setMatchValue(restFilter.getMatchvalue()); return resolvedFilter; } }