
// AdjNode.java
// Andrew Davison, ad@coe.psu.ac.th, Dec. 2022


import java.util.*;


public class AdjNode
{ 
  private String id; 
  private boolean isVisited = false;
  private ArrayList<String> neighbors = new ArrayList<>();


  public AdjNode(String id) 
  {  this.id = id;  } 

  public String getID()
  {  return id;  }

  public char getLetter()
  {  return id.charAt(0);  }

  public boolean isVisited()
  {  return isVisited;  }

  public void setVisited(boolean b)
  {  isVisited = b;  }


  public void addNeighbor(String s)
  {
    if (neighbors.contains(s))
      System.out.println(id + " already linked to " + s);
    else 
      neighbors.add(s);
  }

  public void addNeighbors(String[] ns)
  {
    for(String s : ns)
      addNeighbor(s);
  }

  public int numNeighbors()
  {  return neighbors.size();  }

  public ArrayList<String> getNeighbors()
  {  return neighbors;  }


  public String toString()
  {
     return id + " - " + 
             Arrays.toString(neighbors.toArray());  
  }

} // end of AdjNode class
