Stai partecipando a un progetto in cui si deve realizzare una sistema in Java che processa file che contengono delle espressioni di tipo stringa che dipendono da valori di variabili. Le espressioni sono del seguente tipo:
Gli altri due programmatori coinvolti nel progetto si occupano di realizzare le classi che permettono la lettura del file e le classi che effettuano la valutazione delle espressioni. Ti viene però richiesto di scrivere delle classi che permettono agli altri programmatori di memorizzare le espressioni in forma di oggetti.
In particolare, l'accordo è che devi scrivere le seguenti classi:
Le classi devono essere incapsulate; specificare come commenti nel codice dove sono ammesse o no componenti nulle. Le classi devono avere:
Una volta realizzate queste classi, il programmatore che doveva realizzare la parte del sistema che valuta una espressione dati i valori delle variabili si licenzia, e ti viene assegnato il compito di scrivere una classe che avrebbe dovuto fare lui
Questa classe contiene solo un metodo public static String valuta(Espressione e, Map<Variabile, String> m) oppure public static String valuta(Espressione e, Map m) che valuta una espressione quando i valori delle variabili sono memorizzati in forma di mappa (la mappa contiene una riga per ogni variabile: la chiave è un oggetto Variabile e il valore è il suo valore.