// File AssociazioneGiunta.java

public class AssociazioneGiunta {
  
  //Campi l'utilizzo (o nonutilizzo) di oggetti della classe
  
  private TipoLinkGiunta link;
  
  //Nota costruttore privato!
  //solo le funzioni statiche di questa classe possono creare oggetti
  //AssociazioneGiunta
  private AssociazioneGiunta(TipoLinkGiunta x) { link = x; }
  
  // Nota questa funzione ha bisogno di un oggetto di invocazione
  // quindi puo' essere solo attreverso inserisci() ed elimina()
  // delle classi partecipanti
  public TipoLinkGiunta getLink() { return link; }

  // Le funzioni inserisci() ed elimina() sono le uniche funzionalita' 
  // effettivamente utilizzabili dai clienti
  public static void inserisci(TipoLinkGiunta y) {
    if (y != null && 
        y.getRegione() != null && y.getPersona() != null) {
      AssociazioneGiunta k = new AssociazioneGiunta(y);
      y.getRegione().inserisciLinkGiunta(k);
      y.getPersona().inserisciLinkGiunta(k);
    }
  }
    
  public static void elimina(TipoLinkGiunta y) {
    if (y != null &&
        y.getRegione() != null && y.getPersona() != null) {
      AssociazioneGiunta k = new AssociazioneGiunta(y);
      y.getRegione().eliminaLinkGiunta(k);
      y.getPersona().eliminaLinkGiunta(k);
    }
  }
}
