@InterfaceAudience.Private @InterfaceStability.Unstable public interface OperatorPlan
Modifier and Type | Method and Description |
---|---|
void |
add(Operator op)
Add a new operator to the plan.
|
void |
connect(Operator from,
int fromPos,
Operator to,
int toPos)
Connect two operators in the plan, controlling which position in the
edge lists that the from and to edges are placed.
|
void |
connect(Operator from,
Operator to)
Connect two operators in the plan.
|
void |
createSoftLink(Operator from,
Operator to)
Create an soft edge between two nodes.
|
Pair<Integer,Integer> |
disconnect(Operator from,
Operator to)
Disconnect two operators in the plan.
|
Iterator<Operator> |
getOperators()
Get an iterator of all operators in this plan
|
List<Operator> |
getPredecessors(Operator op)
For a given operator, get all operators immediately before it in the
plan.
|
List<Operator> |
getSinks()
Get all operators in the plan that have no successors.
|
List<Operator> |
getSoftLinkPredecessors(Operator op)
For a given operator, get all operators softly immediately before it in the
plan.
|
List<Operator> |
getSoftLinkSuccessors(Operator op)
For a given operator, get all operators softly immediately after it.
|
List<Operator> |
getSources()
Get all operators in the plan that have no predecessors.
|
List<Operator> |
getSuccessors(Operator op)
For a given operator, get all operators immediately after it.
|
void |
insertBetween(Operator pred,
Operator operatorToInsert,
Operator succ)
This method insert node operatorToInsert between pred and succ.
|
boolean |
isEqual(OperatorPlan other)
This is like a shallow comparison.
|
boolean |
pathExists(Operator load,
Operator store)
check if there is a path in the plan graph between the load operator to the store operator.
|
void |
remove(Operator op)
Remove an operator from the plan.
|
void |
removeAndReconnect(Operator operatorToRemove)
This method remove a node operatorToRemove.
|
void |
removeSoftLink(Operator from,
Operator to)
Remove an soft edge
|
void |
replace(Operator oldOperator,
Operator newOperator)
This method replace the oldOperator with the newOperator, make all connection
to the new operator in the place of old operator
|
int |
size()
Get number of nodes in the plan.
|
int size()
List<Operator> getSources()
List<Operator> getSinks()
List<Operator> getPredecessors(Operator op)
op
- operator to fetch predecessors ofList<Operator> getSuccessors(Operator op)
op
- operator to fetch successors ofList<Operator> getSoftLinkPredecessors(Operator op)
op
- operator to fetch predecessors ofList<Operator> getSoftLinkSuccessors(Operator op)
op
- operator to fetch successors ofvoid add(Operator op)
op
- operator to addvoid remove(Operator op) throws FrontendException
op
- Operator to be removedFrontendException
- if the remove operation attempts to
remove an operator that is still connected to other operators.void connect(Operator from, int fromPos, Operator to, int toPos)
from
- Operator edge will come fromfromPos
- Position in the array for the from edgeto
- Operator edge will go totoPos
- Position in the array for the to edgevoid connect(Operator from, Operator to)
from
- Operator edge will come fromto
- Operator edge will go tovoid createSoftLink(Operator from, Operator to)
from
- Operator dependent uponto
- Operator having the dependencyvoid removeSoftLink(Operator from, Operator to)
from
- Operator dependent uponto
- Operator having the dependencyPair<Integer,Integer> disconnect(Operator from, Operator to) throws FrontendException
from
- Operator edge is coming fromto
- Operator edge is going toFrontendException
- if the two operators aren't connected.Iterator<Operator> getOperators()
boolean isEqual(OperatorPlan other) throws FrontendException
other
- object to compareFrontendException
void replace(Operator oldOperator, Operator newOperator) throws FrontendException
oldOperator
- operator to be replacednewOperator
- operator to replaceFrontendException
void removeAndReconnect(Operator operatorToRemove) throws FrontendException
operatorToRemove
- operator to removeFrontendException
void insertBetween(Operator pred, Operator operatorToInsert, Operator succ) throws FrontendException
pred
- predecessor of inserted node after this methodoperatorToInsert
- operato to insertsucc
- successor of inserted node after this methodFrontendException
Copyright © 2007-2017 The Apache Software Foundation