public class OperatorSubPlan extends Object implements OperatorPlan
Constructor and Description |
---|
OperatorSubPlan(OperatorPlan base) |
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.
|
OperatorPlan |
getBasePlan() |
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 from,
Operator to)
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.
|
public OperatorSubPlan(OperatorPlan base)
public OperatorPlan getBasePlan()
public void add(Operator op)
OperatorPlan
add
in interface OperatorPlan
op
- operator to addpublic void connect(Operator from, int fromPos, Operator to, int toPos)
OperatorPlan
connect
in interface OperatorPlan
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 edgepublic void connect(Operator from, Operator to)
OperatorPlan
connect
in interface OperatorPlan
from
- Operator edge will come fromto
- Operator edge will go topublic Pair<Integer,Integer> disconnect(Operator from, Operator to) throws FrontendException
OperatorPlan
disconnect
in interface OperatorPlan
from
- Operator edge is coming fromto
- Operator edge is going toFrontendException
- if the two operators aren't connected.public List<Operator> getSinks()
OperatorPlan
getSinks
in interface OperatorPlan
public Iterator<Operator> getOperators()
OperatorPlan
getOperators
in interface OperatorPlan
public List<Operator> getPredecessors(Operator op)
OperatorPlan
getPredecessors
in interface OperatorPlan
op
- operator to fetch predecessors ofpublic List<Operator> getSources()
OperatorPlan
getSources
in interface OperatorPlan
public List<Operator> getSuccessors(Operator op)
OperatorPlan
getSuccessors
in interface OperatorPlan
op
- operator to fetch successors ofpublic void remove(Operator op) throws FrontendException
OperatorPlan
remove
in interface OperatorPlan
op
- Operator to be removedFrontendException
- if the remove operation attempts to
remove an operator that is still connected to other operators.public int size()
OperatorPlan
size
in interface OperatorPlan
public boolean isEqual(OperatorPlan other) throws FrontendException
OperatorPlan
isEqual
in interface OperatorPlan
other
- object to compareFrontendException
public void createSoftLink(Operator from, Operator to)
OperatorPlan
createSoftLink
in interface OperatorPlan
from
- Operator dependent uponto
- Operator having the dependencypublic void removeSoftLink(Operator from, Operator to)
OperatorPlan
removeSoftLink
in interface OperatorPlan
from
- Operator dependent uponto
- Operator having the dependencypublic List<Operator> getSoftLinkPredecessors(Operator op)
OperatorPlan
getSoftLinkPredecessors
in interface OperatorPlan
op
- operator to fetch predecessors ofpublic List<Operator> getSoftLinkSuccessors(Operator op)
OperatorPlan
getSoftLinkSuccessors
in interface OperatorPlan
op
- operator to fetch successors ofpublic void insertBetween(Operator pred, Operator operatorToInsert, Operator succ) throws FrontendException
OperatorPlan
insertBetween
in interface OperatorPlan
pred
- predecessor of inserted node after this methodoperatorToInsert
- operato to insertsucc
- successor of inserted node after this methodFrontendException
public void removeAndReconnect(Operator operatorToRemove) throws FrontendException
OperatorPlan
removeAndReconnect
in interface OperatorPlan
operatorToRemove
- operator to removeFrontendException
public void replace(Operator oldOperator, Operator newOperator) throws FrontendException
OperatorPlan
replace
in interface OperatorPlan
oldOperator
- operator to be replacednewOperator
- operator to replaceFrontendException
public boolean pathExists(Operator from, Operator to)
OperatorPlan
pathExists
in interface OperatorPlan
from
- load operatorto
- store operatorCopyright © 2007-2017 The Apache Software Foundation