chat
Class Database

java.lang.Object
  |
  +--chat.Database

public class Database
extends java.lang.Object

Classe per costruire un archivio di entità Contatto ordinate in modo crescente sulla base del campo nome. Realizza un semplice database che usa il nome come campo chiave di ricerca.

Idonea anche a situazioni multi-thread.

Version:
1.0
Author:
Marco Cimatti
See Also:
Contatto, Contatto.nome()

Field Summary
private  java.util.SortedSet s
          La tabella ad albero binario ordinata che contiene i singoli record.
 
Constructor Summary
Database()
          Costruttore che istanzia un database vuoto.
Database(java.lang.String nome_file)
          Costruttore che legge il contenuto del database da un file.
 
Method Summary
 void cancella()
          Modificatore per azzerare l'archivio; primitiva solo per questione di comodità ed efficienza.
 void cancella(java.lang.String chi)
          Modificatore primitiva per eliminare un elemento.
 boolean contiene(java.lang.String chi)
          Predicato primitiva per verificare l'appartenenza di un certo nominativo entro l'archivio.
 void modifica(Contatto c)
          Modificatore primitiva per aggiungere un record all'archivio; se è già presente una entry avente lo stesso nome di c allora essa viene sovrascritta.
 int quanti()
          Accesso per ottenere il numero di elementi contenuti; primitiva solo per questioni di comodità ed efficienza.
 Contatto seleziona(java.lang.String chi)
          Selettore primitiva per ottenere un certo elemento dall'archivio.
 java.lang.String toString()
          Convertitore per ottenere la rappresentazione testuale del contenuto dell'archivio, conforme alla grammatica definita da Parser per esprimere un Contatto. non è una primitiva.
 Contatto[] tutti()
          Accesso primitiva per ottenere tutti gli elementi.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

s

private java.util.SortedSet s
La tabella ad albero binario ordinata che contiene i singoli record.
Constructor Detail

Database

public Database()
Costruttore che istanzia un database vuoto.

Database

public Database(java.lang.String nome_file)
         throws java.io.FileNotFoundException,
                java.io.IOException
Costruttore che legge il contenuto del database da un file. Adotta Parser per processare il file ASCII il cui nome è passato come parametro.
Parameters:
nome_file - il nome del file ASCII da leggere.
Throws:
java.io.FileNotFoundException - se il file indicato manca.
java.io.IOException - in caso di errori accedendo in lettura al file.
See Also:
Parser
Method Detail

modifica

public void modifica(Contatto c)
Modificatore primitiva per aggiungere un record all'archivio; se è già presente una entry avente lo stesso nome di c allora essa viene sovrascritta. Questo evita di avere più elementi con lo stesso nome.
Parameters:
c - il Contatto da modificare/aggiungere.
See Also:
Contatto.nome()

contiene

public boolean contiene(java.lang.String chi)
Predicato primitiva per verificare l'appartenenza di un certo nominativo entro l'archivio.
Parameters:
chi - il nome del Contatto da cercare.
Returns:
true se e solo se è presente un record avente nome() == chi; false altrimenti.

seleziona

public Contatto seleziona(java.lang.String chi)
Selettore primitiva per ottenere un certo elemento dall'archivio.
Parameters:
chi - il nome del Contatto da selezionare.
Returns:
null se e solo se non è presente un record avente nome() == chi; il Contatto richiesto altrimenti.

cancella

public void cancella(java.lang.String chi)
Modificatore primitiva per eliminare un elemento.
Parameters:
chi - il nome del Contatto da cancellare.

cancella

public void cancella()
Modificatore per azzerare l'archivio; primitiva solo per questione di comodità ed efficienza.

quanti

public int quanti()
Accesso per ottenere il numero di elementi contenuti; primitiva solo per questioni di comodità ed efficienza.
Returns:
il numero di record presenti nell'archivio.

tutti

public Contatto[] tutti()
Accesso primitiva per ottenere tutti gli elementi.
Returns:
tutti i record presenti nell'archivio; l'array restituito può avere lunghezza nulla qualora il database sia vuoto.

toString

public java.lang.String toString()
Convertitore per ottenere la rappresentazione testuale del contenuto dell'archivio, conforme alla grammatica definita da Parser per esprimere un Contatto. non è una primitiva.
Overrides:
toString in class java.lang.Object
Returns:
una stringa rappresentante l'intero database.
See Also:
Parser, Contatto