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;
}
}