blob: bda9904463a552773f6695861d788b870bb69cb5 [file] [log] [blame]
/**
*
* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*/
package org.eclipse.osbp.bpm.api;
import java.util.ArrayList;
import java.util.Map;
import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.event.process.ProcessEventListener;
import org.drools.io.ResourceFactoryService;
import org.eclipse.osbp.persistence.IPersistenceService;
import org.jbpm.task.Group;
import org.jbpm.task.User;
import org.jbpm.task.event.TaskEventListener;
import org.jbpm.task.service.TaskService;
public interface IBPMEngine {
public Map<String, ArrayList<String>> getGroupsbyuser();
public Map<String, ArrayList<String>> getUsersbygroup();
public Map<String, User> getUsers();
public Map<String, Group> getGroups();
public KnowledgeBuilder getKnowledgeBuilder();
public KnowledgeBase getKnowledgeBase();
public ResourceFactoryService getResourceFactoryService();
public TaskService getTaskService();
public void startProcess(IBlipBPMStartInfo bpm, Map <String, Object> parameters);
public IPersistenceService getPersistenceService();
public void registerResource(String processId, String resourceName);
public String getResourceName(String processId);
public void initBPMUsers();
public void addOrganizationalResource(String user, String group);
public void addProcessEventListener(ProcessEventListener listener);
public void removeProcessEventListener(ProcessEventListener listener);
public void addTaskEventListener(TaskEventListener listener);
public void removeTaskEventListener(TaskEventListener listener);
public boolean addBpmn(String processId, String bundleResourceName, Class<?> clz);
/**
* @param taskInformationObject object containing information about the task; it can be<ul>
* <li>process instance of type {@link org.drools.runtime.process.ProcessInstance}</li>
* <li>long value containing the process instance id</li>
* <li>int value containing the process instance id</li>
* <li>task summary of type {@link org.jbpm.task.query.TaskSummary}</li>
* </ul>
* @return map with String for key and Object for values
*/
public Map<String,Object> getProcessVariables(Object taskInformationObject);
/**
* @param taskInformationObject object containing information about the task; it can be<ul>
* <li>process instance of type {@link org.drools.runtime.process.ProcessInstance}</li>
* <li>long value containing the process instance id</li>
* <li>int value containing the process instance id</li>
* <li>task summary of type {@link org.jbpm.task.query.TaskSummary}</li>
* </ul>
* @param variable name of the requested variable
* @return value of the variable or null
*/
public Object getProcessVariable(Object taskInformationObject, String variable);
/**
* @param taskInformationObject object containing information about the task; it can be<ul>
* <li>process instance of type {@link org.drools.runtime.process.ProcessInstance}</li>
* <li>long value containing the process instance id</li>
* <li>int value containing the process instance id</li>
* <li>task summary of type {@link org.jbpm.task.query.TaskSummary}</li>
* </ul>
* @param variable name of the variable to be set
* @param value new values of the variable
*/
public Object setProcessVariable(Object taskInformationObject, String variable, Object value);
public void disposeKsession(Object ksession);
public Object reCreateKnowledgeSession(Object taskInformationObject);
public void beginTransaction();
public void commitTransaction();
public void rollbackTransaction();
}