cascading.flow.planner
Class ElementGraph

java.lang.Object
  extended by org.jgrapht.graph.AbstractGraph<V,E>
      extended by org.jgrapht.graph.AbstractBaseGraph<V,E>
          extended by org.jgrapht.graph.SimpleDirectedGraph<FlowElement,Scope>
              extended by cascading.flow.planner.ElementGraph
All Implemented Interfaces:
Serializable, Cloneable, org.jgrapht.DirectedGraph<FlowElement,Scope>, org.jgrapht.Graph<FlowElement,Scope>

public class ElementGraph
extends org.jgrapht.graph.SimpleDirectedGraph<FlowElement,Scope>

Class ElementGraph represents the executable FlowElement graph.

See Also:
Serialized Form

Nested Class Summary
static class ElementGraph.Extent
           
 
Field Summary
static ElementGraph.Extent head
          Field head
static ElementGraph.Extent tail
          Field tail
 
Constructor Summary
ElementGraph(ElementGraph elementGraph)
           
ElementGraph(PlatformInfo platformInfo, Pipe[] pipes, Map<String,Tap> sources, Map<String,Tap> sinks, Map<String,Tap> traps, Map<String,Tap> checkpoints, boolean requireUniqueCheckpoints, PlannerLevel... plannerLevels)
          Constructor ElementGraph creates a new ElementGraph instance.
 
Method Summary
 ElementGraph copyElementGraph()
          Method copyGraph returns a partial copy of the current ElementGraph.
 List<CoGroup> findAllCoGroups()
           
 List<Each> findAllEachSplits()
          Method findAllSplits ...
 List<Every> findAllEveries()
          Method findAllEveries ...
 List<Group> findAllGroups()
          Method findAllGroups ...
 List<Group> findAllMergeJoinGroups()
          Finds all groups that merge/join streams.
 List<Splice> findAllMergeJoinSplices()
          Finds all splices that merge/join streams.
<P> List<P>
findAllOfType(int minInDegree, int minOutDegree, Class<P> type, List<P> results)
          Method findAllOfType ...
 List<Pipe> findAllPipeSplits()
           
 List<Tap> findAllTaps()
          Method findAllTaps ...
 Set<FlowElement> getAllChildrenNotExactlyType(FlowElement flowElement, Class<? extends FlowElement> type)
           
<A extends FlowElement>
Set<A>
getAllChildrenOfType(FlowElement flowElement, Class<A> type)
           
 List<org.jgrapht.GraphPath<FlowElement,Scope>> getAllShortestPathsBetweenExtents()
          Method getAllShortestPathsBetweenExtents returns the allShortestPathsBetweenExtents of this ElementGraph object.
 List<org.jgrapht.GraphPath<FlowElement,Scope>> getAllShortestPathsFrom(FlowElement flowElement)
          Method getAllShortestPathsFrom ...
 List<org.jgrapht.GraphPath<FlowElement,Scope>> getAllShortestPathsTo(FlowElement flowElement)
          Method getAllShortestPathsTo ...
 List<FlowElement> getAllSuccessors(FlowElement element)
           
 Map<String,Tap> getCheckpointsMap()
           
 org.jgrapht.traverse.DepthFirstIterator<FlowElement,Scope> getDepthFirstIterator()
          Method getDepthFirstIterator returns the depthFirstIterator of this ElementGraph object.
 int getMaxNumPathsBetweenElementAndGroupingMergeJoin(FlowElement flowElement)
           
 Map<String,Tap> getSinkMap()
           
 Collection<Tap> getSinks()
           
 Map<String,Tap> getSourceMap()
           
 Collection<Tap> getSources()
           
 org.jgrapht.traverse.TopologicalOrderIterator<FlowElement,Scope> getTopologicalIterator()
          Method getTopologicalIterator returns the topologicalIterator of this ElementGraph object.
 Map<String,Tap> getTrapMap()
           
 Collection<Tap> getTraps()
           
 void insertFlowElementAfter(FlowElement previousElement, FlowElement flowElement)
           
 org.jgrapht.graph.SimpleDirectedGraph<Tap,Integer> makeTapGraph()
          Method makeTapGraph returns a directed graph of all taps in the current element graph.
