78 lines
2.4 KiB
Java
78 lines
2.4 KiB
Java
![]() |
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);
|
||
|
}
|