Class UtenteEntity

java.lang.Object
com.modulink.Model.Utente.UtenteEntity

@Entity public class UtenteEntity extends Object
Rappresenta l'entità Utente nel sistema ModuLink.

Questa classe mappa la tabella Utente all'interno dello schema modulink. Utilizza una architettura a Chiave Primaria Composta definita dalla classe UtenteID, costituita dalla coppia (ID Azienda, ID Utente).

A differenza di un approccio standard con ID autoincrementale globale, qui l'identificativo dell'utente è sequenziale e univoco solo all'interno della specifica azienda di appartenenza.

Version:
1.3.3
Author:
Modulink Team
See Also:
  • Field Details

    • id_utente

      private int id_utente
      Identificativo numerico dell'utente.

      Questo campo è parte della chiave primaria composta. Nota Importante: Non è annotato con @GeneratedValue. Il valore deve essere calcolato e assegnato manualmente dall'applicazione (Service Layer) prima del salvataggio (es. MAX(ID) + 1 per l'azienda corrente).

    • azienda

      private AziendaEntity azienda
      L'azienda a cui appartiene l'utente.

      Rappresenta una relazione Molti-a-Uno con AziendaEntity. Oltre a essere una Foreign Key, questo campo costituisce la seconda parte della chiave primaria composta, definendo il contesto di unicità dell'ID Utente.

    • associazioni

      private Set<AssociazioneEntity> associazioni
      Relazione One-To-Many verso l'entità di associazione intermedio.

      Questa struttura sostituisce la classica annotazione @ManyToMany per risolvere i conflitti generati dalla condivisione della colonna ID_Azienda nelle chiavi composte di Utente e Ruolo.

    • email

      private String email
      Indirizzo email dell'utente. Deve essere univoco all'interno dell'intero sistema (vincolo globale).
    • hash_password

      private String hash_password
      Hash della password dell'utente.

      La password non viene mai salvata in chiaro, ma hashata tramite BCrypt.

    • nome

      private String nome
      Nome di battesimo dell'utente.
    • cognome

      private String cognome
      Cognome dell'utente.
    • telefono

      private String telefono
      Numero di telefono dell'utente.
    • path_immagine_profilo

      private String path_immagine_profilo
      Percorso (path) o URL dell'immagine del profilo dell'utente (opzionale).
  • Constructor Details

    • UtenteEntity

      public UtenteEntity()
      Costruttore vuoto predefinito.

      Richiesto dalle specifiche JPA per la creazione dell'entità tramite reflection.

    • UtenteEntity

      public UtenteEntity(AziendaEntity azienda, String email, String hash_password, String nome, String cognome, String telefono, String path_immagine_profilo)
      Costruttore completo per inizializzare un oggetto UtenteEntity.
      Parameters:
      azienda - L'entità Azienda di appartenenza.
      email - L'indirizzo email dell'utente.
      hash_password - La password cifrata dell'utente.
      nome - Il nome dell'utente.
      cognome - Il cognome dell'utente.
      telefono - Il numero di telefono.
      path_immagine_profilo - Il percorso dell'immagine profilo (può essere null).
  • Method Details

    • getId_utente

      public int getId_utente()
      Restituisce l'ID locale dell'utente.
      Returns:
      L'intero rappresentante l'ID.
    • setId_utente

      public void setId_utente(int id_utente)
      Imposta l'ID locale dell'utente.
      Parameters:
      id_utente - Il nuovo ID da assegnare (deve essere univoco per azienda).
    • getAzienda

      public AziendaEntity getAzienda()
      Restituisce l'azienda di appartenenza.
      Returns:
      L'oggetto AziendaEntity.
    • setAzienda

      public void setAzienda(AziendaEntity azienda)
      Imposta l'azienda di appartenenza.
      Parameters:
      azienda - La nuova azienda.
    • getEmail

      public String getEmail()
      Restituisce l'email dell'utente.
      Returns:
      L'email.
    • setEmail

      public void setEmail(String email)
      Imposta l'email dell'utente.
      Parameters:
      email - La nuova email.
    • getHash_password

      public String getHash_password()
      Restituisce l'hash della password.
      Returns:
      La stringa hashata.
    • setHash_password

      public void setHash_password(String hash_password)
      Imposta l'hash della password.
      Parameters:
      hash_password - Il nuovo hash.
    • getNome

      public String getNome()
      Restituisce il nome dell'utente.
      Returns:
      Il nome di battesimo.
    • setNome

      public void setNome(String nome)
      Imposta il nome dell'utente.
      Parameters:
      nome - Il nuovo nome.
    • getCognome

      public String getCognome()
      Restituisce il cognome dell'utente.
      Returns:
      Il cognome.
    • setCognome

      public void setCognome(String cognome)
      Imposta il cognome dell'utente.
      Parameters:
      cognome - Il nuovo cognome.
    • getTelefono

      public String getTelefono()
      Restituisce il numero di telefono.
      Returns:
      La stringa del telefono.
    • setTelefono

      public void setTelefono(String telefono)
      Imposta il numero di telefono.
      Parameters:
      telefono - Il nuovo numero di telefono.
    • getPath_immagine_profilo

      public String getPath_immagine_profilo()
      Restituisce il percorso dell'immagine profilo.
      Returns:
      Il path o l'URL dell'immagine.
    • setPath_immagine_profilo

      public void setPath_immagine_profilo(String path_immagine_profilo)
      Imposta il percorso dell'immagine profilo.
      Parameters:
      path_immagine_profilo - Il nuovo percorso immagine.
    • getAssociazioni

      public Set<AssociazioneEntity> getAssociazioni()
      Restituisce il set delle entità di associazione.

      Di solito non viene usato direttamente dalla logica di business, ma serve a Hibernate per gestire la persistenza.

      Returns:
      Il Set di AssociazioneEntity.
    • setAssociazioni

      public void setAssociazioni(Set<AssociazioneEntity> associazioni)
      Imposta il set delle associazioni.
      Parameters:
      associazioni - Il nuovo set di associazioni.
    • getRuoli

      public Set<RuoloEntity> getRuoli()
      Metodo di utilità per recuperare direttamente i Ruoli astrattando la tabella intermedia.

      Itera sulle associazioni e restituisce un Set pulito di RuoloEntity.

      Returns:
      Un Set contenente i ruoli dell'utente.
    • addRuolo

      public void addRuolo(RuoloEntity ruolo)
      Metodo di utilità per aggiungere un ruolo all'utente.

      Crea automaticamente una nuova istanza di AssociazioneEntity che collega questo utente al ruolo specificato e la aggiunge alla collezione.

      Parameters:
      ruolo - Il ruolo da assegnare.
    • rimuoviRuolo

      public void rimuoviRuolo(RuoloEntity ruolo)
      Rimuove un ruolo specifico dall'utente.

      Cerca l'associazione corrispondente al ruolo dato e, se trovata, la rimuove sia dalla collezione locale che dalle associazioni del ruolo, garantendo la coerenza bidirezionale.

      Parameters:
      ruolo - Il ruolo da rimuovere.
    • defaultRoles

      public void defaultRoles(RuoloEntity ruolo)
      Resetta i ruoli dell'utente assegnandone uno di default.

      Rimuove tutte le associazioni correnti e ne aggiunge una nuova con il ruolo specificato. Utile in fase di modifica massiva o ripristino permessi.

      Parameters:
      ruolo - Il nuovo ruolo unico da assegnare.
    • equals

      public boolean equals(Object o)
      Verifica l'uguaglianza tra due utenti.

      Due utenti sono considerati uguali se hanno lo stesso ID utente e appartengono alla stessa azienda (ovvero hanno la stessa chiave primaria composta).

      Overrides:
      equals in class Object
      Parameters:
      o - L'oggetto da confrontare.
      Returns:
      true se gli oggetti sono uguali, false altrimenti.