/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package com.alibaba.garuda.plan.logical.relational;
import java.util.List;
import com.alibaba.garuda.plan.FrontendException;
import com.alibaba.garuda.plan.Operator;
import com.alibaba.garuda.plan.PlanVisitor;
import com.alibaba.garuda.plan.logical.LogicalPlan;
import com.alibaba.garuda.plan.logical.expression.LogicalExpressionPlan;
/**
* @author Min Zhou (coderplay@gmail.com)
*/
public class LOOrderBy extends LogicalRelationalOperator {
private List<Boolean> mAscCols;
private List<LogicalExpressionPlan> mSortColPlans;
public LOOrderBy(LogicalPlan plan) {
super("LOOrderBy", plan);
}
public LOOrderBy(LogicalPlan plan,
List<LogicalExpressionPlan> sortColPlans, List<Boolean> ascCols) {
this(plan);
mSortColPlans = sortColPlans;
mAscCols = ascCols;
}
@Override
public LogicalSchema getSchema() throws FrontendException {
return null;
}
@Override
public void accept(PlanVisitor v) throws FrontendException {
}
@Override
public boolean isEqual(Operator other) throws FrontendException {
if (other != null && other instanceof LOOrderBy) {
LOOrderBy of = (LOOrderBy) other;
return checkEquality(of);
} else {
return false;
}
}
public List<Boolean> getAscendingCols() {
return mAscCols;
}
public void setAscendingCols(List<Boolean> ascCols) {
mAscCols = ascCols;
}
public List<LogicalExpressionPlan> getSortColPlans() {
return mSortColPlans;
}
public void setSortColPlans(List<LogicalExpressionPlan> sortPlans) {
mSortColPlans = sortPlans;
}
}