/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.bpmn.model;
import java.util.ArrayList;
import java.util.List;
/**
* @author Tijs Rademakers
*/
public abstract class Activity extends FlowNode {
protected String defaultFlow;
protected boolean forCompensation;
protected MultiInstanceLoopCharacteristics loopCharacteristics;
protected IOSpecification ioSpecification;
protected List<DataAssociation> dataInputAssociations = new ArrayList<DataAssociation>();
protected List<DataAssociation> dataOutputAssociations = new ArrayList<DataAssociation>();
protected List<BoundaryEvent> boundaryEvents = new ArrayList<BoundaryEvent>();
protected String failedJobRetryTimeCycleValue;
protected List<MapExceptionEntry> mapExceptions = new ArrayList<MapExceptionEntry>();
public String getFailedJobRetryTimeCycleValue() {
return failedJobRetryTimeCycleValue;
}
public void setFailedJobRetryTimeCycleValue(String failedJobRetryTimeCycleValue) {
this.failedJobRetryTimeCycleValue = failedJobRetryTimeCycleValue;
}
public boolean isForCompensation() {
return forCompensation;
}
public void setForCompensation(boolean forCompensation) {
this.forCompensation = forCompensation;
}
public List<BoundaryEvent> getBoundaryEvents() {
return boundaryEvents;
}
public void setBoundaryEvents(List<BoundaryEvent> boundaryEvents) {
this.boundaryEvents = boundaryEvents;
}
public String getDefaultFlow() {
return defaultFlow;
}
public void setDefaultFlow(String defaultFlow) {
this.defaultFlow = defaultFlow;
}
public MultiInstanceLoopCharacteristics getLoopCharacteristics() {
return loopCharacteristics;
}
public void setLoopCharacteristics(MultiInstanceLoopCharacteristics loopCharacteristics) {
this.loopCharacteristics = loopCharacteristics;
}
public IOSpecification getIoSpecification() {
return ioSpecification;
}
public void setIoSpecification(IOSpecification ioSpecification) {
this.ioSpecification = ioSpecification;
}
public List<DataAssociation> getDataInputAssociations() {
return dataInputAssociations;
}
public void setDataInputAssociations(List<DataAssociation> dataInputAssociations) {
this.dataInputAssociations = dataInputAssociations;
}
public List<DataAssociation> getDataOutputAssociations() {
return dataOutputAssociations;
}
public void setDataOutputAssociations(List<DataAssociation> dataOutputAssociations) {
this.dataOutputAssociations = dataOutputAssociations;
}
public List<MapExceptionEntry> getMapExceptions() {
return mapExceptions;
}
public void setMapExceptions(List<MapExceptionEntry> mapExceptions) {
this.mapExceptions = mapExceptions;
}
public void setValues(Activity otherActivity) {
super.setValues(otherActivity);
setFailedJobRetryTimeCycleValue(otherActivity.getFailedJobRetryTimeCycleValue());
setDefaultFlow(otherActivity.getDefaultFlow());
setForCompensation(otherActivity.isForCompensation());
if (otherActivity.getLoopCharacteristics() != null) {
setLoopCharacteristics(otherActivity.getLoopCharacteristics().clone());
}
if (otherActivity.getIoSpecification() != null) {
setIoSpecification(otherActivity.getIoSpecification().clone());
}
dataInputAssociations = new ArrayList<DataAssociation>();
if (otherActivity.getDataInputAssociations() != null && !otherActivity.getDataInputAssociations().isEmpty()) {
for (DataAssociation association : otherActivity.getDataInputAssociations()) {
dataInputAssociations.add(association.clone());
}
}
dataOutputAssociations = new ArrayList<DataAssociation>();
if (otherActivity.getDataOutputAssociations() != null && !otherActivity.getDataOutputAssociations().isEmpty()) {
for (DataAssociation association : otherActivity.getDataOutputAssociations()) {
dataOutputAssociations.add(association.clone());
}
}
boundaryEvents.clear();
for (BoundaryEvent event : otherActivity.getBoundaryEvents()) {
boundaryEvents.add(event);
}
}
}