protected  void printElementGraph(String filename, org.jgrapht.graph.SimpleDirectedGraph<FlowElement,Scope> graph)
           
 void removeUnnecessaryPipes()
          Method removeEmptyPipes performs a depth first traversal and removes instance of Pipe or SubAssembly.
 void replaceElementWith(FlowElement element, FlowElement replacement)
           
 void resolveFields()
          Method resolveFields performs a breadth first traversal and resolves the tuple fields between each Pipe instance.
 void writeDOT(String filename)
          Method writeDOT writes this element graph to a DOT file for easy visualization and debugging.
 
Methods inherited from class org.jgrapht.graph.AbstractBaseGraph
addEdge, addEdge, addVertex, clone, containsEdge, containsVertex, degreeOf, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeFactory, getEdgeSource, getEdgeTarget, getEdgeWeight, incomingEdgesOf, inDegreeOf, isAllowingLoops, isAllowingMultipleEdges, outDegreeOf, outgoingEdgesOf, removeEdge, removeEdge, removeVertex, setEdgeSetFactory, setEdgeWeight, vertexSet
 
Methods inherited from class org.jgrapht.graph.AbstractGraph
assertVertexExist, containsEdge, removeAllEdges, removeAllEdges, removeAllEdges, removeAllVertices, toString, toStringFromSets
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jgrapht.DirectedGraph
incomingEdgesOf, inDegreeOf, outDegreeOf, outgoingEdgesOf
 
Methods inherited from interface org.jgrapht.Graph
addEdge, addEdge, addVertex, containsEdge, containsEdge, containsVertex, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeFactory, getEdgeSource, getEdgeTarget, getEdgeWeight, removeAllEdges, removeAllEdges, removeAllVertices, removeEdge, removeEdge, removeVertex, vertexSet
 

Field Detail

head

public static final ElementGraph.Extent head
Field head


tail

public static final ElementGraph.Extent tail
Field tail

Constructor Detail

ElementGraph

public ElementGraph(ElementGraph elementGraph)

ElementGraph

public ElementGraph(PlatformInfo platformInfo,
                    Pipe[] pipes,
                    Map<String,Tap> sources,
                    Map<String,Tap> sinks,
                    Map<String,Tap> traps,
                    Map<String,Tap> checkpoints,
                    boolean requireUniqueCheckpoints,
                    PlannerLevel... plannerLevels)
Constructor ElementGraph creates a new ElementGraph instance.

Parameters:
pipes - of type Pipe[]
sources - of type Map
sinks - of type Map
Method Detail

getSourceMap

public Map<String,Tap> getSourceMap()

getSinkMap

public Map<String,Tap> getSinkMap()

getTrapMap

public Map<String,Tap> getTrapMap()

getCheckpointsMap

public Map<String,Tap> getCheckpointsMap()

getSources

public Collection<Tap> getSources()

getSinks

public Collection<Tap> getSinks()

getTraps

public Collection<Tap> getTraps()

copyElementGraph

public ElementGraph copyElementGraph()
Method copyGraph returns a partial copy of the current ElementGraph. Only Vertices and Edges are copied.

Returns:
ElementGraph

getTopologicalIterator

public org.jgrapht.traverse.TopologicalOrderIterator<FlowElement,Scope> getTopologicalIterator()
Method getTopologicalIterator returns the topologicalIterator of this ElementGraph object.

Returns:
the topologicalIterator (type TopologicalOrderIterator) of this ElementGraph object.

getAllShortestPathsFrom

public List<org.jgrapht.GraphPath<FlowElement,Scope>> getAllShortestPathsFrom(FlowElement flowElement)
Method getAllShortestPathsFrom ...

