--- /dev/null
+/*****************************************************************************
+ * Copyright Igor Barma, Eric Brun, Alexandre Desoubeaux, Christian Martel,
+ * (2 décembre 2008)
+ *
+ * Ce logiciel est un programme informatique servant à l'évaluation des
+ * compétences.
+ *
+ * Ce logiciel est régi par la licence CeCILL soumise au droit français et
+ * respectant les principes de diffusion des logiciels libres. Vous pouvez
+ * utiliser, modifier et/ou redistribuer ce programme sous les conditions
+ * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
+ * sur le site "http://www.cecill.info".
+ *
+ * En contrepartie de l'accessibilité au code source et des droits de copie,
+ * de modification et de redistribution accordés par cette licence, il n'est
+ * offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
+ * seule une responsabilité restreinte pèse sur l'auteur du programme, le
+ * titulaire des droits patrimoniaux et les concédants successifs.
+ *
+ * A cet égard l'attention de l'utilisateur est attirée sur les risques
+ * associés au chargement, à l'utilisation, à la modification et/ou au
+ * développement et à la reproduction du logiciel par l'utilisateur étant
+ * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
+ * manipuler et qui le réserve donc à des développeurs et des professionnels
+ * avertis possédant des connaissances informatiques approfondies. Les
+ * utilisateurs sont donc invités à charger et tester l'adéquation du
+ * logiciel à leurs besoins dans des conditions permettant d'assurer la
+ * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
+ * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
+ *
+ * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
+ * pris connaissance de la licence CeCILL, et que vous en avez accepté les
+ * termes.
+ *******************************************************************************/
+package com.pentila.evalcomp.dao.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import com.pentila.evalcomp.dao.IUserValidationInstanceDAO;
+import com.pentila.evalcomp.domain.User;
+import com.pentila.evalcomp.domain.certification.ScenarioInstCert;
+import com.pentila.evalcomp.domain.certification.UserValidationInstance;
+import com.pentila.evalcomp.domain.definition.EvaluationObject;
+
+/**
+ * The Class UserValidationInstanceDAOImpl.
+ */
+public class UserValidationInstanceDAOImpl extends
+GenericDAOImpl<UserValidationInstance, Long> implements
+IUserValidationInstanceDAO {
+
+ /** The HQ lget user validation instance. */
+ static String HQLgetUserValidationInstance = "select uvi from UserValidationInstance as uvi where uvi.owner.id=:ownerid and uvi.evaluationObject.id=:eoId and uvi.scenarioInstCert.id=:sicId";
+
+ /** The HQ lget user validation instance by eo. */
+ static String HQLgetUserValidationInstanceByEO = "select uvi from UserValidationInstance as uvi inner join uvi.scenarioInstCert as sic inner join sic.scenarioDefinition as SD inner join SD.planRef as planRef " +
+ "where uvi.owner.uid =:login and uvi.evaluationObject.id in (:eoIds) and planRef.id=:planRefId";
+
+ /** The HQ lget user validation instance issuer. */
+ static String HQLgetUserValidationInstanceIssuer = "select uvi from UserValidationInstance as uvi where uvi.owner.id=:ownerid and uvi.evaluationObject.id=:eoId and uvi.scenarioInstCert.id=:sicId and uvi.officer.id=:issuerId";
+
+ /** The HQ lget user validation instance by state. */
+ static String HQLgetUserValidationInstanceByState = "select uvi from UserValidationInstance as uvi where uvi.state in (:states) and uvi.scenarioInstCert.id=:sicId";
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.dao.IUserValidationInstanceDAO#getUserValidationInstance(com.pentila.evalcomp.domain.User, com.pentila.evalcomp.domain.User, com.pentila.evalcomp.domain.definition.EvaluationObject, com.pentila.evalcomp.domain.certification.ScenarioInstCert)
+ */
+ public List<UserValidationInstance> getUserValidationInstance(User owner,
+ User issuer, EvaluationObject eo, ScenarioInstCert sic) {
+
+ List<UserValidationInstance> l = getCachableHibernateTemplate()
+ .findByNamedParam(
+ HQLgetUserValidationInstanceIssuer,
+ new String[] { "ownerid", "eoId", "sicId", "issuerId" },
+ new Object[] { owner.getId(), eo.getId(), sic.getId(),
+ issuer.getId() });
+
+ return l;
+
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.dao.IUserValidationInstanceDAO#getUserValidationInstance(com.pentila.evalcomp.domain.User, com.pentila.evalcomp.domain.definition.EvaluationObject, com.pentila.evalcomp.domain.certification.ScenarioInstCert)
+ */
+ public List<UserValidationInstance> getUserValidationInstance(User owner,
+ EvaluationObject eo, ScenarioInstCert sic) {
+ List<UserValidationInstance> l = getCachableHibernateTemplate()
+ .findByNamedParam(HQLgetUserValidationInstance,
+ new String[] { "ownerid", "eoId", "sicId" },
+ new Object[] { owner.getId(), eo.getId(), sic.getId() });
+
+ return l;
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.dao.IUserValidationInstanceDAO#getUserValidationInstance(com.pentila.evalcomp.domain.certification.ScenarioInstCert, java.lang.Integer[])
+ */
+ public List<UserValidationInstance> getUserValidationInstance(
+ ScenarioInstCert sic, Integer[] states) {
+ List<UserValidationInstance> l = getCachableHibernateTemplate()
+ .findByNamedParam(HQLgetUserValidationInstanceByState,
+ new String[] { "states", "sicId" },
+ new Object[] { states, sic.getId() });
+
+ return l;
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.dao.IUserValidationInstanceDAO#getUserValidationInstancesByEO(java.lang.String, java.util.Set, java.lang.Long)
+ */
+ public List<UserValidationInstance> getUserValidationInstancesByEO(String login,
+ Set<Long> eoIds, Long planRefId){
+ List<Long> ll = new ArrayList<Long>(eoIds);
+ Collections.sort(ll);
+
+ List<UserValidationInstance> l = getCachableHibernateTemplate().findByNamedParam(HQLgetUserValidationInstanceByEO, new String[]{"login", "eoIds", "planRefId"}, new Object[]{login, ll.toArray(), planRefId});
+ return l;
+ }
+
+
+
+
+}