Salve Ragazzi!
Non capisco come implementare alcuni metodi di questa interfaccia:
public interface Channel<E> extends iterable<E>{
void write(E data);
E read();
boolean canRead();
boolean canWrite();
void rearrangeBuffer(Comparator<E> c);
void write(E data, Comparator<E> c);
void erasebuffer();
int size();
Vi prego Aiutatemi
Ecco il testo dell'esercizio:
L'interfaccia Channel definisce un tipo di dato astratto corrispondente ad un canale di comunicazione tra due entità software che svolgono rispettivamente un ruolo di lettore e di scrittore. Un oggetto di tipo Channel implementa una politica di buffering memorizzando in un opportuna struttura i dati scritti fino a quando non avviene la loro lettura.
Mi interessa come concretizzare questi due metodi:
il metodo write(E data) . (il metodo write consente di effettuare un operazione di scrittura e potrebbe sollevare un eccezione di tipo FullBufferException nel caso in cui non ci sia spazio a disposizione per memorizzare il dato).
il metodo read(). (il metodo read consente di leggere , rimuovendolo , un dato dall'oggetto Channel su cui è invocato e può sollevare un eccezione NoDataAvailableException nel caso in cui non ci siano i dati disponibili).
Grazie