/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.common;
import net.codjo.sql.builder.JoinKeyExpression;
/**
* Expression where et having d'une jointure.
*
* <p> Cette classe est utile pour cacher l'implantation agf-sql-builder. </p>
*/
public final class JoinExpression {
private final JoinKeyExpression impl;
JoinExpression(JoinKeyExpression impl) {
this.impl = impl;
}
public JoinExpression() {
this(new JoinKeyExpression());
}
public JoinExpression(String whereClause) {
this(new JoinKeyExpression(whereClause));
}
public JoinExpression(String whereClause, String havingClause, String extraGroupByField) {
this(new JoinKeyExpression(whereClause, havingClause, extraGroupByField));
}
public JoinExpression(String whereClause, String havingClause, String[] extraGroupByFields) {
this(new JoinKeyExpression(whereClause, havingClause, extraGroupByFields));
}
public String[] getExtraGroupByFields() {
return impl.getExtraGroupByFields();
}
public String getHavingClause() {
return impl.getHavingClause();
}
public String getWhereClause() {
return impl.getWhereClause();
}
public String getExtraOnClause() {
return impl.getExtraOnClause();
}
JoinKeyExpression toJoinKeyExpression() {
return impl;
}
public static JoinExpression create() {
return new JoinExpression();
}
public JoinExpression extraOnClause(String onClause) {
impl.setExtraOnClause(onClause);
return this;
}
public JoinExpression where(String whereClause) {
impl.setWhereClause(whereClause);
return this;
}
}