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.ConceptDomainBindingQueryServiceRestrictions;
import edu.mayo.cts2.framework.service.profile.BaseQueryService;
import edu.mayo.cts2.framework.service.profile.conceptdomainbinding.ConceptDomainBindingQuery;
import edu.mayo.cts2.framework.webapp.rest.resolver.FilterResolver;
import edu.mayo.cts2.framework.webapp.rest.resolver.ReadContextResolver;
public class ConceptDomainBindingQueryBuilder
extends AbstractResourceQueryBuilder<ConceptDomainBindingQueryBuilder, ConceptDomainBindingQuery> {
private ConceptDomainBindingQueryServiceRestrictions restrictions;
public ConceptDomainBindingQueryBuilder(
BaseQueryService baseQueryService,
FilterResolver filterResolver,
ReadContextResolver readContextResolver) {
super(baseQueryService, filterResolver, readContextResolver);
}
public ConceptDomainBindingQueryBuilder addRestrictions(ConceptDomainBindingQueryServiceRestrictions restrictions){
this.restrictions = restrictions;
return this.getThis();
}
@Override
protected ConceptDomainBindingQueryBuilder getThis() {
return this;
}
@Override
public ConceptDomainBindingQuery build() {
final DefaultResourceQuery query = new DefaultResourceQuery();
return new ConceptDomainBindingQuery(){
@Override
public Query getQuery() {
return query.getQuery();
}
@Override
public Set<ResolvedFilter> getFilterComponent() {
return query.getFilterComponent();
}
@Override
public ResolvedReadContext getReadContext() {
return query.getReadContext();
}
@Override
public ConceptDomainBindingQueryServiceRestrictions getRestrictions() {
return restrictions;
}
};
}
}