--- /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.io.OutputStream;
+import java.util.List;
+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.certification.ScenarioDefCert;
+import com.pentila.evalcomp.domain.certification.UserCertInstance;
+import com.pentila.evalcomp.domain.certification.UserValidationInstance;
+import com.pentila.evalcomp.domain.instance.ScenarioInstanceAbstract;
+import com.pentila.evalcomp.domain.plan.PlanComponent;
+import com.pentila.evalcomp.domain.transit.ContextRef;
+import com.pentila.evalcomp.domain.transit.Process;
+import com.pentila.evalcomp.domain.transit.TCompositeDataMap;
+import com.pentila.evalcomp.domain.transit.TListEObject;
+import com.pentila.evalcomp.domain.transit.Todo;
+
+/**
+ * The Interface ICertificationBase.
+ */
+@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
+public interface ICertificationBase {
+
+ /**
+ * Notify date jury.
+ *
+ * @param SIID the sIID
+ * @param issuer the issuer
+ * @param dateJury the date jury
+ */
+ @Transactional(readOnly = false)
+ public void notifyDateJury(String SIID, User issuer, String dateJury);
+
+ /**
+ * Notify jury.
+ *
+ * @param SIID the sIID
+ * @param issuer the issuer
+ */
+ @Transactional(readOnly = false)
+ public void notifyJury(String SIID, User issuer);
+
+ /**
+ * Notify modification.
+ *
+ * @param SIID the sIID
+ * @param issuer the issuer
+ */
+ @Transactional(readOnly = false)
+ public void notifyModification(String SIID, User issuer);
+
+ /**
+ * Notify resultats.
+ *
+ * @param SIID the sIID
+ * @param issuer the issuer
+ */
+ @Transactional(readOnly = false)
+ public void notifyResultats(String SIID, User issuer, String signer, String city);
+
+ /**
+ * Instanciate process.
+ *
+ * @param planRefId the plan ref id
+ */
+ @Transactional(readOnly = false)
+ public void instanciateProcess(Long planRefId);
+
+ /**
+ * Instanciate for user.
+ *
+ * @param SIID the sIID
+ * @param u the u
+ */
+ @Transactional(readOnly = false)
+ public void instanciateForUser(String SIID, User u);
+
+ /**
+ * Gets the users for role.
+ *
+ * @param SIID the sIID
+ * @param roleName the role name
+ * @return the users for role
+ */
+ @Transactional(readOnly = false)
+ public Set<String> getUsersForRole(String SIID, String roleName);
+
+ /**
+ * Gets the todo lists.
+ *
+ * @param login the login
+ * @param sp the sp
+ * @return the todo lists
+ */
+ public Set<ContextRef> getTodoLists(String login, Set<Process> sp);
+
+ /**
+ * Update todo.
+ *
+ * @param todo the todo
+ * @return the todo
+ */
+ public Todo updateTodo(Todo todo);
+
+ /**
+ * Adds the scenario def cert.
+ *
+ * @param sdc the sdc
+ * @return the scenario def cert
+ */
+ @Transactional(readOnly = false)
+ public ScenarioDefCert addScenarioDefCert(ScenarioDefCert sdc);
+
+ /**
+ * Delete scenario def cert.
+ *
+ * @param sdc the sdc
+ */
+ @Transactional(readOnly = false)
+ public void deleteScenarioDefCert(ScenarioDefCert sdc);
+
+ /**
+ * Launch scenario validation.
+ *
+ * @param SIID the sIID
+ */
+ @Transactional(readOnly = false)
+ public void launchScenarioValidation(String SIID);
+
+ /**
+ * Gets the users table.
+ *
+ * @param planRefId the plan ref id
+ * @param groupId the group id
+ * @param uids the uids
+ * @param start the start
+ * @param pageSize the page size
+ * @param searchFilter the search filter
+ * @param states the states
+ * @return the users table
+ */
+ public TCompositeDataMap getUsersTable(Long planRefId, Long groupId,
+ Set<String> uids, int start, int pageSize, String searchFilter, Integer[] states);
+
+ /**
+ * Sets the user validation instance.
+ *
+ * @param owneruid the owneruid
+ * @param issuerUid the issuer uid
+ * @param idComp the id comp
+ * @param sic the sic
+ * @param motiv
+ */
+ @Transactional(readOnly = false)
+ public void setUserValidationInstance(String owneruid, String issuerUid, Long idComp,
+ Long sic, String motiv);
+
+ /**
+ * Delete user validation instance.
+ *
+ * @param ownerUid the owner uid
+ * @param issuerUid the issuer uid
+ * @param idComp the id comp
+ * @param sic the sic
+ */
+ @Transactional(readOnly = false)
+ public void deleteUserValidationInstance(String ownerUid, String issuerUid,
+ Long idComp, Long sic);
+
+ /**
+ * Update user validation instances.
+ *
+ * @param suvi the suvi
+ */
+ @Transactional(readOnly = false)
+ public void updateUserValidationInstances(Set<UserValidationInstance> suvi);
+
+ /**
+ * Gets the user validation instances.
+ *
+ * @param idPlanRef the id plan ref
+ * @param scenarioInstCertId the scenario inst cert id
+ * @param states the states
+ * @param start the start
+ * @param pageSize the page size
+ * @param searchFilter the search filter
+ * @return the user validation instances
+ */
+ public TListEObject getUserValidationInstances(Long idPlanRef,
+ Long scenarioInstCertId, Integer[] states, int start, int pageSize,
+ String searchFilter);
+
+ /**
+ * Inits the fil.
+ *
+ * @param sicId the sic id
+ * @param uid the uid
+ * @param currentUid the current uid
+ * @param subject the subject
+ * @param body the body
+ * @return the long
+ */
+ @Transactional(readOnly = false)
+ public Long initFil(Long sicId, String uid, String currentUid, String subject, String body);
+
+ /**
+ * Gets the user cert instance.
+ *
+ * @param uciId the uci id
+ * @return the user cert instance
+ */
+ public UserCertInstance getUserCertInstance(Long uciId);
+
+ /**
+ * Creates the user cert instance.
+ *
+ * @param sicId the sic id
+ * @param uid the uid
+ * @return the user cert instance
+ */
+ @Transactional(readOnly = false)
+ public UserCertInstance createUserCertInstance(Long sicId, String uid);
+
+ /**
+ * Save cert table.
+ *
+ * @param tt the tt
+ */
+ @Transactional(readOnly = false)
+ public void saveCertTable(TCompositeDataMap tt);
+
+ /**
+ * Refresh scenarios.
+ *
+ * @param p the p
+ */
+ @Transactional(readOnly = false)
+ public void refreshScenarios(PlanComponent p);
+
+ /**
+ * Sets the permission m jury.
+ *
+ * @param sicId the sic id
+ * @param perm the perm
+ */
+ @Transactional(readOnly = false)
+ public void setPermissionMJury(Long sicId, Boolean perm);
+
+ /**
+ * Export documents.
+ *
+ * @param planRefId the plan ref id
+ * @param sicId the sic id
+ */
+ @Transactional(readOnly = false)
+ public void exportDocuments(Long planRefId, Long sicId, Set<String> uids, String signer, String city, OutputStream outStream, String type, boolean simulate, boolean generateFake);
+
+
+ public void exportDocumentsPrivate(Long planRefId, Long sicId, String uids, String signer, String city, OutputStream outStream, String type, boolean simulate, boolean generateFake);
+
+ /**
+ * Gets the user cert instances by referentiel.
+ *
+ * @param idReferentiel the id referentiel
+ * @param uid the uid
+ * @param states the states
+ * @return the user cert instances by referentiel
+ */
+ public TListEObject getUserCertInstancesByReferentiel(Long idReferentiel,
+ String uid,Integer[] states);
+
+ /**
+ * Do notify certification.
+ */
+ @Transactional(readOnly = false)
+ public void doNotifyCertification();
+
+ /**
+ * Notify results.
+ *
+ * @param sIID the s iid
+ * @param userId the user id
+ */
+ @Transactional(readOnly = false)
+ public void notifyResults(Long sIID, Long userId, String signer, String city);
+
+ /**
+ * Gets the users table numeric.
+ *
+ * @param planRefId the plan ref id
+ * @param groupId the group id
+ * @param uids the uids
+ * @param start the start
+ * @param pageSize the page size
+ * @param searchFilter the search filter
+ * @param states the states
+ * @return the users table numeric
+ */
+ public TCompositeDataMap getUsersTableNumeric(Long planRefId, Long groupId,
+ Set<String> uids, int start, int pageSize, String searchFilter,
+ Integer[] states);
+
+ /**
+ * Gets the related users.
+ *
+ * @param sia the sia
+ * @param term the term
+ * @return the related users
+ */
+ public List<User> getRelatedUsers(ScenarioInstanceAbstract sia, String term);
+
+ public ScenarioDefCert updateCertificationSession(ScenarioDefCert oldScenarioDefCert, ScenarioDefCert newScenarioDefCert);
+}