All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.bonita.persistence.db.OptimizedDbHistory Maven / Gradle / Ivy

package org.ow2.bonita.persistence.db;

import java.util.Collections;
import java.util.Set;

import org.ow2.bonita.facade.def.majorElement.PackageDefinition;
import org.ow2.bonita.facade.def.majorElement.PackageFullDefinition;
import org.ow2.bonita.facade.def.majorElement.ProcessDefinition;
import org.ow2.bonita.facade.def.majorElement.ProcessFullDefinition;
import org.ow2.bonita.facade.runtime.ActivityFullInstance;
import org.ow2.bonita.facade.runtime.ActivityState;
import org.ow2.bonita.facade.runtime.TaskInstance;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.util.Misc;

/**
 *
 * @author Thomas Gueze
 *
 */
public class OptimizedDbHistory extends DbHistory {

  public OptimizedDbHistory(final String name) {
    super(name);
  }

  @Override
  public PackageFullDefinition getLastDeployedPackage(final String packageId, final PackageDefinition.PackageState packageState) {
    Misc.checkArgsNotNull(packageState);
    // History does not  return deployed packages
    if (packageState.equals(PackageDefinition.PackageState.DEPLOYED)) {
      return null;
    }
    return super.getLastDeployedPackage(packageId, packageState);
  }


  @Override
  public ProcessFullDefinition getLastDeployedProcess(final String packageId,
      final String processId, final ProcessDefinition.ProcessState processState) {
    Misc.checkArgsNotNull(processState);
    // History does not return deployed packages
    if (processState.equals(ProcessDefinition.ProcessState.DEPLOYED)) {
      return null;
    }
    return super.getLastDeployedProcess(packageId, processId, processState);
  }

  @Override
  public Set getPackages(final PackageDefinition.PackageState packageState) {
    Misc.checkArgsNotNull(packageState);
    // History does not return deployed packages
    if (packageState.equals(PackageDefinition.PackageState.DEPLOYED)) {
      return Collections.emptySet();
    }
    return super.getPackages(packageState);
  }

  @Override
  public Set getPackages(final String packageId, final PackageDefinition.PackageState packageState) {
    Misc.checkArgsNotNull(packageState);
    // History does not return deployed packages
    if (packageState.equals(PackageDefinition.PackageState.DEPLOYED)) {
      return Collections.emptySet();
    }
    return super.getPackages(packageId, packageState);
  }


  @Override
  public Set getProcesses(final ProcessDefinition.ProcessState processState) {
    Misc.checkArgsNotNull(processState);
    // History does not return deployed processes
    if (processState.equals(ProcessDefinition.ProcessState.DEPLOYED)) {
      return Collections.emptySet();
    }
    return super.getProcesses(processState);
  }

  @Override
  public Set getProcesses(final String processId, final ProcessDefinition.ProcessState processState) {
    Misc.checkArgsNotNull(processState);
    // History does not return deployed processes
    if (processState.equals(ProcessDefinition.ProcessState.DEPLOYED)) {
      return Collections.emptySet();
    }
    return super.getProcesses(processId, processState);
  }

  @Override
  public Set> getUserInstanceTasks(
      final String userId, final ProcessInstanceUUID instanceUUID, final ActivityState taskState) {
    Misc.checkArgsNotNull(taskState);
    // History only contains finished tasks
    if (taskState.equals(ActivityState.INITIAL)
        || taskState.equals(ActivityState.READY)
        || taskState.equals(ActivityState.EXECUTING)
        || taskState.equals(ActivityState.SUSPENDED)
    ) {
      return Collections.emptySet();
    }
    return super.getUserInstanceTasks(userId, instanceUUID, taskState);
  }

  @Override
  public Set> getUserTasks(final String userId, final ActivityState taskState) {
    Misc.checkArgsNotNull(taskState);
    // History only contains finished tasks
    if (taskState.equals(ActivityState.INITIAL)
        || taskState.equals(ActivityState.READY)
        || taskState.equals(ActivityState.EXECUTING)
        || taskState.equals(ActivityState.SUSPENDED)
    ) {
      return Collections.emptySet();
    }
    return super.getUserTasks(userId, taskState);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy