| package edu.uci.ics.asterix.aql.expression; |
| |
| import java.util.List; |
| |
| import edu.uci.ics.asterix.aql.base.Clause; |
| import edu.uci.ics.asterix.aql.base.Expression; |
| import edu.uci.ics.asterix.aql.expression.visitor.IAqlExpressionVisitor; |
| import edu.uci.ics.asterix.aql.expression.visitor.IAqlPlusExpressionVisitor; |
| import edu.uci.ics.asterix.aql.expression.visitor.IAqlVisitorWithVoidReturn; |
| import edu.uci.ics.asterix.common.exceptions.AsterixException; |
| import edu.uci.ics.hyracks.algebricks.common.exceptions.NotImplementedException; |
| |
| public class JoinClause implements Clause { |
| |
| public static enum JoinKind { |
| INNER, |
| LEFT_OUTER |
| } |
| |
| private Expression whereExpr; |
| private List<Clause> leftClauses, rightClauses; |
| private final JoinKind kind; |
| |
| public JoinClause() { |
| kind = JoinKind.INNER; |
| } |
| |
| public JoinClause(JoinKind kind) { |
| this.kind = kind; |
| } |
| |
| @Override |
| public <R, T> R accept(IAqlExpressionVisitor<R, T> visitor, T arg) throws AsterixException { |
| return ((IAqlPlusExpressionVisitor<R, T>) visitor).visitJoinClause(this, arg); |
| } |
| |
| @Override |
| public <T> void accept(IAqlVisitorWithVoidReturn<T> visitor, T arg) throws AsterixException { |
| throw new NotImplementedException(); |
| } |
| |
| @Override |
| public ClauseType getClauseType() { |
| return null; |
| } |
| |
| public List<Clause> getLeftClauses() { |
| return leftClauses; |
| } |
| |
| public List<Clause> getRightClauses() { |
| return rightClauses; |
| } |
| |
| public Expression getWhereExpr() { |
| return whereExpr; |
| } |
| |
| public void setLeftClauses(List<Clause> leftClauses) { |
| this.leftClauses = leftClauses; |
| } |
| |
| public void setRightClauses(List<Clause> righClauses) { |
| this.rightClauses = righClauses; |
| } |
| |
| public void setWhereExpr(Expression whereExpr) { |
| this.whereExpr = whereExpr; |
| } |
| |
| public JoinKind getKind() { |
| return kind; |
| } |
| } |