--- /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.manager.interfacedef;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.pentila.evalcomp.domain.User;
+import com.pentila.evalcomp.domain.definition.EvaluationDefinition;
+import com.pentila.evalcomp.domain.definition.EvaluationObject;
+import com.pentila.evalcomp.domain.definition.Level;
+import com.pentila.evalcomp.domain.definition.Property;
+import com.pentila.evalcomp.domain.definition.Referentiel;
+import com.pentila.evalcomp.domain.instance.CompetenceInstance;
+import com.pentila.evalcomp.domain.instance.EvaluationSubjectInstance;
+import com.pentila.evalcomp.domain.instance.ScenarioInstance;
+import com.pentila.evalcomp.domain.transit.TCompositeDataMap;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface IEvaluationSubjectInstance.
+ */
+@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
+public interface IEvaluationSubjectInstanceBase {
+
+ /**
+ * Adds the competence instance.
+ *
+ * @param ci
+ * the ci
+ *
+ * @return the competence instance
+ */
+ @Transactional(readOnly = false)
+ CompetenceInstance addCompetenceInstance(CompetenceInstance ci);
+
+ /**
+ * Adds the evaluation subject instance.
+ *
+ * @param esi
+ * the esi
+ *
+ * @return the evaluation subject instance
+ */
+ @Transactional(readOnly = false)
+ EvaluationSubjectInstance addEvaluationSubjectInstance(
+ EvaluationSubjectInstance esi);
+
+ /**
+ * Delete competence instances.
+ *
+ * @param sci
+ * the sci
+ */
+ @Transactional(readOnly = false)
+ void deleteCompetenceInstances(List<CompetenceInstance> sci);
+
+ /**
+ * Delete competence instances.
+ *
+ * @param seo
+ * the seo
+ * @param su
+ * the su
+ * @param esi
+ * the esi
+ */
+ @Transactional(readOnly = false)
+ void deleteCompetenceInstances(List<EvaluationObject> seo, Set<User> su,
+ EvaluationSubjectInstance esi);
+
+ /**
+ * Delete esi.
+ *
+ * @param esi
+ * the esi
+ */
+ @Transactional(readOnly = false)
+ void deleteESI(EvaluationSubjectInstance esi);
+
+ /**
+ * Gets the EvaluationSubjectInstance.
+ *
+ * @param evaluationSubjectId
+ * the evaluation subject id
+ * @param login
+ * the login
+ *
+ * @return the eSI
+ */
+ Set<EvaluationSubjectInstance> getESIs(Long evaluationSubjectId,
+ String login);
+
+ /**
+ * Gets the user competence instances.
+ *
+ * @param login
+ * the login
+ *
+ * @return the user competence instances
+ */
+ Map<Long, Set<CompetenceInstance>> getUserCompetenceInstances(String login);
+
+ /**
+ * Gets the user e definition competence instance by ref.
+ *
+ * @param login
+ * the login
+ * @param idRef
+ * the id ref
+ *
+ * @return the user e definition competence instance by ref
+ */
+ Map<EvaluationDefinition, Set<CompetenceInstance>> getUserEDefinitionCompetenceInstanceByRef(
+ String login, Long idRef);
+
+ /**
+ * Gets the user referentiels.
+ *
+ * @param login
+ * the login
+ *
+ * @return the user referentiels
+ */
+ Set<Referentiel> getUserReferentiels(String login);
+
+ /**
+ * Sets the competence instances.
+ *
+ * @param sci
+ * the sci
+ *
+ * @return true, if successful
+ */
+ @Transactional(readOnly = false)
+ boolean setCompetenceInstances(List<CompetenceInstance> sci);
+
+ /**
+ * Sets the permission.
+ *
+ * @param role
+ * the role
+ * @param suid
+ * the suid
+ * @param esi
+ * the esi
+ */
+ void setPermission(String role, Set<String> suid,
+ EvaluationSubjectInstance esi);
+
+ /**
+ * Finish.
+ *
+ * @param u
+ * the u
+ * @param si
+ * the si
+ */
+ @Transactional(readOnly = false)
+ void finish(User u, ScenarioInstance si);
+
+ /**
+ * Gets the eSI by id.
+ *
+ * @param ESIId the eSI id
+ * @return the eSI by id
+ */
+ EvaluationSubjectInstance getESIById(Long ESIId);
+
+ /**
+ * Sets the properties.
+ *
+ * @param evaluationSubjectInstance the evaluation subject instance
+ * @param sp the sp
+ */
+ @Transactional(readOnly = false)
+ void setProperties(EvaluationSubjectInstance evaluationSubjectInstance,
+ Set<Property> sp);
+
+ Set<CompetenceInstance> getCompetenceInstancesForUsers(Long ESIIds, Set<Long> usersIds);
+
+ @Transactional(readOnly = false)
+ boolean setCompetenceInstances(TCompositeDataMap t);
+
+ Level getUnSettedInitLevel(Long idESI);
+
+ @Transactional(readOnly = false)
+ void buildExamenInstances(Set<User> su, EvaluationSubjectInstance eSI);
+
+ @Transactional(readOnly = false)
+ void finishExamen(EvaluationSubjectInstance evaluationSubjectInstance);
+
+}