
org.ow2.bonita.persistence.db.DbHistory Maven / Gradle / Ivy
package org.ow2.bonita.persistence.db;
import java.util.Set;
import org.ow2.bonita.facade.def.majorElement.PackageFullDefinition;
import org.ow2.bonita.facade.def.majorElement.ProcessFullDefinition;
import org.ow2.bonita.facade.def.majorElement.impl.PackageFullDefinitionImpl;
import org.ow2.bonita.facade.runtime.ProcessFullInstance;
import org.ow2.bonita.facade.runtime.impl.ProcessFullInstanceImpl;
import org.ow2.bonita.services.Archiver;
import org.ow2.bonita.services.Querier;
import org.ow2.bonita.util.Misc;
/**
*
* @author Thomas Gueze
*
*/
public class DbHistory extends AbstractDbQuerier implements Archiver, Querier {
public DbHistory(final String name) {
super(name, new DbQuerierBufferImpl());
}
public void archive(final PackageFullDefinition packageDef) {
Misc.checkArgsNotNull(packageDef);
//if (getPersistenceService().getPackage(packageDef.getPackageDefinitionUUID()) == null) {
if (getPackage(packageDef.getPackageDefinitionUUID()) == null) {
final PackageFullDefinition pack = new PackageFullDefinitionImpl(packageDef);
this.buffer.addPackage(pack);
getQuerierDbSession().save(pack);
} else {
throw new IllegalArgumentException(" Can't archive: " + packageDef
+ " --- A record with processDefinitionUUID: "
+ packageDef + " has already been archived ");
}
}
public void archive(final ProcessFullInstance processInst) {
Misc.checkArgsNotNull(processInst);
if (getProcessInstance(processInst.getUUID()) == null) {
final ProcessFullInstance instance = new ProcessFullInstanceImpl(processInst);
this.buffer.addInstance(instance);
getQuerierDbSession().save(instance);
} else {
throw new IllegalArgumentException(" Can't archive: " + processInst
+ " --- A record with processInstanceUUID: "
+ processInst + " has already been archived ");
}
}
public void remove(final PackageFullDefinition package1) {
Misc.checkArgsNotNull(package1);
this.buffer.removePackage(package1);
getQuerierDbSession().delete(package1);
}
public void remove(final ProcessFullInstance processInst) {
Misc.checkArgsNotNull(processInst);
this.buffer.removeInstance(processInst);
getQuerierDbSession().delete(processInst);
}
public void clear() {
final Set packages = getQuerierDbSession().getPackages();
for (final PackageFullDefinition pack : packages) {
this.buffer.removePackage(pack);
getQuerierDbSession().delete(pack);
}
final Set processes = getQuerierDbSession().getProcesses();
Set processInstances;
for (final ProcessFullDefinition process : processes) {
processInstances = getQuerierDbSession().getProcessInstances(process.getProcessDefinitionUUID());
for (final ProcessFullInstance processInstance : processInstances) {
this.buffer.removeInstance(processInstance);
getQuerierDbSession().delete(processInstance);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy