/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.query.sql.lang; import org.teiid.designer.query.sql.ILanguageVisitor; /** * */ public interface IQuery<S extends ISelect, F extends IFrom, I extends IInto, C extends ICriteria, G extends IGroupBy, O extends IOrderBy, Q extends IQuery, E extends IExpression, LV extends ILanguageVisitor> extends IQueryCommand<O, Q, E, LV> { /** * Get the select clause for the query. * * @return SELECT clause */ S getSelect(); /** * Set the select clause for the query. * * @param select SELECT clause */ void setSelect(S select); /** * Get the from clause for the query. * * @return FROM clause */ F getFrom(); /** * Set the from clause for the query. * * @param from FROM clause */ void setFrom(F from); /** * Get the into clause for the query * * @return INTO clause */ I getInto(); /** * Set the into clause for the query. * * @param into INTO clause */ void setInto(I into); /** * Get the criteria clause for the query. * * @return WHERE clause */ C getCriteria(); /** * Set the where clause * * @param where */ void setCriteria(C where); /** * Get the having clause for the query. * * @return HAVING clause */ C getHaving(); /** * Set the having clause * * @param having */ void setHaving(C having); /** * Get the group by * * @return GROUPBY clause */ G getGroupBy(); /** * Set the group by clause * * @param groupBy */ void setGroupBy(G groupBy); }