-
Notifications
You must be signed in to change notification settings - Fork 2
/
BinaryOperator.java
62 lines (55 loc) · 1.19 KB
/
BinaryOperator.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package sjdb;
import java.util.ArrayList;
import java.util.List;
/**
* This abstract class represents a binary operator, and is
* subclassed by Product and Join
* @author nmg
*
*/
public abstract class BinaryOperator extends Operator {
/**
* Create a new binary operator
*/
public BinaryOperator(Operator left, Operator right) {
super();
this.inputs.add(left);
this.inputs.add(right);
}
/**
* Return the left child below this operator in the query plan
* @return Left child
*/
public Operator getLeft() {
return this.inputs.get(0);
}
/**
* Return the right child below this operator in the query plan
* @return Right child
*/
public Operator getRight() {
return this.inputs.get(1);
}
/* (non-Javadoc)
* @see sjdb.Operator#getInputs()
*/
@Override
public List<Operator> getInputs() {
List<Operator> inputs = new ArrayList<Operator>();
inputs.addAll(this.inputs);
return inputs;
}
/* (non-Javadoc)
* @see sjdb.Operator#getOutput()
*/
@Override
public Relation getOutput() {
return this.output;
}
/* (non-Javadoc)
* @see sjdb.Operator#accept(sjdb.OperatorVisitor)
*/
public void accept(PlanVisitor visitor) {
super.accept(visitor);
}
}