CategoriaServiceImpl.java

package model.services;

import model.DAO.CategoriaDAO;
import model.DAO.DAO;
import model.beans.Categoria;

import java.util.List;

public final class CategoriaServiceImpl implements CategoriaService {
   /**
    * Vincolo sulla lunghezza del campo nomeCategoria
    * della tabella categoria.
    */
   private static final int MAX_NAME_LEN = 100;
   /**
    * Wrapper di CategoriaDAO.
    */
   private final DAO<Categoria> dao;

   /**
    * Costruttore di CampagnaService.
    * @param categoriaDAO istanza di CategoriaDAO
    */
   public CategoriaServiceImpl(final DAO<Categoria> categoriaDAO) {
      this.dao = categoriaDAO;
   }

   /**
    * Costruttore di CampagnaService.
    */
   public CategoriaServiceImpl() {
      this.dao = new CategoriaDAO();
   }

   @Override
   public boolean inserisciCategoria(final Categoria categoria) {
      if (categoria == null || categoria.getNome() == null
              || categoria.getNome().length() >= MAX_NAME_LEN) {
         throw new IllegalArgumentException("Invalid argument");
      } else {
         return dao.save(categoria);
      }
   }

   @Override
   public boolean modificaCategoria(final Categoria categoria) {
      if (categoria == null || categoria.getNome() == null
              || categoria.getNome().length() >= MAX_NAME_LEN) {
          throw new IllegalArgumentException("Invalid argument");
      } else {
          return dao.update(categoria);
      }
   }

   @Override
   public List<Categoria> visualizzaCategorie() {
      return dao.getAll();
   }

   @Override
   public Categoria visualizzaCategoria(final Categoria categoria) {
      if (categoria == null || categoria.getIdCategoria() <= 0) {
          throw new IllegalArgumentException("Invalid argument");
      } else {
          return dao.getById(categoria.getIdCategoria());
      }
   }
}