/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.metamodel.query.builder;
import java.util.List;
import org.apache.metamodel.data.DataSet;
import org.apache.metamodel.query.CompiledQuery;
import org.apache.metamodel.query.FilterItem;
import org.apache.metamodel.query.FunctionType;
import org.apache.metamodel.query.Query;
import org.apache.metamodel.query.ScalarFunction;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.util.BaseObject;
abstract class GroupedQueryBuilderCallback extends BaseObject implements GroupedQueryBuilder {
private GroupedQueryBuilder queryBuilder;
public GroupedQueryBuilderCallback(GroupedQueryBuilder queryBuilder) {
this.queryBuilder = queryBuilder;
}
protected GroupedQueryBuilder getQueryBuilder() {
return queryBuilder;
}
@Override
public SatisfiedQueryBuilder<GroupedQueryBuilder> firstRow(int firstRow) {
return getQueryBuilder().firstRow(firstRow);
}
@Override
public SatisfiedQueryBuilder<GroupedQueryBuilder> limit(int maxRows) {
return getQueryBuilder().limit(maxRows);
}
@Override
public SatisfiedQueryBuilder<GroupedQueryBuilder> offset(int offset) {
return getQueryBuilder().offset(offset);
}
@Override
public SatisfiedQueryBuilder<GroupedQueryBuilder> maxRows(int maxRows) {
return getQueryBuilder().maxRows(maxRows);
}
@Override
public SatisfiedSelectBuilder<GroupedQueryBuilder> select(Column... columns) {
return getQueryBuilder().select(columns);
}
@Override
public final Column findColumn(String columnName) throws IllegalArgumentException {
return getQueryBuilder().findColumn(columnName);
}
@Override
public ColumnSelectBuilder<GroupedQueryBuilder> select(Column column) {
return getQueryBuilder().select(column);
}
@Override
public SatisfiedQueryBuilder<?> select(FunctionType function, String columnName) {
return getQueryBuilder().select(function, columnName);
}
@Override
public FunctionSelectBuilder<GroupedQueryBuilder> select(FunctionType functionType, Column column) {
return getQueryBuilder().select(functionType, column);
}
@Override
public ColumnSelectBuilder<GroupedQueryBuilder> select(String columnName) {
return getQueryBuilder().select(columnName);
}
@Override
public CountSelectBuilder<GroupedQueryBuilder> selectCount() {
return getQueryBuilder().selectCount();
}
@Override
public WhereBuilder<GroupedQueryBuilder> where(Column column) {
return getQueryBuilder().where(column);
}
@Override
public WhereBuilder<GroupedQueryBuilder> where(ScalarFunction function, Column column) {
return getQueryBuilder().where(function, column);
}
@Override
public WhereBuilder<GroupedQueryBuilder> where(ScalarFunction function, String columnName) {
return getQueryBuilder().where(function, columnName);
}
@Override
public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(Column column) {
return getQueryBuilder().orderBy(column);
}
@Override
public GroupedQueryBuilder groupBy(String columnName) {
return getQueryBuilder().groupBy(columnName);
}
@Override
public GroupedQueryBuilder groupBy(Column column) {
return getQueryBuilder().groupBy(column);
}
@Override
public Query toQuery() {
return getQueryBuilder().toQuery();
}
@Override
public CompiledQuery compile() {
return getQueryBuilder().compile();
}
@Override
public HavingBuilder having(FunctionType functionType, Column column) {
return getQueryBuilder().having(functionType, column);
}
@Override
public HavingBuilder having(String columnExpression) {
return getQueryBuilder().having(columnExpression);
}
@Override
public HavingBuilder having(SelectItem selectItem) {
return getQueryBuilder().having(selectItem);
}
@Override
public GroupedQueryBuilder groupBy(String... columnNames) {
return getQueryBuilder().groupBy(columnNames);
}
@Override
public GroupedQueryBuilder groupBy(Column... columns) {
getQueryBuilder().groupBy(columns);
return this;
}
@Override
protected void decorateIdentity(List<Object> identifiers) {
identifiers.add(queryBuilder);
}
@Override
public DataSet execute() {
return queryBuilder.execute();
}
@Override
public WhereBuilder<GroupedQueryBuilder> where(String columnName) {
return getQueryBuilder().where(columnName);
}
@Override
public SatisfiedQueryBuilder<GroupedQueryBuilder> where(FilterItem... filters) {
return getQueryBuilder().where(filters);
}
@Override
public SatisfiedQueryBuilder<GroupedQueryBuilder> where(Iterable<FilterItem> filters) {
return getQueryBuilder().where(filters);
}
@Override
public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(String columnName) {
return getQueryBuilder().orderBy(columnName);
}
@Override
public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(FunctionType function, Column column) {
return getQueryBuilder().orderBy(function, column);
}
}