package buffalo.transportNetwork; import java.util.Vector; /** Interface pour les flots, plus précisément pour les sommets.<BR> Les sommets qui vont nous permettre d'exécuter les algorithmes de flots doivent juste nous permettre de parcourir le chaînage et accepter une marque. */ public interface FlowableVertex { /** Retourne le sommet source du réseau de transport. */ public FlowableVertex getSource(); /** Retourne le sommet puit du réseau de transport. */ public FlowableVertex getSink(); /** Renvoie, consignées dans un <CODE>Vector</CODE>, toutes les arêtes entrants dans le sommet courant. Attention : il faut que tous les éléments contenus dans ce <CODE>Vector</CODE> soient de type <CODE>FlowableArc</CODE>, sinon ça sera à vous de rattraper la <CODE>ClassCastException</CODE> ! */ public Vector getInArcs(); /** Renvoie, consignées dans un <CODE>Vector</CODE>, toutes les arêtes sortant du sommet courant. Attention : il faut que tous les éléments contenus dans ce <CODE>Vector</CODE> soient de type <CODE>FlowableArc</CODE>, sinon ça sera à vous de rattraper la <CODE>ClassCastException</CODE> ! */ public Vector getOutArcs(); /** Pour placer une marque dans le sommet courant. */ public void acceptMark(FlowMark myMark); /** Pour consulter la marque du sommet courant. */ public FlowMark getMark(); /** Ajoute ce sommet dans la coupe. */ public void addToTheCut(); /** Retourne <CODE>true</CODE> si ce sommet est dans la coupe. */ public boolean isInTheCut(); }