/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) and
* JR Boyens <gnu-jrb[remove] at gmx dot net>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: AbstractWhereDelegateQuery.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.database.queries;
import com.uwyn.rife.database.Datasource;
import com.uwyn.rife.database.exceptions.DbQueryException;
import com.uwyn.rife.database.queries.AbstractWhereQuery;
import com.uwyn.rife.database.queries.Select;
import com.uwyn.rife.database.queries.WhereGroupAnd;
import com.uwyn.rife.database.queries.WhereGroupOr;
import com.uwyn.rife.database.queries.WhereQuery;
import java.util.List;
public abstract class AbstractWhereDelegateQuery<QueryType extends AbstractWhereDelegateQuery, DelegateType extends AbstractWhereQuery> implements WhereQuery<QueryType>
{
protected DelegateType mDelegate = null;
protected AbstractWhereDelegateQuery(DelegateType delegate)
{
mDelegate = delegate;
}
public DelegateType getDelegate()
{
return mDelegate;
}
public Datasource getDatasource()
{
return mDelegate.getDatasource();
}
public WhereGroup<QueryType> startWhere()
{
return new WhereGroup<QueryType>(getDatasource(), this);
}
public WhereGroupAnd<QueryType> startWhereAnd()
{
return new WhereGroupAnd<QueryType>(getDatasource(), this);
}
public WhereGroupOr<QueryType> startWhereOr()
{
return new WhereGroupOr<QueryType>(getDatasource(), this);
}
public QueryType where(String where)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(where);
}
else
{
mDelegate.where(where);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, boolean value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, byte value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, char value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, double value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, float value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, int value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, long value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, Select query)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, query);
}
else
{
mDelegate.where(field, operator, query);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, Object value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType where(String field, String operator, short value)
{
if (mDelegate.getWhere().length() > 0)
{
mDelegate.whereAnd(field, operator, value);
}
else
{
mDelegate.where(field, operator, value);
}
return (QueryType)this;
}
public QueryType whereAnd(String where)
{
mDelegate.whereAnd(where);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, boolean value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, byte value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, char value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, double value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, float value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, int value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, long value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, Select query)
{
mDelegate.whereAnd(field, operator, query);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, Object value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereAnd(String field, String operator, short value)
{
mDelegate.whereAnd(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String where)
{
mDelegate.whereOr(where);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, boolean value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, byte value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, char value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, double value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, float value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, int value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, long value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, Select query)
{
mDelegate.whereOr(field, operator, query);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, Object value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereOr(String field, String operator, short value)
{
mDelegate.whereOr(field, operator, value);
return (QueryType)this;
}
public QueryType whereSubselect(Select query)
{
mDelegate.whereSubselect(query);
return (QueryType)this;
}
public QueryType where(Object bean)
throws DbQueryException
{
mDelegate.where(bean);
return (QueryType)this;
}
public QueryType whereIncluded(Object bean, String[] includedFields) throws DbQueryException
{
mDelegate.whereIncluded(bean, includedFields);
return (QueryType)this;
}
public QueryType whereExcluded(Object bean, String[] excludedFields) throws DbQueryException
{
mDelegate.whereExcluded(bean, excludedFields);
return (QueryType)this;
}
public QueryType whereFiltered(Object bean, String[] includedFields, String[] excludedFields) throws DbQueryException
{
mDelegate.whereFiltered(bean, includedFields, excludedFields);
return (QueryType)this;
}
public void addWhereParameters(List<String> parameters)
{
mDelegate.addWhereParameters(parameters);
}
}