package com.vst.dao.hibernate;
import java.util.ArrayList;
import java.util.List;
import com.vst.dao.ParameterDao;
import com.vst.dao.util.RefferenceUtil;
import com.vst.model.DefectParameterZone;
import com.vst.model.Parameter;
public class ParameterDaoHibernate extends BaseDaoHibernate<Parameter> implements ParameterDao {
public boolean isUniqueMeasure(Parameter parameter){
int count = super.getSession().createQuery("from Parameter parameter where parameter.parameterName=? AND parameter.measure.measureId=? AND parameter.parameterId<>?").setString(0, parameter.getParameterName()).setString(1, String.valueOf(parameter.getMeasure().getMeasureId())).setString(2, String.valueOf(parameter.getParameterId())).list().size();
return count == 0;
}
public boolean isParameterUsed(String parameterId) {
Long count1 = (Long) super.getSession().createQuery("select count(*) from DefectParameter defPar where defPar.parameter.parameterId=?").setString(0, parameterId).uniqueResult();
Long count4 = (Long) super.getSession().createQuery("select count(*) from CategoryParameter categoryParameter where categoryParameter.parameter.parameterId=?").setString(0, parameterId).uniqueResult();
Integer count3 = super.getSession().createQuery("from DefectVarity defVarity inner join fetch defVarity.parameters as parameters where parameters.parameterId=?").setString(0, parameterId).list().size();
if (count1 == null) {
count1 = new Long(0);
}
if (count3 == null) {
count3 = new Integer(0);
}
if (count4 == null) {
count4 = new Long(0);
}
if(count1.intValue()+count3.intValue()+count4.intValue()>0){
return true;
}
else{
return false;
}
}
public List getConnectedRefferences(final String parameterId){
List defectParameterList = super.getSession().createQuery("from DefectParameter defPar where defPar.parameter.parameterId=?").setString(0, parameterId).list();
List categoryParameterList = super.getSession().createQuery("from CategoryParameter categoryParameter where categoryParameter.parameter.parameterId=?").setString(0, parameterId).list();
List defectVarityList = super.getSession().createQuery("from DefectVarity defVarity inner join fetch defVarity.parameters as parameters where parameters.parameterId=?").setString(0, parameterId).list();
List refferenceList=new ArrayList();
RefferenceUtil.makeURL(refferenceList,"defectParameter",defectParameterList);
// RefferenceUtil.makeURL(refferenceList,"categoryParameter",categoryParameterList);
RefferenceUtil.makeURL(refferenceList,"defectVarity",defectVarityList);
return refferenceList;
}
public List getParametersByVarity(String varityId) {
// DefectVarity defectVarity = (DefectVarity) super.getObject(DefectVarity.class, new Integer(varityId));
List lst = new ArrayList();
lst = super.getSession().createQuery("from Parameter where parameterId in (select parameters.parameterId from DefectVarity defectVarity inner join defectVarity.parameters as parameters where defectVarity.varityId=?)").setString(0,varityId).list();
System.out.println("VARITY ID"+varityId+lst);
return lst;
}
/**
* @see com.vst.dao.ParameterDao#getParameters(com.vst.model.Parameter)
*/
public List getParameters(final Parameter parameter) {
return getHibernateTemplate().find("from Parameter");
/* Remove the line above and uncomment this code block if you want
to use Hibernate's Query by Example API.
if (parameter == null) {
return getHibernateTemplate().find("from Parameter");
} else {
// filter on properties set in the parameter
HibernateCallback callback = new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Example ex = Example.create(parameter).ignoreCase().enableLike(MatchMode.ANYWHERE);
return session.createCriteria(Parameter.class).add(ex).list();
}
};
return (List) getHibernateTemplate().execute(callback);
}*/
}
/**
* @see com.vst.dao.ParameterDao#getParameter(Integer parameterId)
*/
public Parameter getParameter(final Integer parameterId) {
Parameter parameter = (Parameter) getObject(parameterId);
return parameter;
}
/**
* @see com.vst.dao.ParameterDao#saveParameter(Parameter parameter)
*/
public void saveParameter(final Parameter parameter) {
saveObject(parameter);
}
/**
* @see com.vst.dao.ParameterDao#removeParameter(Integer parameterId)
*/
public void removeParameter(final Integer parameterId) {
removeObject(parameterId);
}
public void insertDefectParameterZone(DefectParameterZone defectParameterZone){
getHibernateTemplate().save(defectParameterZone);
}
@Override
Class<Parameter> getServiceClass() {
return Parameter.class;
}
}