SegnalazioniServiceImpl.java
package model.services;
import model.DAO.DAO;
import model.DAO.SegnalazioneDAO;
import model.beans.Segnalazione;
import model.beans.StatoSegnalazione;
import java.util.List;
public class SegnalazioniServiceImpl implements SegnalazioniService {
/**
* Wrapper d'istanza di SegnalazioneDAO.
*/
private final DAO<Segnalazione> dao;
/**
* Costruttore della classe SegnalazioniService.
* @param segnalazioneDAO istanza di interfaccia DAO
*/
public SegnalazioniServiceImpl(final DAO<Segnalazione> segnalazioneDAO) {
this.dao = segnalazioneDAO;
}
/**
* Costruttore della classe SegnalazioniService.
*/
public SegnalazioniServiceImpl() {
this.dao = new SegnalazioneDAO();
}
/**
* @return lista delle segnalazioni effettuate dall'utente
*/
@Override
public List<Segnalazione> trovaSegnalazioni() {
return dao.getAll();
}
/**
* @param idSegnalazione id della segnalazione interessata
* @return istanza di segnalazione
*/
@Override
public Segnalazione trovaSegnalazione(final int idSegnalazione) {
if (idSegnalazione <= 0) {
throw new IllegalArgumentException("Argument must be > 0");
} else {
return dao.getById(idSegnalazione);
}
}
/**
* @param idSegnalazione intero che rappresenta l'id della segnalazione
* @param stato Il nuovo stato della segnalazione
* @return true se l'operazione è andata a buon fine, false altrimenti
*/
@Override
public boolean risolviSegnalazione(final int idSegnalazione,
final StatoSegnalazione stato) {
if (idSegnalazione <= 0) {
throw new IllegalArgumentException("Argument id must be > 0");
} else {
Segnalazione s = dao.getById(idSegnalazione);
if (s == null) {
throw new RuntimeException("Segnalazione non trovata con id: "
+ idSegnalazione);
} else {
s.setStatoSegnalazione(stato);
return dao.update(s);
}
}
}
/**
* @param segnalazione istanza di Segnalazione che esprime una
* segnalazione fatta da un utente verso una campagna
* @return true se l'operazione è andata a buon fine, false altrimenti
*/
@Override
public boolean segnalaCampagna(final Segnalazione segnalazione) {
if (segnalazione == null || segnalazione.getCampagna() == null
|| segnalazione.getSegnalatore() == null
|| segnalazione.getSegnalato() == null
|| segnalazione.getDescrizione() == null) {
throw new IllegalArgumentException("Arguments must be not null");
} else {
return dao.save(segnalazione);
}
}
}