--- /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;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.ow2.bonita.facade.exception.InstanceNotFoundException;
+
+import com.pentila.evalcomp.domain.definition.Property;
+import com.pentila.evalcomp.domain.transit.Process;
+import com.pentila.evalcomp.domain.transit.TransitProcessDefinition;
+import com.pentila.evalcomp.manager.interfacedef.IWorkflowBase;
+import com.pentila.evalcomp.workflow.BonitaProcessLaunch;
+import com.pentila.evalcomp.workflow.engine.IEngine;
+import com.pentila.evalcomp.workflow.engine.InstanciateCommand;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class WorkflowManager.
+ */
+public class WorkflowManager implements IWorkflowBase {
+
+ /** The engine. */
+ private IEngine engine;
+
+ /**
+ * Gets the engine.
+ *
+ * @return the engine
+ */
+ public IEngine getEngine() {
+ return engine;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflow#getProcessDefinition
+ * (java.lang.String)
+ */
+ public TransitProcessDefinition getProcessDefinition(String UUID) {
+ return engine.getTransitProcessDefinition(UUID);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflow#getProcessDefinitions
+ * ()
+ */
+ public Set<TransitProcessDefinition> getProcessDefinitions(
+ Set<String> filterTypes) {
+ return engine.getProcessDefinitions(filterTypes);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seecom.pentila.evalcomp.manager.interfacedef.IWorkflow#
+ * getProcessDefinitionVariableByUUID(java.lang.String, java.lang.String)
+ */
+ public String getProcessDefinitionVariableByUUID(String defid,
+ String variableName) {
+ return engine.getProcessDefinitionVariableByUUID(defid, variableName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflow#getProcesses(java
+ * .lang.String)
+ */
+ public Set<Process> getProcesses(String login) {
+
+ return engine.getProcesses(login);
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflow#getRoleNames(java
+ * .lang.String)
+ */
+ public Set<String> getRoleNames(String defId) {
+ return engine.getProcessDefinitionRoleNames(defId);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seecom.pentila.evalcomp.manager.interfacedef.IWorkflowBase#
+ * getUserScenarioInstanceIds(java.lang.String)
+ */
+ public Set<Long> getUserScenarioInstanceIds(String login) {
+ return engine.getUserScenarioInstanceIds(login);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflow#instanciate(java.
+ * lang.String, java.lang.String, java.util.Map)
+ */
+ public String instanciate(String login, String processId, Map parameters) {
+
+ return engine.instanciate(login, processId, parameters);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#instanciateProcesses
+ * (java.util.Set)
+ */
+ public Set<BonitaProcessLaunch> instanciateProcesses(
+ Set<BonitaProcessLaunch> sbpl) {
+
+ InstanciateCommand c = new InstanciateCommand(engine, sbpl);
+ return (Set<BonitaProcessLaunch>) engine.execute(c);
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#refreshAssignation
+ * (com.pentila.evalcomp.domain.instance.ScenarioInstance)
+ */
+ public void refreshAssignation(String processInstanceId) {
+ // TODO Auto-generated method stub
+ if (processInstanceId != null) {
+ engine.refreshAssignation(processInstanceId);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#removeProcess
+ * (java.lang.String)
+ */
+ public void removeProcess(String processInstanceId) {
+ // TODO Auto-generated method stub
+ engine.removeInstance(processInstanceId);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflow#runProcessActivity
+ * (java.lang.String, java.lang.String, java.lang.String, java.lang.String)
+ */
+ public void runProcessActivity(String login, String processuuid,
+ String selectedActivityId, String transitionId) {
+ // TODO Auto-generated method stub
+ engine.runProcessActivity(login, processuuid, selectedActivityId,
+ transitionId);
+ }
+
+ /**
+ * Sets the engine.
+ *
+ * @param engine
+ * the new engine
+ */
+ public void setEngine(IEngine engine) {
+ this.engine = engine;
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#setProperties(java.lang.String, java.util.Set)
+ */
+ public void setProperties(String processuuid, Set<Property> sp) {
+
+ Map<String, String> vv = new HashMap<String, String>();
+
+ Map<String, Map<String, String>> vva = new HashMap<String, Map<String,String>>();
+
+ for (Property p : sp) {
+ if (p.getActivityUUID() == null || p.getActivityUUID().equals("")){
+ vv.put(p.getName(), p.getValue());
+ }else{
+
+ String activityUUID = p.getActivityUUID();
+ if (!vva.containsKey(activityUUID)){
+ vva.put(activityUUID, new HashMap<String, String>());
+ }
+
+ vva.get(activityUUID).put(p.getName(), p.getValue());
+
+ }
+ }
+
+ engine.setProcessInstanceVariables(processuuid, vv);
+ engine.setActivitiesInstanceVariables(vva);
+
+ }
+
+ /*
+ *
+ *
+ *
+ * PART IS JUST HERE FOR BACKWARD COMPATIBILITY
+ */
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seecom.pentila.evalcomp.manager.interfacedef.IWorkflowBase#
+ * getUsersDefinitionForRole(java.lang.String, java.lang.String)
+ */
+ @Deprecated
+ public Set<String> getUsersDefinitionForRole(String SIID, String role) {
+ return Beans.getInstanceManagerBean().getUsersDefinitionForRole(SIID,
+ role);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#getUsersForRole
+ * (java.lang.String, java.lang.String)
+ */
+ @Deprecated
+ public Set<String> getUsersForRole(String SIID, String role) {
+ return Beans.getInstanceManagerBean().getUsersForRole(SIID, role);
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#getCandidates(java.lang.String)
+ */
+ public Map<String, Map<String, Object>> getCandidates(String processuuid) {
+ return engine.getCandidates(processuuid);
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#testCoherence(java.lang.String, java.util.Set, java.lang.String)
+ */
+ public boolean testCoherence(String piuuid, Set<String> uids, String actId) {
+ return engine.testCoherence(piuuid, uids, actId);
+ }
+
+ /**
+ * Prints the instance debug.
+ *
+ * @param piuuid the piuuid
+ */
+ public void printInstanceDebug(String piuuid) {
+ try {
+ engine.printInstanceDebug(piuuid);
+ } catch (InstanceNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see com.pentila.evalcomp.manager.interfacedef.IWorkflowBase#getProcess(java.lang.String, java.lang.String)
+ */
+ public Process getProcess(String login, String processuuid) {
+
+
+
+ return engine.getProcess(login,processuuid);
+ }
+
+}