package buffalo.twoTasksAnalysis; import buffalo.dataStructures.Buffer; import java.util.Vector; /** Ensemble de conditions sur les dimensions de deux buffers. */ public class BufferPairExpression { private Buffer firstBuffer; private Buffer secondBuffer; private Vector conditions; private int indexOfMe; /*-----------------------------------------------------*/ /** Se crée avec les deux valeurs et l'expression à laquelle on l'ajoute. */ public BufferPairExpression(Buffer firstBuffer, Buffer secondBuffer) { this.firstBuffer = firstBuffer; this.secondBuffer = secondBuffer; conditions = new Vector(); } /*-----------------------------------------------------*/ /** Retourne le <CODE>firstBuffer</CODE>. */ public Buffer getFirstBuffer() { return firstBuffer; } /*-----------------------------------------------------*/ /** Retourne le <CODE>secondBuffer</CODE>. */ public Buffer getSecondBuffer() { return secondBuffer; } /*-----------------------------------------------------*/ /** Retourne l'<CODE>index</CODE> de cette expression. */ public int getIndex() { return indexOfMe; } /*-----------------------------------------------------*/ /** Détermine l'<CODE>index</CODE> de cette expression. */ public void setIndex(int index) { this.indexOfMe = index; } /*-----------------------------------------------------*/ /** Retourne le nombre de <CODE>BufferCondition</CODE> de cette expression. */ public int getNbConditions() { return conditions.size(); } /*-----------------------------------------------------*/ /** Retourne la <CODE>index</CODE>-ième <CODE>BufferCondition</CODE> de cette expression. */ public BufferPairCondition getBufferPairCondition (int indexOfBufferPairCondition) { return (BufferPairCondition)conditions.get (indexOfBufferPairCondition); } /*-----------------------------------------------------*/ /** Ajoute une <CODE>BufferCondition</CODE> à cette expression. */ public void addBufferPairCondition (BufferPairCondition aNewCondition) { conditions.add(aNewCondition); aNewCondition.setIndex(conditions.size() - 1); aNewCondition.setBufferPairExpression(this); } /*-----------------------------------------------------*/ /** Retourne l'instance courante au format chaîne de caractères. */ public String toString() { String results = "C( b"; results += firstBuffer.getIndex()+" , b"; results += secondBuffer.getIndex()+" ) = "; int nbConditions = getNbConditions(); BufferPairCondition myBufferPairCondition; for(int i = 0 ; i < nbConditions ; i++) { myBufferPairCondition = getBufferPairCondition(i); if (myBufferPairCondition != null) { results += myBufferPairCondition.toString()+" "; } } return results; } }