Parameters:
flowElement - of type FlowElement
Returns:
List>

getAllShortestPathsTo

public List<org.jgrapht.GraphPath<FlowElement,Scope>> getAllShortestPathsTo(FlowElement flowElement)
Method getAllShortestPathsTo ...

Parameters:
flowElement - of type FlowElement
Returns:
List>

getAllShortestPathsBetweenExtents

public List<org.jgrapht.GraphPath<FlowElement,Scope>> getAllShortestPathsBetweenExtents()
Method getAllShortestPathsBetweenExtents returns the allShortestPathsBetweenExtents of this ElementGraph object.

Returns:
the allShortestPathsBetweenExtents (type List>) of this ElementGraph object.

getDepthFirstIterator

public org.jgrapht.traverse.DepthFirstIterator<FlowElement,Scope> getDepthFirstIterator()
Method getDepthFirstIterator returns the depthFirstIterator of this ElementGraph object.

Returns:
the depthFirstIterator (type DepthFirstIterator) of this ElementGraph object.

writeDOT

public void writeDOT(String filename)
Method writeDOT writes this element graph to a DOT file for easy visualization and debugging.

Parameters:
filename - of type String

printElementGraph

protected void printElementGraph(String filename,
                                 org.jgrapht.graph.SimpleDirectedGraph<FlowElement,Scope> graph)

removeUnnecessaryPipes

public void removeUnnecessaryPipes()
Method removeEmptyPipes performs a depth first traversal and removes instance of Pipe or SubAssembly.


resolveFields

public void resolveFields()
Method resolveFields performs a breadth first traversal and resolves the tuple fields between each Pipe instance.


findAllMergeJoinGroups

public List<Group> findAllMergeJoinGroups()
Finds all groups that merge/join streams. returned in topological order.

Returns:
a List fo Group instances

findAllMergeJoinSplices

public List<Splice> findAllMergeJoinSplices()
Finds all splices that merge/join streams. returned in topological order.

Returns:
a List fo Group instances

findAllCoGroups

public List<CoGroup> findAllCoGroups()

findAllGroups

public List<Group> findAllGroups()
Method findAllGroups ...

Returns:
List

findAllEveries

public List<Every> findAllEveries()
Method findAllEveries ...

Returns:
List

findAllTaps

public List<Tap> findAllTaps()
Method findAllTaps ...

Returns:
List

findAllEachSplits

public List<Each> findAllEachSplits()
Method findAllSplits ...

Returns:
List

findAllPipeSplits

public List<Pipe> findAllPipeSplits()

findAllOfType

public <P> List<P> findAllOfType(int minInDegree,
                                 int minOutDegree,
                                 Class<P> type,
                                 List<P> results)
Method findAllOfType ...

Parameters:
minInDegree - of type int
minOutDegree -
type - of type Class

results - of type List

@return List


insertFlowElementAfter

public void insertFlowElementAfter(FlowElement previousElement,
                                   FlowElement flowElement)

makeTapGraph

public org.jgrapht.graph.SimpleDirectedGraph<Tap,Integer> makeTapGraph()
Method makeTapGraph returns a directed graph of all taps in the current element graph.

Returns:
SimpleDirectedGraph

getMaxNumPathsBetweenElementAndGroupingMergeJoin

public int getMaxNumPathsBetweenElementAndGroupingMergeJoin(FlowElement flowElement)

getAllSuccessors

public List<FlowElement> getAllSuccessors(FlowElement element)

replaceElementWith

public void replaceElementWith(FlowElement element,
                               FlowElement replacement)

getAllChildrenOfType

public <A extends FlowElement> Set<A> getAllChildrenOfType(FlowElement flowElement,
                                                           Class<A> type)

getAllChildrenNotExactlyType

public Set<FlowElement> getAllChildrenNotExactlyType(FlowElement flowElement,
                                                     Class<? extends FlowElement> type)


Copyright © 2007-2015 Concurrent, Inc. All Rights Reserved.