/*
* Copyright 2012 - 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.solr.core.query;
import java.util.List;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.util.Assert;
/**
* General purpose {@link Query} abstract decorator.
*
* @author Francisco Spaeth
* @author Christoph Strobl
* @since 1.4
*/
public abstract class AbstractQueryDecorator implements Query {
private Query query;
public AbstractQueryDecorator(Query query) {
Assert.notNull(query, "query must not be null");
this.query = query;
}
@Override
public <T extends SolrDataQuery> T addCriteria(Criteria criteria) {
return this.query.addCriteria(criteria);
}
@Override
public Criteria getCriteria() {
return this.query.getCriteria();
}
@Override
public void setJoin(Join join) {
this.query.setJoin(join);
}
@Override
public Join getJoin() {
return this.query.getJoin();
}
@Override
public <T extends Query> T addProjectionOnField(Field field) {
return this.query.addProjectionOnField(field);
}
@Override
public <T extends Query> T setPageRequest(Pageable pageable) {
return this.query.setPageRequest(pageable);
}
@Override
public <T extends Query> T addGroupByField(Field field) {
return this.query.addGroupByField(field);
}
@Override
public <T extends Query> T addFilterQuery(FilterQuery query) {
return this.query.addFilterQuery(query);
}
@Override
public <T extends Query> T setTimeAllowed(Integer timeAllowed) {
return this.query.setTimeAllowed(timeAllowed);
}
@Override
public List<FilterQuery> getFilterQueries() {
return this.query.getFilterQueries();
}
@Deprecated
@Override
public Pageable getPageRequest() {
return this.query.getPageRequest();
}
@Override
public List<Field> getGroupByFields() {
return this.query.getGroupByFields();
}
@Override
public List<Field> getProjectionOnFields() {
return this.query.getProjectionOnFields();
}
@Override
public <T extends Query> T addSort(Sort sort) {
return this.query.addSort(sort);
}
@Override
public Sort getSort() {
return this.query.getSort();
}
@Override
public Integer getTimeAllowed() {
return this.query.getTimeAllowed();
}
@Override
public void setDefaultOperator(Operator operator) {
this.query.setDefaultOperator(operator);
}
@Override
public Operator getDefaultOperator() {
return this.query.getDefaultOperator();
}
@Override
public String getDefType() {
return this.query.getDefType();
}
@Override
public void setDefType(String defType) {
this.query.setDefType(defType);
}
@Override
public String getRequestHandler() {
return this.query.getRequestHandler();
}
@Override
public void setRequestHandler(String requestHandler) {
this.query.setRequestHandler(requestHandler);
}
@Override
public <T extends Query> T setOffset(Long offset) {
return this.query.setOffset(offset);
}
@Override
public <T extends Query> T setRows(Integer rows) {
return this.query.setRows(rows);
}
@Override
public Long getOffset() {
return this.query.getOffset();
}
@Override
public Integer getRows() {
return this.query.getRows();
}
@Override
public <T extends Query> T setGroupOptions(GroupOptions groupOptions) {
return query.setGroupOptions(groupOptions);
}
@Override
public GroupOptions getGroupOptions() {
return query.getGroupOptions();
}
/*
* (non-Javadoc)
* @see org.springframework.data.solr.core.query.Query#setStatsOptions(org.springframework.data.solr.core.query.StatsOptions)
*/
@Override
public <T extends Query> T setStatsOptions(StatsOptions statsOptions) {
return query.setStatsOptions(statsOptions);
}
/*
* (non-Javadoc)
* @see org.springframework.data.solr.core.query.Query#getStatsOptions()
*/
@Override
public StatsOptions getStatsOptions() {
return query.getStatsOptions();
}
/*
* (non-Javadoc)
* @see org.springframework.data.solr.core.query.Query#setSpellcheckOptions(org.springframework.data.solr.core.query.SpellcheckOptions)
*/
@Override
public <T extends Query> T setSpellcheckOptions(SpellcheckOptions spellcheckOptions) {
return query.setSpellcheckOptions(spellcheckOptions);
}
/*
* (non-Javadoc)
* @see org.springframework.data.solr.core.query.Query#getSpellcheckOptions()
*/
@Override
public SpellcheckOptions getSpellcheckOptions() {
return query.getSpellcheckOptions();
}
}