reversound/src/processing/buffer/Storage.java

78 lines
2.4 KiB
Java
Raw Normal View History

package processing.buffer;
import java.util.ArrayList;
public interface Storage<T> {
public enum Type{
ArrayList
}
/**
* Retourne l'élément d'index id, null si aucun n'y est associé
* @param id index de l'élément
* @return l'élément /!\ Peut renvoyer null si aucun élément ne correspond à l'index /!\
*/
public T get(int id);
/**
* Modifie un élément à un index donné ou l'ajoute si aucun élément ne correspond à l'index
* @param id index de l'élément à modifier ou ajouter
* @param value valeur de l'élément
* @return la valeur de l'élément précédant /!\ Peut renvoyer null si aucun élément ne correspondait à cet index /!\
*/
public T set(int id, T value);
/**
* Ajoute une élément en fin de liste
* @param value valeur de l'élément à ajouter
* @return Vrai si l'opération a réussie (mais peut-elle rater?)...
*/
public boolean add(T value);
/**
* Supprime un élément de la liste
* @param id index de l'élément à supprimer
* @return la valeur de l'élément supprimer /!\ Peut renvoyer null si aucun élément ne correspondait à cet index /!\
*/
public T remove(int id);
/**
* Retourne le nombre maximum d'élément de tableau (dernier index +1)
* @return la taille de l'espace de stockage
*/
public int size();
/**
* Vérifie si tout les échantillons du stockage sont null
* @return Vrai si size() = 0 ou si aucun échantillon n'est stocké dans l'espace disponible
*/
public boolean isEmpty();
/**
* Retourne la liste des indexs associés à des éléments dans le Storage: aucun de ces indexs ne retournera null par get(index)
* * @return la liste des indexs de tout les éléments du Storage
*/
public ArrayList<Integer> getSamplesIndex();
/**
* Génère un iterateur pointant initialement sur le première élément de la liste
* @return Un iterateur sur ce stockage
*/
public StorageIterator<T> getIterator();
/**
* Génère un iterateur pointant initialement sur l'élément de la liste correspondant à l'index en argument
* @param initialIndex index de l'élément sur lequel pointe initialement l'iterateur
* @return Un iterateur sur ce stockage
*/
public StorageIterator<T> getIterator(int initialIndex);
/**
* Réserve directement un espace sans modifier la taille du tableau (si la forme si prête)
* @param capacity capacité maximale;
*/
public void tryEnsureCapacity(int capacity);
}