package GPL;
import java.util.Iterator;
import java.util.LinkedList;
// ************************************************************
public class Vertex implements EdgeIfc, NeighborIfc
{
public LinkedList adjacentVertices;
public String name;
public Vertex( )
{
VertexConstructor( );
}
public void VertexConstructor( )
{
name = null;
adjacentVertices = new LinkedList();
}
public Vertex assignName( String name )
{
this.name = name;
return ( Vertex ) this;
}
public VertexIter getNeighbors( )
{
return new VertexIter( )
{
private Iterator iter = adjacentVertices.iterator( );
public Vertex next( )
{
return ( Vertex )iter.next( );
}
public boolean hasNext( )
{
return iter.hasNext( );
}
};
}
public void display() {
int s = adjacentVertices.size();
int i;
System.out.print( "Vertex " + name + " connected to: " );
for ( i=0; i<s; i++ )
System.out.print( ( ( Vertex ) adjacentVertices.get( i ) ).name
+ ", " );
System.out.println();
}
//--------------------
// differences
//--------------------
public void addAdjacent( Vertex n ) {
adjacentVertices.add( n );
}
public void adjustAdorns( Vertex the_vertex, int index )
{}
public LinkedList getNeighborsObj( )
{
return adjacentVertices;
}
public EdgeIter getEdges( )
{
return new EdgeIter( )
{
private Iterator iter = adjacentVertices.iterator( );
public EdgeIfc next( )
{
return ( EdgeIfc ) iter.next( );
// return ( ( EdgeIfc ) ( ( Neighbor )iter.next( ) ).edge );
}
public boolean hasNext( )
{
return iter.hasNext( );
}
};
}
public String getName( )
{
return this.name;
}
//--------------------
// from EdgeIfc
//--------------------
public Vertex getStart( ) { return null; }
public Vertex getEnd( ) { return null; }
public void setWeight( int weight ){}
public int getWeight() { return 0; }
public Vertex getOtherVertex( Vertex vertex )
{
return this;
}
public void adjustAdorns( EdgeIfc the_edge )
{
}
}