
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.PackageFullDefinition;
import org.ow2.bonita.facade.runtime.ProcessFullInstance;
import org.ow2.bonita.facade.uuid.PackageDefinitionUUID;
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 packages =
new HashMap();
protected Map removedInstances =
new HashMap();
protected Map removedPackages =
new HashMap();
/**
* INSTANCES
*/
public Map getInstances() {
return instances;
}
public Set getInstancesSet() {
Set result = new HashSet();
result.addAll(instances.values());
return result;
}
public ProcessFullInstance getInstance(ProcessInstanceUUID instanceUUID) {
return instances.get(instanceUUID);
}
public boolean isInstanceRemoved(ProcessInstanceUUID instanceUUID) {
return removedInstances.containsKey(instanceUUID);
}
public void addInstance(ProcessFullInstance instance) {
instances.put(instance.getUUID(), instance);
removedInstances.remove(instance.getUUID());
}
public boolean containsInstance(ProcessInstanceUUID instanceUUID) {
return instances.containsKey(instanceUUID);
}
public void removeInstance(ProcessFullInstance instance) {
ProcessInstanceUUID instanceUUID = instance.getUUID();
instances.remove(instanceUUID);
removedInstances.put(instanceUUID, instance);
}
/**
* PACKAGES
*/
public Map getPackages() {
return packages;
}
public Map getPackages(String packageId) {
Map returnPackages =
new HashMap();
for (PackageFullDefinition packageDef : packages.values()) {
if (packageDef.getPackageId().equals(packageId)) {
returnPackages.put(packageDef.getUUID(), packageDef);
}
}
return returnPackages;
}
public Set getPackagesSet() {
Set result = new HashSet();
result.addAll(packages.values());
return result;
}
public PackageFullDefinition getPackage(PackageDefinitionUUID packageUUID) {
return packages.get(packageUUID);
}
public boolean isPackageRemoved(PackageDefinitionUUID packageUUID) {
return removedPackages.containsKey(packageUUID);
}
public void addPackage(PackageFullDefinition pack) {
packages.put(pack.getUUID(), pack);
removedPackages.remove(pack.getUUID());
}
public boolean containsPackage(PackageDefinitionUUID packageUUID) {
return packages.containsKey(packageUUID);
}
public void removePackage(PackageFullDefinition pack) {
PackageDefinitionUUID packageUUID = pack.getUUID();
packages.remove(packageUUID);
removedPackages.put(packageUUID, pack);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy