All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class it.unipi.di.compass.cctwo.constraint.TableManager

java.lang.Object
   |
   +----it.unipi.di.compass.cctwo.constraint.TableManager

public class TableManager
extends Object

Amministra le tabelle che poi verranno salvate su file. Le tabelle sono cinque: la tabella delle stringhe, la tabella contenente le informazioni di visualizzazione, la tabella dei blocchi di scelta, la tabella degli item group e la tabella dei blocchi conditional.

Version:
1.0
Author:
Antonio Cisternino

Variable Index

 o choiceBlockTbl
Contiene la tabella dei blocchi di scelta.
 o conditionalTbl
Contiene la tabella dei Conditional.
 o displayInfoTbl
Contiene la tabella dei Conditional.
 o functionCodes
Tabella della corispondenza Funzioni <=> codici di funzione.
 o itemGroupTbl
Contiene la tabella degli ItemGroup.
 o itemNum
Numero di descrizioni di item per file HTML, questo parametro è da coordinarsi con quello del compilatore ccone.
 o itemsForCode
Tabella degli items.
 o itemsForName
Tabella degli items.
 o nodeNames
Nomi dei nodi di visualizzazione.
 o stringTbl
Cotiene la tabella delle stringhe del file.

Constructor Index

 o TableManager(int, DataInputStream, LineNumberReader, NodeNames)
Costruttore del TableManager.

Method Index

 o addChoiceBlock(ChoiceBlock)
Aggiunge un ChoiceBlock alla corrispondente tabella.
 o addConditional(Conditional)
Aggiunge un Conditional alla corrispondente tabella.
 o addDisplayInfo(DisplayInfo)
Aggiunge un DisplayInfo alla corrispondente tabella.
 o addItemGroup(ItemGroup)
Aggiunge un ItemGroup alla corrispondente tabella.
 o addString(String)
Aggiunge una stringa alla tabella delle stringhe se non viene trovata.
 o cbSize()
Restituisce la dimensione della tabella dei ChoiceBlock.
 o cdSize()
Restituisce la dimensione della tabella dei Conditional.
 o copyLines(LineNumberReader, PrintWriter)
Copia linee dall'input in sull'output out finché non ne trova una che inizia per # oppure la fine del file.
 o existsItem(String)
Dice se esiste un item avente un certo nome.
 o generateHTML(File, File)
Genera lo scheletro HTML per la navigazione.
 o generateITEMLIST(File, File)
Genera la lista degli items.
 o getChoiceBlock(int)
Ottiene il ChoiceBlock corrispondente al riferimento nella tabella.
 o getChoiceBlockForNameRef(int)
Ottiene il riferimento al ChoiceBlock avente come nome il nome puntato dal riferimento passato come parametro.
 o getChoiceBlockRef(int)
Ricava il riferimento ad un blocco di scelta a partire dal riferimento al nome del blocco.
 o getConditional(int)
Ottiene il Conditional corrispondente al riferimento nella tabella.
 o getDisplayInfo(int)
Ottiene il DisplayInfo corrispondente al riferimento nella tabella.
 o getFunctionCode(String)
A partire da un nome di funzione restituisce il codice associato.
 o getItemGroup(int)
Ottiene l'ItemGroup corrispondente al riferimento nella tabella.
 o getItemIconName(int, int, int)
Restituisce il nome dell'icona associata ad un item (estensione esclusa).
 o getItemName(int)
Restituisce il nome dell'oggetto dato il codice.
 o getItemNum()
Restituisce il numero di descrizioni di item per file.
 o getKey(String)
Restituisce il codice dell'oggetto dato il nome.
 o getString(int)
Restituisce una stringa contenuta nella tabella.
 o igSize()
Restituisce la dimensione della tabella degli ItemGroup.
 o isNodeName(String)
Dice se una stringa è il nome di un nodo di visualizzazione.
 o isReservedChoiceBlock(int)
Dice se il riferimento ad un ChoiceBlock nella tabella riferisce una posizione riservata oppure una posizione già utilizzata.
 o isReservedConditional(int)
Dice se il riferimento ad un Conditional nella tabella riferisce una posizione riservata oppure una posizione già utilizzata.
 o isReservedItemGroup(int)
Dice se il riferimento ad un ItemGroup nella tabella riferisce una posizione riservata oppure una posizione già utilizzata.
 o reserveChoiceBlock()
Riserva una posizione nella tabella dei ChoiceBlock.
 o reserveConditional()
Riserva una posizione nella tabella dei Conditional.
 o reserveItemGroup()
Riserva una posizione nella tabella degli ItemGroup.
 o save(DataOutputStream)
Salva su uno stream le tabelle del TableManager.
 o setReservedChoiceBlock(ChoiceBlock, int)
Assegna un choice block ad una posizione riservata nella tabella dei blocchi di scelta.
 o setReservedConditional(Conditional, int)
Assegna un conditional ad una posizione riservata nella tabella degli Conditional.
 o setReservedItemGroup(ItemGroup, int)
Assegna un item group ad una posizione riservata nella tabella degli ItemGroup.
 o sort(Vector)
Ordina il vettore degli item.
 o stSize()
Restituisce la dimensione della tabella delle stringhe.

Variables

 o stringTbl
 private Vector stringTbl
Cotiene la tabella delle stringhe del file.

 o choiceBlockTbl
 private Vector choiceBlockTbl
Contiene la tabella dei blocchi di scelta.

 o itemGroupTbl
 private Vector itemGroupTbl
Contiene la tabella degli ItemGroup.

 o conditionalTbl
 private Vector conditionalTbl
Contiene la tabella dei Conditional.

 o displayInfoTbl
 private Vector displayInfoTbl
Contiene la tabella dei Conditional.

 o nodeNames
 private NodeNames nodeNames
Nomi dei nodi di visualizzazione.

 o itemsForName
 private Hashtable itemsForName
Tabella degli items. Richiede quanto generato dal compilatore C1: il compilato di Item.java e l'estensione della base di dati.

 o itemsForCode
 private Vector itemsForCode
Tabella degli items. Serve per la generazione dell'HTML: bisogna poter risalire al nome e alla posizione di ogni item

 o functionCodes
 private Hashtable functionCodes
Tabella della corispondenza Funzioni <=> codici di funzione.

 o itemNum
 private int itemNum
Numero di descrizioni di item per file HTML, questo parametro è da coordinarsi con quello del compilatore ccone.

Constructors

 o TableManager
 TableManager(int itemNum,
              DataInputStream in,
              LineNumberReader lin,
              NodeNames names) throws IOException
Costruttore del TableManager. Istanzia le tabelle.

Parameters:
in - Stream da cui leggere gli item del database.
lin - Stream da cui leggere i nomi delle funzioni. I nomi delle funzioni sono nell'ordine dei codici uno per linea. Vengono ignorate tutte le linee che cominciano per '#'.
names - Nomi dei nodi di visualizzazioni. Ottenuti da cctwo.tree.parseAndGenerateDisplayTree.
Throws: IOException
Errore di lettura da uno dei due stream.

Methods

 o stSize
 int stSize()
Restituisce la dimensione della tabella delle stringhe.

Returns:
La dimensione della tabella.
 o cbSize
 int cbSize()
Restituisce la dimensione della tabella dei ChoiceBlock.

Returns:
La dimensione della tabella.
 o igSize
 int igSize()
Restituisce la dimensione della tabella degli ItemGroup.

Returns:
La dimensione della tabella.
 o cdSize
 int cdSize()
Restituisce la dimensione della tabella dei Conditional.

Returns:
La dimensione della tabella.
 o addString
 int addString(String str)
Aggiunge una stringa alla tabella delle stringhe se non viene trovata.

Parameters:
str - Stringa da aggiungere.
Returns:
Il riferimento alla stringa aggiunta.
See Also:
getString
 o getString
 String getString(int ref)
Restituisce una stringa contenuta nella tabella.

Parameters:
ref - Riferimento ottenuto con una chiamata a addString.
Returns:
Il riferimento alla stringa aggiunta.
See Also:
addString
 o reserveChoiceBlock
 int reserveChoiceBlock()
Riserva una posizione nella tabella dei ChoiceBlock.

Returns:
Il riferimento al blocco riservato.
See Also:
setReservedChoiceBlock
 o setReservedChoiceBlock
 void setReservedChoiceBlock(ChoiceBlock cb,
                             int ref)
Assegna un choice block ad una posizione riservata nella tabella dei blocchi di scelta.

Parameters:
cb - ChoiceBlock da aggiungere alla tabella.
ref - Riferimento riservato con reserveChoiceBlock.
See Also:
reserveChoiceBlock
 o isReservedChoiceBlock
 boolean isReservedChoiceBlock(int ref)
Dice se il riferimento ad un ChoiceBlock nella tabella riferisce una posizione riservata oppure una posizione già utilizzata. Una posizione riservata diviene utilizzata con l'invocazione del metodo setReservedChoiceBlock.

Parameters:
ref - Riferimento al CHoiceBlock.
Returns:
true se la posizione è riservata, false altrimenti.
See Also:
setReservedChoiceBlock
 o addChoiceBlock
 int addChoiceBlock(ChoiceBlock cb)
Aggiunge un ChoiceBlock alla corrispondente tabella.

Parameters:
cb - ChoiceBlock da aggiungere
Returns:
Il riferimento all'elemento aggiunto nella tabella.
See Also:
getChoiceBlock
 o getChoiceBlock
 ChoiceBlock getChoiceBlock(int ref)
Ottiene il ChoiceBlock corrispondente al riferimento nella tabella. Il riferimento deve essere ottenuto mediante una chiamata a addChoiceBlock oppure a reserveChoiceBlock. Nel secondo caso è necessario che sia stato anche invocato il metodo setReservedChoiceBlock.

Parameters:
ref - Riferimento alla tabella.
Returns:
Il ChoiceBlock richiesto.
See Also:
addChoiceBlock, reserveChoiceBlock, setReservedChoiceBlock
 o getChoiceBlockForNameRef
 int getChoiceBlockForNameRef(int nameRef)
Ottiene il riferimento al ChoiceBlock avente come nome il nome puntato dal riferimento passato come parametro.

Parameters:
nameRef - Riferimento al nome del blocco.
Returns:
Il riferimento al ChoiceBlock richiesto. -1 se non è stato trovato.
 o reserveItemGroup
 int reserveItemGroup()
Riserva una posizione nella tabella degli ItemGroup.

Returns:
Il riferimento al blocco riservato.
See Also:
setReservedItemGroup
 o setReservedItemGroup
 void setReservedItemGroup(ItemGroup ig,
                           int ref)
Assegna un item group ad una posizione riservata nella tabella degli ItemGroup.

Parameters:
ig - ItemGroup da aggiungere alla tabella.
ref - Riferimento riservato con reserveItemGroup.
See Also:
reserveItemGroup
 o isReservedItemGroup
 boolean isReservedItemGroup(int ref)
Dice se il riferimento ad un ItemGroup nella tabella riferisce una posizione riservata oppure una posizione già utilizzata. Una posizione riservata diviene utilizzata con l'invocazione del metodo setReservedItemGroup.

Returns:
true se la posizione è riservata, false altrimenti.
See Also:
setReservedItemGroup
 o addItemGroup
 int addItemGroup(ItemGroup ig)
Aggiunge un ItemGroup alla corrispondente tabella.

Parameters:
ig - ItemGroup da aggiungere
Returns:
Il riferimento all'elemento aggiunto nella tabella.
See Also:
getItemGroup
 o getItemGroup
 ItemGroup getItemGroup(int ref)
Ottiene l'ItemGroup corrispondente al riferimento nella tabella. Il riferimento deve essere ottenuto mediante una chiamata a addItemGroup oppure a reserveItemGroup. Nel secondo caso è necessario che sia stato anche invocato il metodo setReservedItemGroup.

Parameters:
ref - Riferimento alla tabella.
Returns:
L'ItemGroup richiesto.
See Also:
addItemGroup, reserveItemGroup, setReservedItemGroup
 o reserveConditional
 int reserveConditional()
Riserva una posizione nella tabella dei Conditional.

Returns:
Il riferimento al blocco riservato.
See Also:
setReservedConditional
 o setReservedConditional
 void setReservedConditional(Conditional cd,
                             int ref)
Assegna un conditional ad una posizione riservata nella tabella degli Conditional.

Parameters:
cd - Conditional da aggiungere alla tabella.
ref - Riferimento riservato con reserveConditional.
See Also:
reserveConditional
 o isReservedConditional
 boolean isReservedConditional(int ref)
Dice se il riferimento ad un Conditional nella tabella riferisce una posizione riservata oppure una posizione già utilizzata. Una posizione riservata diviene utilizzata con l'invocazione del metodo setReservedConditional.

Returns:
true se la posizione è riservata, false altrimenti.
See Also:
setReservedConditional
 o addConditional
 int addConditional(Conditional cd)
Aggiunge un Conditional alla corrispondente tabella.

Parameters:
cd - Conditional da aggiungere
Returns:
Il riferimento all'elemento aggiunto nella tabella.
See Also:
getConditional
 o getConditional
 Conditional getConditional(int ref)
Ottiene il Conditional corrispondente al riferimento nella tabella. Il riferimento deve essere ottenuto mediante una chiamata a addConditional oppure a reserveConditional. Nel secondo caso è necessario che sia stato anche invocato il metodo setReservedConditional.

Parameters:
ref - Riferimento alla tabella.
Returns:
Il Conditional richiesto.
See Also:
addConditional, reserveConditional, setReservedConditional
 o addDisplayInfo
 int addDisplayInfo(DisplayInfo di)
Aggiunge un DisplayInfo alla corrispondente tabella. Se il display info è già presente non viene aggiunto alla tabella ma viene restituito il riferimento a quello già presente.

Parameters:
di - DisplayInfo da aggiungere
Returns:
Il riferimento all'elemento nella tabella.
See Also:
getDisplayInfo
 o getDisplayInfo
 DisplayInfo getDisplayInfo(int ref)
Ottiene il DisplayInfo corrispondente al riferimento nella tabella. Il riferimento deve essere ottenuto mediante una chiamata a addDisplayInfo.

Parameters:
ref - Riferimento alla tabella.
Returns:
Il DisplayInfo richiesto.
See Also:
addDisplayInfo
 o save
 void save(DataOutputStream out) throws IOException
Salva su uno stream le tabelle del TableManager. Assume che tutti gli elementi delle tabelle siano stati definiti. Il formato con cui il file viene salvato è descritto in Contraint.

Parameters:
out - Stream su cui salvare le tabelle
Throws: IOException
Errore di scrittura sullo stream
See Also:
Constraint
 o existsItem
 boolean existsItem(String name)
Dice se esiste un item avente un certo nome.

Parameters:
name - Nome dell'item cercato
Returns:
true se l'item fa parte del database degli item.
 o getKey
 int getKey(String name)
Restituisce il codice dell'oggetto dato il nome.

Parameters:
name - Nome dell'item da cercare
Returns:
Il codice dell'oggetto se esistente, altrimenti -1.
 o getItemName
 String getItemName(int code)
Restituisce il nome dell'oggetto dato il codice. Viene utilizzato per la generazione dell'HTML. Costa O(n) dove n è il numero degli items.

Parameters:
code - Codice dell'item da trovare
Returns:
Il nome dell'item se trovato, altrimenti null.
 o getFunctionCode
 int getFunctionCode(String functionName)
A partire da un nome di funzione restituisce il codice associato.

Parameters:
functionName - Nome della funzione di cui si vuole conoscere il codice.
Returns:
Il codice della funzione. Se il nome è sconosciuto viene restituito -1.
 o isNodeName
 boolean isNodeName(String name)
Dice se una stringa è il nome di un nodo di visualizzazione.

Returns:
true se il parametro name è il nome di un nodo di visualizzazione, false altrimenti.
 o copyLines
 private void copyLines(LineNumberReader in,
                        PrintWriter out) throws IOException
Copia linee dall'input in sull'output out finché non ne trova una che inizia per # oppure la fine del file. Serve per la generazione dell'html

 o generateHTML
 void generateHTML(File templ,
                   File dir) throws IOException
Genera lo scheletro HTML per la navigazione.

Parameters:
templ - Reader da cui leggere lo scheletro del file HTML.
dir - Directory in cui salvare i file HTML.
Throws: IOException
Errore di scrittura dei file HTML.
 o sort
 private Vector sort(Vector v)
Ordina il vettore degli item. Da reimplementare, attualmente ho implementato il bubble sort per rapidità

Parameters:
v - Vettore da ordinare.
Returns:
Il vettore ordinato.
 o generateITEMLIST
 void generateITEMLIST(File templ,
                       File dir) throws IOException
Genera la lista degli items.

Parameters:
templ - Reader da cui leggere lo scheletro del file HTML.
dir - Directory in cui salvare il file all.html.
Throws: IOException
Errore di scrittura del file HTML.
 o getItemNum
 int getItemNum()
Restituisce il numero di descrizioni di item per file.

Returns:
Il numero di item per file.
 o getItemIconName
 String getItemIconName(int choice,
                        int code,
                        int itemRef)
Restituisce il nome dell'icona associata ad un item (estensione esclusa).

Parameters:
choice - Codice della scelta
code - Codice del constraint
itemRef - Riferimento all'item di cui si vuoole sapere il nome
Returns:
Il nome dell'icona.
 o getChoiceBlockRef
 int getChoiceBlockRef(int cbNameRef)
Ricava il riferimento ad un blocco di scelta a partire dal riferimento al nome del blocco.

Parameters:
cbNameRef - Riferimento al nome del blocco di cui si vuole conoscere il riferimento.
Returns:
Il riferimento al blocco di scelta (oppure -1 se non viene trovato).

All Packages  Class Hierarchy  This Package  Previous  Next  Index