Salve, mi chiamo Deborah.
Sono alle prese con un programma di programmazione oggetti che gestisce la prenotazione di proposte di viaggio. Nella classe principale ho il metodo addDestination(String destinationName, String...operatorName) che lancia un eccezione se la destinazione è già presente nell'HashMap dell'elenco delle destinazioni altrimenti definisce una destinazione e le associa gli operatori che la trattano. Inoltre questo metodo definisce gli operatori dati i loro nomi, se non sono già stati definiti in precedenza.
Sempre nella classe principale ho anche il metodo getDestinations(String operatorName) che restituisce la lista ordinata dei nomi delle destinazioni trattate dall'operatore passato.
Nella classe Operator ho creato i metodi get e set per la LinkedList <String> delle destinazioni dell'operatore.
codice:
public void setDestinazione(String q){
elencoDestinazioni.add(q);
}
public LinkedList<String> getDestinazioni(){
return elencoDestinazioni;
}
Nella classe principale invece ho i seguenti due metodi:
codice:
public void addDestination(String destinationName, String... operatorNames) throws TravelException {
Destination d = elencoDestinazioni.get(destinationName);
if(d != null) throw new TravelException();
Destination d2 = new Destination(destinationName);
elencoDestinazioni.put(destinationName, d2);
for(String ss : operatorNames){
Operator o = new Operator(ss);
elencoOperatori.put(ss, o);
o.setDestinazione(destinationName);
d2.setOperatore(ss);
}
}
public List<String> getDestinations(String operatorName) {
return elencoOperatori.get(operatorName).getDestinazioni();
}
Nel metodo addDestination ho considerato il fatto che per le HashMap se inserisco un oggetto con indice già presente lo sovrascrive, quindi dovrebbe andare bene nel mio caso. Il problema sta nel fatto che il metodo getDestinations mi restituisce sempre e solo l'ultimo oggetto della LinkedList della classe Operator e non tutta la lista..
Ho provato anche ad utilizzare il seguente metodo ma in questo caso non restituisce proprio niente.
codice:
public void addDestination(String destinationName, String... operatorNames) throws TravelException {
Destination d = elencoDestinazioni.get(destinationName);
if(d != null) throw new TravelException();
Destination d2 = new Destination(destinationName);
elencoDestinazioni.put(destinationName, d2);
for(String s : operatorNames){
Operator o = elencoOperatori.get(s);
if(o == null){
elencoOperatori.put(s, new Operator(s));
}
Operator o2 = new Operator(s);
o2.setDestinazione(destinationName);
d2.setOperatore(s);
}
}
Confido nel vostro aiuto perché è da ieri che sono qui ferma e in mio cervello inizia a chiedere pietà
Grazie