
org.ow2.bonita.persistence.db.DbRepositoryBuffer 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.Map;
import org.ow2.bonita.definition.GlobalClassData;
import org.ow2.bonita.definition.PackageClassData;
import org.ow2.bonita.definition.XpdlProcess;
import org.ow2.bonita.facade.uuid.PackageDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.facade.uuid.TaskUUID;
import org.ow2.bonita.runtime.TaskRunTime;
import org.ow2.bonita.runtime.XpdlInstance;
public class DbRepositoryBuffer {
private final Map instances = new HashMap();
private final Map removedInstances = new HashMap();
private final Map processes = new HashMap();
private final Map removedProcesses = new HashMap();
private final Map tasks = new HashMap();
private final Map removedTasks = new HashMap();
private final Map packageClassDatas =
new HashMap();
private final Map removedPackageClassDatas =
new HashMap();
private final Map globalClassDatas =
new HashMap();
private final Map removedGlobalClassDatas =
new HashMap();
public DbRepositoryBuffer() { }
//All methods returning a Collection must never return null!
//In that case, an empty collection must be returned
/**
* PROCESSES
*/
public Map getProcesss() {
return this.processes;
}
public XpdlProcess getProcess(final ProcessDefinitionUUID processUUID) {
return this.processes.get(processUUID);
}
public void addProcess(final XpdlProcess process) {
final ProcessDefinitionUUID processUUID = process.getUUID();
this.processes.put(processUUID, process);
this.removedProcesses.remove(processUUID);
}
public void removeProcess(final XpdlProcess process) {
final ProcessDefinitionUUID processUUID = process.getUUID();
this.removedProcesses.put(processUUID, process);
this.processes.remove(processUUID);
}
public boolean isProcessRemoved(final ProcessDefinitionUUID processUUID) {
return this.removedProcesses.containsKey(processUUID);
}
public boolean containsProcess(final ProcessDefinitionUUID processUUID) {
return this.processes.containsKey(processUUID);
}
/**
* INSTANCES
*/
public Map getInstances() {
return this.instances;
}
public XpdlInstance getInstance(final ProcessInstanceUUID instanceUUID) {
return this.instances.get(instanceUUID);
}
public void addInstance(final XpdlInstance instance) {
final ProcessInstanceUUID instanceUUID = instance.getUUID();
this.instances.put(instanceUUID, instance);
this.removedInstances.remove(instanceUUID);
}
public void removeInstance(final XpdlInstance instance) {
final ProcessInstanceUUID instanceUUID = instance.getUUID();
this.removedInstances.put(instanceUUID, instance);
this.instances.remove(instanceUUID);
}
public boolean isInstanceRemoved(final ProcessInstanceUUID instanceUUID) {
return this.removedInstances.containsKey(instanceUUID);
}
public boolean containsInstance(final ProcessInstanceUUID instanceUUID) {
return this.instances.containsKey(instanceUUID);
}
/**
* TASKS
*/
public Map getTasks() {
return this.tasks;
}
public TaskRunTime getTask(final TaskUUID taskUUID) {
return this.tasks.get(taskUUID);
}
public void addTask(final TaskRunTime task) {
this.tasks.put(task.getUUID(), task);
if (task.getXpdlExecution() != null) {
this.instances.put(task.getInstanceUUID(), task.getXpdlExecution().getXpdlInstance());
}
this.removedTasks.remove(task.getUUID());
}
public void removeTask(final TaskRunTime task) {
final TaskUUID taskUUID = task.getUUID();
this.removedTasks.put(taskUUID, task);
this.tasks.remove(taskUUID);
}
public boolean isTaskRemoved(final TaskUUID taskUUID) {
return this.removedTasks.containsKey(taskUUID);
}
public boolean containsTask(final TaskUUID taskUUID) {
return this.tasks.containsKey(taskUUID);
}
/**
* PACKAGE CLASS DATA
*/
public Map getPackageClassDatas() {
return this.packageClassDatas;
}
public PackageClassData getPackageClassData(final PackageDefinitionUUID packageUUID) {
return this.packageClassDatas.get(packageUUID);
}
public void addPackageClassData(final PackageClassData packageCD) {
this.packageClassDatas.put(packageCD.getPackageUUID(), packageCD);
this.removedPackageClassDatas.remove(packageCD.getPackageUUID());
}
public void removePackageClassData(final PackageClassData packageCD) {
final PackageDefinitionUUID packageUUIDUUID = packageCD.getPackageUUID();
this.removedPackageClassDatas.put(packageUUIDUUID, packageCD);
this.packageClassDatas.remove(packageUUIDUUID);
}
public boolean isPackageClassDataRemoved(final PackageDefinitionUUID packageUUID) {
return this.removedPackageClassDatas.containsKey(packageUUID);
}
public boolean containsPackageClassData(final PackageDefinitionUUID packageUUID) {
return this.packageClassDatas.containsKey(packageUUID);
}
/**
* GLOBAL CLASS DATA
*/
public Map getGlobalClassDatas() {
return this.globalClassDatas;
}
public GlobalClassData getGlobalClassData(final String className) {
return this.globalClassDatas.get(className);
}
public void addGlobalClassData(final GlobalClassData globalCD) {
this.globalClassDatas.put(globalCD.getClassName(), globalCD);
this.removedGlobalClassDatas.remove(globalCD.getClassName());
}
public void removeGlobalClassData(final GlobalClassData globalCD) {
final String className = globalCD.getClassName();
this.removedGlobalClassDatas.put(className, globalCD);
this.globalClassDatas.remove(className);
}
public boolean isGlobalClassDataRemoved(final String className) {
return this.removedGlobalClassDatas.containsKey(className);
}
public boolean containsGlobalClassData(final String className) {
return this.globalClassDatas.containsKey(className);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy