/**
 * Node.java
 *
 *
 * Created: Fri Mar 31 09:16:17 2000
 *
 * @author Hans Kyndesgaard
 * @version 1
 */
import java.awt.*;
public class Node  {
    Sequence out;
    Sequence in;
    String name;
    boolean memberv1; //
    int color = 0; //
    Edge visitedFrom; //

    public Node(boolean memberv1) {
	out = new Sequence();
	in = new Sequence();
	this.memberv1 = memberv1;
    }

    /** @param name You can give each node a name. This name can be very handy when debugging. O(1).
     */
    public Node(String name, boolean memberv1) {
	out = new Sequence();
	in = new Sequence();
	this.name = name;
	this.memberv1 = memberv1;
    }
    
    /** @param name You can give each node a name. This name can be very handy when debugging. O(1).
     */
    public Node(int color, boolean memberv1) {
	out = new Sequence();
	in = new Sequence();
	this.color = color;
	this.memberv1 = memberv1;
    }
    
    /** @param name You can give each node a name. This name can be very handy when debugging. O(1).
     */
    public Node(String name, int color, boolean memberv1) {
	out = new Sequence();
	in = new Sequence();
	this.name = name;
	this.color = color;
	this.memberv1 = memberv1;
    }
    
    /** @return an enumeration of all the edges going out of <code>this</code> node. O(1).
     */
    public java.util.Enumeration outEdges(){
	return out.elements();
    }
    
    /** @return an enumeration of all the edges going in to <code>this</code> node. O(1).
     */
    public java.util.Enumeration inEdges(){
	return in.elements();
    }

    /** @return the number of edges going into <code>this</code> node. O(1).
     */
    public int inDegree(){
	return in.size();
    }
    
    /** @return the number of edges going out of <code>this</code> node. O(1)
     */
    public int outDegree() {
	return out.size();
    }

    /** The string representation is just the given name. O(1)
     */
    public String toString(){
	return name;
    }

    public int getColor() {
	return color;
    }

    public void setColor(int color) {
	this.color = color;
    }

    public void setVisitor(Edge visitedFrom) {
	this.visitedFrom = visitedFrom;
    }
    
} // Node
