/*
* $Id: ProcessImpl.java,v 1.12 2004/12/09 12:34:44 kowap Exp $
*
* Copyright (c) 2004 Patric Fornasier, Pawel Kowalski
* Berne University of Applied Sciences
* School of Engineering and Information Technology
* All rights reserved.
*/
package bexee.model.process.impl;
import bexee.core.ProcessController;
import bexee.core.ProcessInstance;
import bexee.model.BPELElementVisitor;
import bexee.model.InvalidValueException;
import bexee.model.activity.Activity;
import bexee.model.activity.CompensationHandler;
import bexee.model.elements.CorrelationSets;
import bexee.model.elements.EventHandlers;
import bexee.model.elements.FaultHandlers;
import bexee.model.elements.PartnerLinks;
import bexee.model.elements.Partners;
import bexee.model.elements.Variables;
import bexee.model.process.Process;
import bexee.util.BooleanUtils;
import bexee.util.StringUtils;
/**
* A default implementation of a <code>Process</code>.
*
* @version $Revision: 1.12 $, $Date: 2004/12/09 12:34:44 $
* @author Patric Fornasier
* @author Pawel Kowalski
*/
public class ProcessImpl implements Process {
private String name;
private String targetNamespace;
private String queryLanguage;
private String expressionLanguage;
private boolean isSuppressJoinFailure;
private boolean isInstanceCompensable;
private boolean isAbstractProcess;
private PartnerLinks partnerLinks;
private Partners partners;
private Variables variables;
private CorrelationSets correlationSets;
private FaultHandlers faultHandlers;
private CompensationHandler compensationHandler;
private EventHandlers eventHandlers;
private Activity activity;
//**************************************************/
// c'tors
//**************************************************/
public ProcessImpl() {
this(null, null, null, null, null, null);
}
/**
* @param name2
* @param targetNamespace2
* @param queryLanguage2
* @param expressionLanguage2
* @param suppressJoinFailure2
* @param enableInstanceCompensation
*/
public ProcessImpl(String name, String targetNamespace,
String queryLanguage, String expressionLanguage,
String suppressJoinFailure, String enableInstanceCompensation) {
this.name = name;
this.targetNamespace = targetNamespace;
this.queryLanguage = getValidValueOrDefault(queryLanguage,
DEFAULT_QUERY_LANGUAGE);
this.expressionLanguage = getValidValueOrDefault(expressionLanguage,
DEFAULT_EXPRESSION_LANGUAGE);
this.isSuppressJoinFailure = getValidValueOrDefault(
suppressJoinFailure, DEFAULT_SUPPRESS_JOIN_FAILURE);
this.isInstanceCompensable = getValidValueOrDefault(
enableInstanceCompensation,
DEFAULT_ENABLE_INSTANCE_COMPENSATION);
}
//**************************************************/
// bexee.model.process.Process
//**************************************************/
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setTargetNamespace(String targetNamespace) {
this.targetNamespace = targetNamespace;
}
public String getTargetNamespace() {
return targetNamespace;
}
public void setQueryLanguage(String queryLanguage) {
this.queryLanguage = queryLanguage;
}
public String getQueryLanguage() {
return queryLanguage;
}
public void setExpressionLanguage(String expressionLanguage) {
this.expressionLanguage = expressionLanguage;
}
public String getExpressionLanguage() {
return expressionLanguage;
}
public void setSuppressJoinFailure(boolean suppressJoinFailure) {
this.isSuppressJoinFailure = suppressJoinFailure;
}
public boolean isSuppressJoinFailure() {
return isSuppressJoinFailure;
}
public void setEnableInstanceCompensation(boolean isInstanceCompensable) {
this.isInstanceCompensable = isInstanceCompensable;
}
public boolean isInstanceCompensable() {
return isInstanceCompensable;
}
public void setAbstractProcess(boolean isAbstractProcess) {
this.isAbstractProcess = isAbstractProcess;
}
public boolean isAbstractProcess() {
return isAbstractProcess;
}
public void setPartnerLinks(PartnerLinks partnerLinks) {
this.partnerLinks = partnerLinks;
}
public PartnerLinks getPartnerLinks() {
return partnerLinks;
}
public void setPartners(Partners partners) {
this.partners = partners;
}
public Partners getPartners() {
return partners;
}
public void setVariables(Variables variables) {
this.variables = variables;
}
public Variables getVariables() {
return variables;
}
public void setCorrelationSets(CorrelationSets correlationSets) {
this.correlationSets = correlationSets;
}
public CorrelationSets getCorrelationSets() {
return correlationSets;
}
public void setFaultHandlers(FaultHandlers faultHandlers) {
this.faultHandlers = faultHandlers;
}
public FaultHandlers getFaultHandlers() {
return faultHandlers;
}
public void setCompensationHandler(CompensationHandler compensationHandler) {
this.compensationHandler = compensationHandler;
}
public CompensationHandler getCompensationHandler() {
return compensationHandler;
}
public void setEventHandlers(EventHandlers eventHandlers) {
this.eventHandlers = eventHandlers;
}
public EventHandlers getEventHandlers() {
return eventHandlers;
}
public void activity(Activity activity) {
setActivity(activity);
}
public void setActivity(Activity activity) {
this.activity = activity;
}
public Activity getActivity() {
return activity;
}
//**************************************************/
// bexee.model.BPELElement
//**************************************************/
public void accept(ProcessController controller, ProcessInstance instance)
throws Exception {
controller.process(this, instance);
}
public void accept(BPELElementVisitor elementVisitor) {
elementVisitor.visit(this);
}
//**************************************************/
// helper methods
//**************************************************/
private String getValidValueOrDefault(String value, String defaultValue) {
if (StringUtils.isNullOrEmpty(value)) {
return defaultValue;
} else {
return value;
}
}
private boolean getValidValueOrDefault(String value, boolean defaultValue) {
try {
return BooleanUtils.strictYesNoToBoolean(value);
} catch (InvalidValueException e) {
return defaultValue;
}
}
}
|