// File Regione.java
import java.util.*;

public class Regione {

  //rappr. attributi della classe uml
  private final String nome;
  
  //rappr. associazione (1..10) giunta
  private InsiemeLista giunta;
  
  //costruttore
  public Regione(String x) {
    nome = x;
    giunta = new InsiemeLista(TipoLinkGiunta.class);
  }
  
  //funzioni d'accesso agli attributi
  public String getNome() { return nome; }
  
  //funzioni d'accesso alle associazioni
  public int quantiLinkGiunta() { return giunta.size(); }
  public Set getLinkGiunta() {
    if (quantiLinkGiunta() < 1 || quantiLinkGiunta() > 10)
      throw new RuntimeException("molteplicita di Regione in Giunta violata");
    return (InsiemeLista)giunta.clone(); }
  
  //funzioni ausiliarie necessare per il corretto inserimento e
  //cancellazione di tuple dalla associazione Giunta
  public void inserisciLinkGiunta(AssociazioneGiunta a) { 
    if (a != null  &&
        a.getLink().getRegione() == this && a.getLink().getPersona != null)
      giunta.add(a.getLink());
  }
  public void eliminaLinkGiunta(AssociazioneGiunta a) {
    if (a != null  && 
        a.getLink().getRegione() == this)
      giunta.remove(a.getLink());
  }
}

