Class MaterialeService

java.lang.Object
it.uniupo.simnova.service.scenario.components.MaterialeService

@Service public class MaterialeService extends Object
Servizio per la gestione dei materiali necessari all'interno degli scenari. Fornisce metodi per recuperare, salvare, associare ed eliminare i materiali nel database.
Version:
1.1
Author:
Alessandro Zappatore
  • Method Details

    • getAllMaterials

      public List<Materiale> getAllMaterials()
      Recupera una lista di tutti i Materiali disponibili nel database.
      Returns:
      Una List di oggetti Materiale contenente tutti i materiali. Restituisce una lista vuota in caso di errore o se non sono presenti materiali.
    • getMaterialiByScenarioId

      public List<Materiale> getMaterialiByScenarioId(int scenarioId)
      Recupera una lista di Materiali specifici associati a un dato scenario. La query esegue un JOIN tra le tabelle Materiale e MaterialeScenario per filtrare i materiali in base all'id_scenario.
      Parameters:
      scenarioId - L'ID dello scenario per il quale si desiderano recuperare i materiali.
      Returns:
      Una List di oggetti Materiale associati allo scenario. Restituisce una lista vuota in caso di errore o se non ci sono materiali associati.
    • saveMateriale

      public Materiale saveMateriale(Materiale materiale)
      Salva un nuovo oggetto Materiale nel database. Se l'operazione ha successo, l'ID generato automaticamente per il nuovo materiale viene popolato nell'oggetto restituito.
      Parameters:
      materiale - L'oggetto Materiale da salvare. Il campo id_materiale non è richiesto in input.
      Returns:
      L'oggetto Materiale salvato con il suo id_materiale generato; null se il salvataggio fallisce.
    • associaMaterialiToScenario

      public boolean associaMaterialiToScenario(int scenarioId, List<Integer> idsMateriali)
      Associa una lista di materiali (tramite i loro ID) a uno scenario specifico. Questa operazione è transazionale: prima vengono rimosse tutte le associazioni esistenti per lo scenario, poi vengono inserite le nuove associazioni.
      Parameters:
      scenarioId - L'ID dello scenario a cui associare i materiali.
      idsMateriali - Una List di Integer contenente gli ID dei materiali da associare. Se la lista è vuota, tutte le associazioni esistenti verranno rimosse e nessuna nuova verrà aggiunta.
      Returns:
      true se l'associazione è avvenuta con successo; false altrimenti.
    • deleteMateriale

      public boolean deleteMateriale(Integer idMateriale)
      Elimina un Materiale dal database. Questa operazione è transazionale: prima vengono rimosse tutte le associazioni del materiale con gli scenari, poi il materiale stesso viene eliminato dalla tabella Materiale.
      Parameters:
      idMateriale - L'ID del materiale da eliminare.
      Returns:
      true se l'eliminazione è avvenuta con successo; false altrimenti.
    • toStringAllMaterialsByScenarioId

      public String toStringAllMaterialsByScenarioId(int scenarioId)
      Genera una rappresentazione testuale di tutti i materiali associati a uno scenario specifico. La stringa risultante elenca ogni materiale con il suo nome e descrizione.
      Parameters:
      scenarioId - L'ID dello scenario di cui si vogliono rappresentare i materiali.
      Returns:
      Una String che contiene il nome e la descrizione di ogni materiale associato, separati da un newline. Se non ci sono materiali, restituisce una stringa vuota.
    • saveAImaterials

      public boolean saveAImaterials(Integer scenarioId, List<MatSet> materiali)
      Salva una lista di materiali (rappresentati da oggetti MatSet) per un dato scenario. Questo metodo è stato aggiornato per accettare una lista di oggetti, come restituito dall'API, eliminando la necessità di parsare manualmente le stringhe.
      Parameters:
      scenarioId - L'ID dello scenario a cui associare i materiali.
      materiali - La lista di oggetti MatSet, dove ognuno rappresenta un materiale.
      Returns:
      true se l'operazione ha successo, false altrimenti.