Advertisement
DanFloyd

VocItf

Mar 29th, 2014
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.39 KB | None | 0 0
  1. public interface VocItf
  2. {
  3.     // OVERVIEW:
  4.     // Un Vocabolario e' una collezione di associazioni del tipo
  5.     // 'chiave -> valore', dove sia 'chiave' che 'valore' sono stringhe,
  6.     // e valgono le seguenti proprieta':
  7.  
  8.     // - non ci possono essere due associazioni per la stessa chiave;
  9.     // - le associazioni sono ordinate in base alla chiave.
  10.  
  11.     // Invariante di rappresentazione:
  12.     // I(c) = (this.IsEmpty())|| this.vect.size()==1 ||
  13.     //    (for i=0...this.vect.size()-1
  14.     //       for j=1...this.vect.size()
  15.     //             (i<j implica this.vect.get(i).key<this.vect.get(j).key)))
  16.  
  17.     // Funzione di astrazione:
  18.     // A(c) = =============
  19.     //    =============
  20.     // se this.IsEmpty(), altrimenti
  21.     // A(c) = =============
  22.     //        [key0->value]
  23.     //    [key1->value]
  24.     //    [....->.....]
  25.     //    [keyN->value]
  26.     //    =============
  27.  
  28.     // Costruttore senza parametri
  29.     // EFFECTS: inizializza this ad un vocabolario vuoto
  30.  
  31.     // Metodi:
  32.  
  33.     public boolean isIn(String k) throws NullPointerException;
  34.     // REQUIRE : this != null && key != null &&
  35.     // (!this.IsEmpty()) -> per ogni
  36.     // associazione 0 <= i < N : chiave(i) < chiave(i+1)
  37.     // (clausola di ordinamento corretto)
  38.     // EFFECTS : se key appartiene a this restituisce true
  39.     // false altrimenti oppure lancia un eccezione se this==null o
  40.     // key==null
  41.  
  42.     public boolean isEmpty() throws NullPointerException;
  43.     // REQUIRE : this != null
  44.     // EFFECTS : se il vocabolario è vuoto restituisce true
  45.     // false altrimenti, oppure lancia un'eccezione se this è vuoto.
  46.  
  47.     public String searchTuple(String k) throws NotFoundException, NullPointerException;
  48.     // REQUIRE : this != null && k != null && if (!this.IsEmpty()) -> per ogni
  49.     // associazione 0 <= i < N : chiave(i) < chiave(i+1)
  50.     // EFFECTS : Lancia un eccezione NullPointerException se this o una delle chiavi è null
  51.     // altrimenti restituisce il valore associato a key se quest'ultima è presente,
  52.     // nel caso in cui non lo sia lancia NotFoundException.
  53.  
  54.     public void insertTuple(String k, String v) throws NullPointerException;
  55.     // REQUIRE : (this != null && k != null && v != null)
  56.     // n.b. clausola di ordinamento corretto
  57.     // EFFECTS : se (!isIn(k)) aggiunge all'oggetto this l'associazione key-value
  58.     // altrimenti aggiorna il valore dell'associazione presente nel vocabolario
  59.     // con quello passato come parametro di ingresso oppure lancia la NullPointerException
  60.     // se this o una delle chiavi/valori è null.
  61.  
  62.     public void removeTuple(String k) throws EmptyException, NotFoundException, NullPointerException;
  63.     // REQUIRE :(this != null && k != null)
  64.     // // n.b. clausola di ordinamento corretto
  65.     // EFFECTS : Se il vocabolario è vuoto lancia la EmptyException altrimenti
  66.     // se isIn(key) rimuove dal vocabolario la tupla key-value, in caso contrario
  67.     // lancia la NotFoundException o la NullPointerException se this o una delle chiavi
  68.     // è nulla.
  69.  
  70.     // Funzione di astrazione
  71.     public String toString() throws NullPointerException;
  72.     // REQUIRE : this != null && clausola di ordinamento corretto
  73.     // EFFECTS : restituisce sotto forma di stringa la rappresentazione grafica
  74.     // dell'oggetto this come specificato nell' overview.
  75.  
  76.     // Funzione di controllo dell'invariante di rappresentazione
  77.     public boolean repOk() throws NullPointerException;
  78.     // REQUIRE : this != null && clausola di ordinamento corretto
  79.     // EFFECTS : restituisce true se l'invariante è soddisfatta, false in caso
  80.     // contrario
  81.    
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement