package edu.mayo.cts2.framework.webapp.rest.query;
import java.util.Set;
import edu.mayo.cts2.framework.model.command.ResolvedFilter;
import edu.mayo.cts2.framework.model.command.ResolvedReadContext;
import edu.mayo.cts2.framework.model.service.core.Query;
import edu.mayo.cts2.framework.service.command.restriction.MapQueryServiceRestrictions;
import edu.mayo.cts2.framework.service.profile.BaseQueryService;
import edu.mayo.cts2.framework.service.profile.map.MapQuery;
import edu.mayo.cts2.framework.webapp.rest.resolver.FilterResolver;
import edu.mayo.cts2.framework.webapp.rest.resolver.ReadContextResolver;
public class MapQueryBuilder
extends AbstractResourceQueryBuilder<MapQueryBuilder, MapQuery> {
private MapQueryServiceRestrictions restrictions;
public MapQueryBuilder(
BaseQueryService baseQueryService,
FilterResolver filterResolver,
ReadContextResolver readContextResolver) {
super(baseQueryService, filterResolver, readContextResolver);
}
public MapQueryBuilder addRestrictions(MapQueryServiceRestrictions restrictions){
this.restrictions = restrictions;
return this.getThis();
}
@Override
protected MapQueryBuilder getThis() {
return this;
}
@Override
public MapQuery build() {
final DefaultResourceQuery query = new DefaultResourceQuery();
return new MapQuery(){
@Override
public Query getQuery() {
return query.getQuery();
}
@Override
public Set<ResolvedFilter> getFilterComponent() {
return query.getFilterComponent();
}
@Override
public ResolvedReadContext getReadContext() {
return query.getReadContext();
}
@Override
public MapQueryServiceRestrictions getRestrictions() {
return restrictions;
}
};
}
}