/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.m2m.bl;
import com.m2m.dao.PreferenciasDAO;
import com.m2m.modelo.Conocimiento;
import com.m2m.modelo.Preferencia;
import com.m2m.modelo.Usuario;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*
* @author Clara
*/
public class PreferenciasBL {
private static final Log log = LogFactory.getLog(PreferenciasBL.class);
private PreferenciasDAO preferenciasDAO = new PreferenciasDAO();
public Integer addPreferencia(Usuario usuario, Integer idConocimiento,
boolean buscaOfrece, Integer nivel)throws Exception{
//compruebo que el usuario no contiene la preferencia en cuestión
if(!preferenciasDAO.hasPreferencia(
usuario.getIdUsuario(), buscaOfrece, idConocimiento)){
Preferencia pref = new Preferencia();
pref.setBuscaOfrece(buscaOfrece);
pref.setUsuario(usuario);
pref.setConocimiento(new Conocimiento(idConocimiento));
pref.setNivel(nivel);
return preferenciasDAO.addPreferencia(pref);
}else{
return -1;
}
}
public void quitarPreferencia(Integer idPreferencia) throws Exception{
Preferencia preferencia = new Preferencia(idPreferencia);
preferenciasDAO.quitarPreferencia(preferencia);
}
public boolean quitarPreferenciaSafe(Integer idPreferencia, Integer idUsuarioRequesting) throws Exception{
Preferencia preferencia = preferenciasDAO.getPreferenciaById(idPreferencia.intValue());
if( preferencia.getUsuario().getIdUsuario().intValue() == idUsuarioRequesting.intValue() ){
preferenciasDAO.quitarPreferencia(preferencia);
return true;
}else{
return false;
}
}
public List<Preferencia> getPreferenciasByUser (Integer idUsuario){
return preferenciasDAO.encuentraPreferencias(idUsuario);
}
public Preferencia getPreferenciaByUserAndConocimientoBusca(Integer idUsuario, Integer idcon){
List pfs = preferenciasDAO.encuentraPreferenciaByUserAndConocimiento(idUsuario, Boolean.TRUE, idcon);
if(pfs.size()>0){
return (Preferencia) pfs.get(0);
}else{
return null;
}
}
public Preferencia getPreferenciaByUserAndConocimientoOfrece(Integer idUsuario, Integer idcon){
List pfs = preferenciasDAO.encuentraPreferenciaByUserAndConocimiento(idUsuario, Boolean.FALSE, idcon);
if(pfs.size()>0){
return (Preferencia) pfs.get(0);
}else{
return null;
}
}
public List<Preferencia> getPreferenciasByUserBusca (Integer idUsuario){
return preferenciasDAO.encuentraPreferencias(idUsuario, Boolean.TRUE);
}
public List<Preferencia> getPreferenciasByUserOfrece (Integer idUsuario){
return preferenciasDAO.encuentraPreferencias(idUsuario, Boolean.FALSE);
}
}