Questa è la classe principale:
codice:
public class TravelHandling {
 private int numClienti;
 private HashMap<String, Customer> elencoClienti;
 private HashMap<String, Destination> elencoDestinazioni;
 private HashMap<String, Operator> elencoOperatori;
 

 public TravelHandling(){
  elencoClienti = new HashMap<>();
  elencoDestinazioni = new HashMap<>();
  elencoOperatori = new HashMap<>();
  elencoProposte = new HashMap<>();
  elencoQuotes = new LinkedList<>();
  numClienti = 0;
 }


 public void addCustomers(String... userNames) {
  for(String s : userNames){
   Customer c = new Customer(s);
   elencoClienti.put(s, c);
   numClienti = numClienti +1;
  }
 }



 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();
}
}
Questa la classe Operator:

codice:
public class Operator {
 private String nomeOperatore;
 private LinkedList<String> elencoDestinazioni;
 private String proposta;
 private TravelHandling appartenenza;
 public Operator(String n){
  nomeOperatore = n;
  elencoDestinazioni = new LinkedList<>();
 }
 public void setDestinazione(String q){
  elencoDestinazioni.add(q);
 }
 public LinkedList<String> getDestinazioni(){
  return elencoDestinazioni;
 }
 public String getNome(){
  return nomeOperatore;
 }
}