public void update(T dao, Object model) {
   try {
     dao.update(model);
   } catch (DAOException ex) {
     throw new CoreException("Erro de de acesso ao banco de dados: " + ex.getMessage());
   }
 }
 public void remove(T dao, Long id) {
   try {
     dao.remove(id);
   } catch (DAOException ex) {
     throw new CoreException("Erro de de acesso ao banco de dados: " + ex.getMessage());
   }
 }
 public List<?> findAll(T dao) {
   try {
     List<?> planos = dao.findAll();
     return planos;
   } catch (DAOException ex) {
     throw new CoreException("Erro de de acesso ao banco de dados: " + ex.getMessage());
   }
 }
 public Object find(T dao, Long id) {
   Object model;
   try {
     model = dao.find(id);
   } catch (DAOException ex) {
     throw new CoreException("Erro de de acesso ao banco de dados: " + ex.getMessage());
   }
   return model;
 }
 public Long create(T dao, Object model) {
   Long id;
   try {
     id = (Long) dao.create(model);
   } catch (DAOException ex) {
     throw new CoreException("Erro de de acesso ao banco de dados: " + ex.getMessage());
   }
   return id;
 }