edu.isi.pegasus.planner.partitioner.graph
Class GraphNode

java.lang.Object
  extended by edu.isi.pegasus.planner.classes.Data
      extended by edu.isi.pegasus.planner.partitioner.graph.GraphNode
All Implemented Interfaces:
Cloneable

public class GraphNode
extends Data

Data class that allows us to construct information about the nodes in the abstract graph. Contains for each node the references to it's parents and children. The direction of the edges is usually following the children from a node. Parents are kept to facilitate bottom up traversals.

Version:
$Revision: 3366 $
Author:
Karan Vahi

Field Summary
static int BLACK_COLOR
           
static int GRAY_COLOR
           
private  Bag mBag
          A Bag of objects that maybe associated with the node.
private  List mChildren
          The list of children of the job/node in the abstract graph.
private  int mColor
          The color the node is colored.
private  GraphNodeContent mContent
          The content associated with this node.
private  int mDepth
          The depth of the node from the root or any arbitary node.
private  String mLogicalID
          The logical id of the job as identified in the dax.
private  String mLogicalName
          The logical name of the node as identified in the dax.
private  List mParents
          The list of parents of the job/node in the abstract graph.
static int WHITE_COLOR
           
 
Fields inherited from class edu.isi.pegasus.planner.classes.Data
mLogger, mLogMsg
 
Constructor Summary
GraphNode()
          The default constructor.
GraphNode(String id, GraphNodeContent content)
          The overloaded constructor.
GraphNode(String id, String name)
          The overloaded constructor.
 
Method Summary
 void addChild(GraphNode child)
          Adds a child to end of the child list.
 void addParent(GraphNode parent)
          Adds a parent to end of the parent list.
 Object clone()
          Returns a copy of the object.
 Bag getBag()
          Returns the bag of objects associated with the node.
 List<GraphNode> getChildren()
          Returns a list of GraphNode objects that are children of the node.
 GraphNodeContent getContent()
          Returns the content associated with the node.
 int getDepth()
          Returns the depth of the node in the graph.
 String getID()
          Returns the logical id of the graph node.
 String getName()
          Returns the logical name of the graph node.
 List<GraphNode> getParents()
          Returns a list of GraphNode objects that are parents of the node.
 boolean isColor(int color)
          Returns if the color of the node is as specified.
 boolean parentsColored(int color)
          Returns if all the parents of that node have the color that is specified.
 void removeChild(GraphNode child)
          Removes a child linkage to the node.
 void removeParent(GraphNode parent)
          Removes a parent linkage to the node.
 void setBag(Bag bag)
          Sets the bag of objects associated with the node.
 void setChildren(List children)
          It sets the children to the node.
 void setColor(int color)
          Sets the color of the node to the color specified
 void setContent(GraphNodeContent content)
          Sets the content associated with the node.
 void setDepth(int depth)
          Sets the depth associated with the node.
 void setParents(List parents)
          It adds the parents to the node.
 String toString()
          The textual representation of the graph node.
 
Methods inherited from class edu.isi.pegasus.planner.classes.Data
setToString, vectorToString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

WHITE_COLOR

public static final int WHITE_COLOR
See Also:
Constant Field Values

GRAY_COLOR

public static final int GRAY_COLOR
See Also:
Constant Field Values

BLACK_COLOR

public static final int BLACK_COLOR
See Also:
Constant Field Values

mLogicalID

private String mLogicalID
The logical id of the job as identified in the dax.


mLogicalName

private String mLogicalName
The logical name of the node as identified in the dax.


mDepth

private int mDepth
The depth of the node from the root or any arbitary node.


mColor

private int mColor
The color the node is colored.


mParents

private List mParents
The list of parents of the job/node in the abstract graph. Each element of the list is a GraphNode object.


mChildren

private List mChildren
The list of children of the job/node in the abstract graph. Each element of the list is a GraphNode object.


mContent

private GraphNodeContent mContent
The content associated with this node.


mBag

private Bag mBag
A Bag of objects that maybe associated with the node.

See Also:
Bag
Constructor Detail

GraphNode

public GraphNode()
The default constructor.


GraphNode

public GraphNode(String id,
                 GraphNodeContent content)
The overloaded constructor.

Parameters:
id - the id of the node in the graph.
content - the content to be associated with the node.

GraphNode

public GraphNode(String id,
                 String name)
The overloaded constructor.

Parameters:
id - the logical id of the node.
name - the name of the node.
Method Detail

setBag

public void setBag(Bag bag)
Sets the bag of objects associated with the node. Overwrite the previous bag if existing.

Parameters:
bag - the Bag to be associated with the node.

setContent

public void setContent(GraphNodeContent content)
Sets the content associated with the node. Overwrites the previous content if existing.

Parameters:
content - the GraphNodeContent to be associated with the node.

setParents

public void setParents(List parents)
It adds the parents to the node. It ends up overwriting all the existing parents if some already exist.


setChildren

public void setChildren(List children)
It sets the children to the node. It ends up overwriting all the existing parents if some already exist.


setDepth

public void setDepth(int depth)
Sets the depth associated with the node.


getBag

public Bag getBag()
Returns the bag of objects associated with the node.

Returns:
the bag or null if no bag associated

getContent

public GraphNodeContent getContent()
Returns the content associated with the node.

Returns:
the content or null if no content associated

getParents

public List<GraphNode> getParents()
Returns a list of GraphNode objects that are parents of the node.

Returns:
list of GraphNode objects.

getChildren

public List<GraphNode> getChildren()
Returns a list of GraphNode objects that are children of the node.

Returns:
list of GraphNode objects.

addChild

public void addChild(GraphNode child)
Adds a child to end of the child list.

Parameters:
child - adds a child to the node.

addParent

public void addParent(GraphNode parent)
Adds a parent to end of the parent list.

Parameters:
parent - adds a parent to the node.

removeChild

public void removeChild(GraphNode child)
Removes a child linkage to the node.

Parameters:
child - child to be removed.

removeParent

public void removeParent(GraphNode parent)
Removes a parent linkage to the node.

Parameters:
parent - parent to be removed.

getID

public String getID()
Returns the logical id of the graph node.


getName

public String getName()
Returns the logical name of the graph node.


getDepth

public int getDepth()
Returns the depth of the node in the graph.


isColor

public boolean isColor(int color)
Returns if the color of the node is as specified.

Parameters:
color - color that node should be.

setColor

public void setColor(int color)
Sets the color of the node to the color specified

Parameters:
color - color that node should be.

parentsColored

public boolean parentsColored(int color)
Returns if all the parents of that node have the color that is specified.

Parameters:
color - the color of the node.
Returns:
true if there are no parents or all parents are of the color. false in all other cases.

toString

public String toString()
The textual representation of the graph node.

Specified by:
toString in class Data
Returns:
textual description.

clone

public Object clone()
Returns a copy of the object.

Overrides:
clone in class Object


Copyright © 2011 The University of Southern California. All Rights Reserved.