
org.ow2.bonita.persistence.db.DbQuerierBufferImpl Maven / Gradle / Ivy
/**
* Copyright (C) 2006 Bull S. A. S.
* Bull, Rue Jean Jaures, B.P.68, 78340, Les Clayes-sous-Bois
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation
* version 2.1 of the License.
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301, USA.
**/
package org.ow2.bonita.persistence.db;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.ow2.bonita.facade.def.majorElement.ProcessDefinition;
import org.ow2.bonita.facade.runtime.ProcessInstance;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
public class DbQuerierBufferImpl implements DbQuerierBuffer {
//runtime : instance, activity, tasks
//definition : package, process, activity
protected Map instances =
new HashMap();
protected Map processes =
new HashMap();
protected Map removedInstances =
new HashMap();
protected Map removedProcesses =
new HashMap();
/**
* INSTANCES
*/
public Map getInstances() {
return instances;
}
public Set getInstancesSet() {
Set result = new HashSet();
result.addAll(instances.values());
return result;
}
public ProcessInstance getInstance(ProcessInstanceUUID instanceUUID) {
return instances.get(instanceUUID);
}
public boolean isInstanceRemoved(ProcessInstanceUUID instanceUUID) {
return removedInstances.containsKey(instanceUUID);
}
public void addInstance(ProcessInstance instance) {
instances.put(instance.getUUID(), instance);
removedInstances.remove(instance.getUUID());
}
public boolean containsInstance(ProcessInstanceUUID instanceUUID) {
return instances.containsKey(instanceUUID);
}
public void removeInstance(ProcessInstance instance) {
ProcessInstanceUUID instanceUUID = instance.getUUID();
instances.remove(instanceUUID);
removedInstances.put(instanceUUID, instance);
}
/**
* PROCESSE
*/
public Map getProcesses() {
return processes;
}
public Map getProcesses(String processId) {
Map returnProcesses =
new HashMap();
for (ProcessDefinition processDef : processes.values()) {
if (processDef.getName().equals(processId)) {
returnProcesses.put(processDef.getUUID(), processDef);
}
}
return returnProcesses;
}
public Set getProcessesSet() {
Set result = new HashSet();
result.addAll(processes.values());
return result;
}
public ProcessDefinition getProcess(ProcessDefinitionUUID processUUID) {
return processes.get(processUUID);
}
public boolean isProcessRemoved(ProcessDefinitionUUID processUUID) {
return removedProcesses.containsKey(processUUID);
}
public void addProcess(ProcessDefinition pack) {
processes.put(pack.getUUID(), pack);
removedProcesses.remove(pack.getUUID());
}
public boolean containsProcess(ProcessDefinitionUUID processUUID) {
return processes.containsKey(processUUID);
}
public void removeProcess(ProcessDefinition pack) {
ProcessDefinitionUUID processUUID = pack.getUUID();
processes.remove(processUUID);
removedProcesses.put(processUUID, pack);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy