
org.ow2.bonita.facade.impl.QueryDefinitionAPIImpl 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.facade.impl;
import java.util.HashSet;
import java.util.Set;
import org.ow2.bonita.facade.def.majorElement.ActivityDefinition;
import org.ow2.bonita.facade.def.majorElement.DataFieldDefinition;
import org.ow2.bonita.facade.def.majorElement.PackageDefinition;
import org.ow2.bonita.facade.def.majorElement.PackageFullDefinition;
import org.ow2.bonita.facade.def.majorElement.ParticipantDefinition;
import org.ow2.bonita.facade.def.majorElement.ProcessDefinition;
import org.ow2.bonita.facade.def.majorElement.ProcessFullDefinition;
import org.ow2.bonita.facade.def.majorElement.impl.ActivityDefinitionImpl;
import org.ow2.bonita.facade.def.majorElement.impl.DataFieldDefinitionImpl;
import org.ow2.bonita.facade.def.majorElement.impl.PackageDefinitionImpl;
import org.ow2.bonita.facade.def.majorElement.impl.ParticipantDefinitionImpl;
import org.ow2.bonita.facade.def.majorElement.impl.ProcessDefinitionImpl;
import org.ow2.bonita.facade.exception.ActivityDefNotFoundException;
import org.ow2.bonita.facade.exception.ActivityNotFoundException;
import org.ow2.bonita.facade.exception.DataFieldNotFoundException;
import org.ow2.bonita.facade.exception.PackageNotFoundException;
import org.ow2.bonita.facade.exception.ParticipantNotFoundException;
import org.ow2.bonita.facade.exception.ProcessNotFoundException;
import org.ow2.bonita.facade.internal.InternalQueryDefinitionAPI;
import org.ow2.bonita.facade.uuid.ActivityDefinitionUUID;
import org.ow2.bonita.facade.uuid.PackageDefinitionUUID;
import org.ow2.bonita.facade.uuid.ParticipantDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.util.EngineEnvTool;
public class QueryDefinitionAPIImpl implements InternalQueryDefinitionAPI {
protected QueryDefinitionAPIImpl() {
}
private Set getProcessCopy(final Set src) {
final Set result = new HashSet();
if (src != null) {
for (final ProcessDefinition p : src) {
result.add(new ProcessDefinitionImpl(p));
}
}
return result;
}
private Set getPackageCopy(final Set< PackageDefinition> src) {
final Set result = new HashSet();
if (src != null) {
for (final PackageDefinition p : src) {
result.add(new PackageDefinitionImpl(p));
}
}
return result;
}
private Set getActivityCopy(final Set src) {
final Set result = new HashSet();
if (src != null) {
for (final ActivityDefinition p : src) {
result.add(new ActivityDefinitionImpl(p));
}
}
return result;
}
private Set getParticipantCopy(final Set src) {
final Set result = new HashSet();
if (src != null) {
for (final ParticipantDefinition p : src) {
result.add(new ParticipantDefinitionImpl(p));
}
}
return result;
}
private Set getDataFieldCopy(final Set src) {
final Set result = new HashSet();
if (src != null) {
for (final DataFieldDefinition p : src) {
result.add(new DataFieldDefinitionImpl(p));
}
}
return result;
}
public PackageDefinition getLastPackage(final String packageId, final String queryList) throws PackageNotFoundException {
FacadeUtil.checkArgsNotNull(packageId);
final PackageFullDefinition last = EngineEnvTool.getAllQueriers(queryList).getLastDeployedPackage(packageId,
PackageDefinition.PackageState.DEPLOYED);
if (last == null) {
throw new PackageNotFoundException(packageId);
}
return new PackageDefinitionImpl(last);
}
public ProcessDefinition getLastProcess(final String packageId,
final String processId, final String queryList) throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processId);
final ProcessFullDefinition last = EngineEnvTool.getAllQueriers(queryList).getLastDeployedProcess(packageId, processId,
ProcessDefinition.ProcessState.DEPLOYED);
if (last == null) {
throw new ProcessNotFoundException(processId);
}
return new ProcessDefinitionImpl(last);
}
public PackageDefinition getPackage(final PackageDefinitionUUID packageUUID,
final String queryList) throws PackageNotFoundException {
FacadeUtil.checkArgsNotNull(packageUUID);
final PackageFullDefinition package1 = EngineEnvTool.getAllQueriers(queryList).getPackage(packageUUID);
if (package1 == null) {
throw new PackageNotFoundException(packageUUID);
}
return new PackageDefinitionImpl(package1);
}
public PackageDefinition getPackage(final String packageId, final String version,
final String queryList) throws PackageNotFoundException {
FacadeUtil.checkArgsNotNull(packageId, version);
final PackageFullDefinition package1 = EngineEnvTool.getAllQueriers(queryList).getPackage(packageId, version);
if (package1 == null) {
throw new PackageNotFoundException(packageId, version);
}
return new PackageDefinitionImpl(package1);
}
@SuppressWarnings("unchecked")
public Set getPackageProcesses(final PackageDefinitionUUID packageUUID,
final String queryList) throws PackageNotFoundException {
FacadeUtil.checkArgsNotNull(packageUUID);
final Set processes = EngineEnvTool.getAllQueriers(queryList).getPackageProcesses(packageUUID);
if (processes == null || processes.isEmpty()) {
// check that package exists (throws exception)
getPackage(packageUUID, queryList);
}
return getProcessCopy((Set)processes);
}
@SuppressWarnings("unchecked")
public Set getPackages(final String queryList) {
final Set packages = EngineEnvTool.getAllQueriers(queryList).getPackages();
return getPackageCopy((Set)packages);
}
@SuppressWarnings("unchecked")
public Set getPackages(final String packageId, final String queryList) {
FacadeUtil.checkArgsNotNull(packageId);
final Set packages = EngineEnvTool.getAllQueriers(queryList).getPackages(packageId);
return getPackageCopy((Set)packages);
}
public ProcessDefinition getProcess(final ProcessDefinitionUUID processUUID,
final String queryList) throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID);
final ProcessFullDefinition process = EngineEnvTool.getAllQueriers(queryList).getProcess(processUUID);
if (process == null) {
throw new ProcessNotFoundException(processUUID);
}
return new ProcessDefinitionImpl(process);
}
@SuppressWarnings("unchecked")
public Set getProcesses(final String processId, final String processVersion, final String queryList) {
FacadeUtil.checkArgsNotNull(processId, processVersion);
final Set processes = EngineEnvTool.getAllQueriers(queryList).getProcesses(processId, processVersion);
return getProcessCopy((Set)processes);
}
public ProcessDefinition getProcess(final String packageId,
final String processId, final String processVersion, final String queryList) throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(packageId, processId, processVersion);
final ProcessFullDefinition process = EngineEnvTool.getAllQueriers(queryList).getProcess(
packageId, processId, processVersion);
if (process == null) {
throw new ProcessNotFoundException(processId, processVersion);
}
return new ProcessDefinitionImpl(process);
}
public Set getProcessActivities(final ProcessDefinitionUUID processUUID,
final String queryList) throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID);
final ProcessFullDefinition process = EngineEnvTool.getAllQueriers(queryList).getProcess(processUUID);
if (process == null) {
throw new ProcessNotFoundException(processUUID);
}
final Set activities = process.getActivities();
return getActivityCopy(activities);
}
public ActivityDefinition getProcessActivity(final ProcessDefinitionUUID processUUID,
final String activityId, final String queryList)
throws ProcessNotFoundException, ActivityNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID, activityId);
final ProcessFullDefinition process = EngineEnvTool.getAllQueriers(queryList).getProcess(processUUID);
if (process == null) {
throw new ProcessNotFoundException(processUUID);
}
final Set activities = process.getActivities();
if (activities != null) {
for (final ActivityDefinition activityDefinition : activities) {
if (activityDefinition.getActivityId().equals(activityId)) {
return new ActivityDefinitionImpl(activityDefinition);
}
}
}
throw new ActivityNotFoundException(processUUID, activityId);
}
public ParticipantDefinition getProcessParticipant(final ProcessDefinitionUUID processUUID,
final String participantId, final String queryList)
throws ProcessNotFoundException, ParticipantNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID, participantId);
final Set participants = getProcessParticipants(processUUID, queryList);
if (participants != null) {
for (final ParticipantDefinition participant : participants) {
if (participant.getParticipantId().equals(participantId)) {
return new ParticipantDefinitionImpl(participant);
}
}
}
throw new ParticipantNotFoundException(participantId, processUUID);
}
public Set getProcessParticipants(
final ProcessDefinitionUUID processUUID, final String queryList) throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID);
final ProcessFullDefinition process = EngineEnvTool.getAllQueriers(queryList).getProcess(processUUID);
if (process == null) {
throw new ProcessNotFoundException(processUUID);
}
final Set participants = process.getParticipants();
return getParticipantCopy(participants);
}
@SuppressWarnings("unchecked")
public Set getProcesses(final String queryList) {
final Set processes = EngineEnvTool.getAllQueriers(queryList).getProcesses();
return getProcessCopy((Set)processes);
}
@SuppressWarnings("unchecked")
public Set getProcesses(final String processId, final String queryList) {
FacadeUtil.checkArgsNotNull(processId);
final Set processes = EngineEnvTool.getAllQueriers(queryList).getProcesses(processId);
return getProcessCopy((Set)processes);
}
@SuppressWarnings("unchecked")
public Set getPackageProcesses(
final String packageId, final String processId, final String queryList) {
FacadeUtil.checkArgsNotNull(packageId, processId);
final Set processes = EngineEnvTool.getAllQueriers(queryList).getPackageProcesses(
packageId, processId);
return getProcessCopy((Set)processes);
}
public ParticipantDefinitionUUID getProcessParticipantId(
final ProcessDefinitionUUID processUUID, final String participantName, final String queryList)
throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID, participantName);
final Set participants = getProcessParticipants(processUUID,queryList);
if (participants != null) {
for (final ParticipantDefinition participant : participants) {
if (participantName.equals(participant.getName())) {
return participant.getUUID();
}
}
}
return null;
}
public ActivityDefinitionUUID getProcessActivityId(final ProcessDefinitionUUID processUUID,
final String activityName, final String queryList)
throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processUUID, activityName);
final Set activities = getProcessActivities(processUUID, queryList);
if (activities != null) {
for (final ActivityDefinition activity : activities) {
if (activityName.equals(activity.getName())) {
return activity.getUUID();
}
}
}
return null;
}
@SuppressWarnings("unchecked")
public Set getPackages(final String packageId,
final PackageDefinition.PackageState packageState, final String queryList) {
FacadeUtil.checkArgsNotNull(packageId, packageState);
final Set packages = EngineEnvTool.getAllQueriers(queryList).getPackages(packageId, packageState);
return getPackageCopy((Set)packages);
}
@SuppressWarnings("unchecked")
public Set getPackages(
final PackageDefinition.PackageState packageState, final String queryList) {
FacadeUtil.checkArgsNotNull(packageState);
final Set packages = EngineEnvTool.getAllQueriers(queryList).getPackages(packageState);
return getPackageCopy((Set)packages);
}
@SuppressWarnings("unchecked")
public Set getProcesses(final String processId,
final ProcessDefinition.ProcessState processState, final String queryList) {
FacadeUtil.checkArgsNotNull(processId, processId);
final Set processes = EngineEnvTool.getAllQueriers(queryList).getProcesses(processId, processState);
return getProcessCopy((Set)processes);
}
@SuppressWarnings("unchecked")
public Set getProcesses(final ProcessDefinition.ProcessState processState, final String queryList) {
FacadeUtil.checkArgsNotNull(processState);
final Set processes = EngineEnvTool.getAllQueriers(queryList).getProcesses(processState);
return getProcessCopy((Set)processes);
}
public ProcessDefinition getPackageProcess(final PackageDefinitionUUID packageDefinitionUUID,
final String processId, final String queryList)
throws PackageNotFoundException, ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(packageDefinitionUUID, processId);
final ProcessDefinition process = EngineEnvTool.getAllQueriers(queryList).getPackageProcess(packageDefinitionUUID, processId);
if (process == null) {
if (EngineEnvTool.getAllQueriers(queryList).getPackage(packageDefinitionUUID) == null) {
throw new PackageNotFoundException(packageDefinitionUUID);
}
throw new ProcessNotFoundException(processId, packageDefinitionUUID);
}
return new ProcessDefinitionImpl(process);
}
public DataFieldDefinition getProcessDataField(final ProcessDefinitionUUID processDefinitionUUID,
final String dataFieldId, final String queryList)
throws ProcessNotFoundException, DataFieldNotFoundException {
FacadeUtil.checkArgsNotNull(processDefinitionUUID, dataFieldId);
final Set datafields = getProcessDataFields(processDefinitionUUID, queryList);
if (datafields != null) {
for (final DataFieldDefinition datefield : datafields) {
if (datefield.getDataFieldId().equals(dataFieldId)) {
return new DataFieldDefinitionImpl(datefield);
}
}
}
throw new DataFieldNotFoundException(dataFieldId, processDefinitionUUID);
}
public Set getProcessDataFields(final ProcessDefinitionUUID processDefinitionUUID, final String queryList)
throws ProcessNotFoundException {
FacadeUtil.checkArgsNotNull(processDefinitionUUID);
final ProcessFullDefinition process = EngineEnvTool.getAllQueriers(queryList).getProcess(processDefinitionUUID);
if (process == null) {
throw new ProcessNotFoundException(processDefinitionUUID);
}
final Set datafields = process.getDataFields();
return getDataFieldCopy(datafields);
}
public Set getActivityDataFields(final ActivityDefinitionUUID activityDefinitionUUID,
final String queryList) throws ActivityDefNotFoundException {
FacadeUtil.checkArgsNotNull(activityDefinitionUUID);
final ActivityDefinition activity = EngineEnvTool.getAllQueriers(queryList).getActivity(activityDefinitionUUID);
if (activity == null) {
throw new ActivityDefNotFoundException(activityDefinitionUUID);
}
final Set datafields = activity.getDataFields();
return getDataFieldCopy(datafields);
}
public DataFieldDefinition getActivityDataField(final ActivityDefinitionUUID activityDefinitionUUID,
final String dataFieldId, final String queryList)
throws ActivityDefNotFoundException, DataFieldNotFoundException {
FacadeUtil.checkArgsNotNull(activityDefinitionUUID);
final ActivityDefinition activity = EngineEnvTool.getAllQueriers(queryList).getActivity(activityDefinitionUUID);
if (activity == null) {
throw new ActivityDefNotFoundException(activityDefinitionUUID);
}
final Set datafields = activity.getDataFields();
if (datafields != null) {
for (final DataFieldDefinition datefield : datafields) {
if (datefield.getDataFieldId().equals(dataFieldId)) {
return new DataFieldDefinitionImpl(datefield);
}
}
}
throw new DataFieldNotFoundException(dataFieldId, activityDefinitionUUID);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy