net.sf.javagimmicks.graph.Edge Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gimmicks Show documentation
Show all versions of gimmicks Show documentation
Utility classes, APIs and tools for Java
package net.sf.javagimmicks.graph;
import java.util.Collection;
/**
* Represents an edge of a {@link Graph} that connects two vertices together.
*
* @param
* the type of vertices of the surrounding {@link Graph}
* @param
* the concrete type of {@link Edge}s
*/
public interface Edge>
{
/**
* Checks if this {@link Edge} connects to the given vertex.
*
* @param vertex
* the vertex to check for connection
* @return if this {@link Edge} connects to the given vertex
*/
boolean connectsTo(VertexType vertex);
/**
* Returns the two vertices that this {@link Edge} connects to as a
* {@link Collection}.
*
* @return the two vertices that this {@link Edge} connects to as a
* {@link Collection}
*/
Collection getVertices();
/**
* Returns the partner vertex of a given incoming vertex.
*
* @param incoming
* the vertex the return the partner vertex for
* @return the respective partner vertex or {@code null} if the vertex is not
* connected to this {@link Edge} (see {@link #connectsTo(Object)})
*/
VertexType getOutgoingVertex(VertexType incoming);
/**
* Returns the enclosing {@link Graph}.
*
* @return the enclosing {@link Graph}
*/
Graph getGraph();
/**
* Returns a {@link String} representation of this {@link Edge} using the
* given vertex as the incoming one and the other connected vertex as the
* outgoing one.
*
* @param incoming
* the vertex to use as the incoming one for {@link String}
* representation
* @return the resulting {@link String} representation
* @throws IllegalArgumentException
* if the given incoming vertex is not connected to this
* {@link Edge} (see {@link #connectsTo(Object)})
*/
String toString(VertexType incoming) throws IllegalArgumentException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy