
org.ow2.bonita.facade.runtime.impl.ActivityInstanceImpl Maven / Gradle / Ivy
/**
* Copyright (C) 2007 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.runtime.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.ow2.bonita.facade.runtime.ActivityBody;
import org.ow2.bonita.facade.runtime.ActivityInstance;
import org.ow2.bonita.facade.runtime.VariableUpdate;
import org.ow2.bonita.facade.uuid.ActivityInstanceUUID;
import org.ow2.bonita.facade.uuid.PackageDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
/**
* @author Pierre Vigneras
* @date Mar 13, 2008
*/
public class ActivityInstanceImpl< T extends ActivityBody> extends RuntimeRecordImpl implements ActivityInstance {
private static final long serialVersionUID = -8515098234372896097L;
protected ActivityInstanceUUID uuid;
protected String activityId;
protected String iterationId;
protected String activityInstanceId;
protected Map variablesBeforeStarted;
protected List variableUpdates = new ArrayList();
protected T body;
protected ActivityInstanceImpl() { }
protected ActivityInstanceImpl(final ActivityInstanceUUID uuid, final String activityId,
final PackageDefinitionUUID packageUUID, final ProcessDefinitionUUID processUUID,
final ProcessInstanceUUID instanceUUID, final String iterationId, final String activityInstanceId) {
super(packageUUID, processUUID, instanceUUID);
this.uuid = uuid;
this.activityId = activityId;
this.iterationId = iterationId;
this.activityInstanceId = activityInstanceId;
}
@SuppressWarnings("unchecked")
public ActivityInstanceImpl(final ActivityInstance< ? extends ActivityBody > record) {
super(record);
this.uuid = new ActivityInstanceUUID(record.getUUID());
this.activityId = record.getActivityId();
this.body = (T) record.getBody().copy();
this.iterationId = record.getIterationId();
this.activityInstanceId = record.getActivityInstanceId();
this.variablesBeforeStarted = record.getVariablesBeforeStarted();
List list = record.getVariableUpdates();
if (list != null && !list.isEmpty()) {
this.variableUpdates = new ArrayList();
for (VariableUpdate varUpdate : list) {
this.variableUpdates.add(new VariableUpdateImpl(varUpdate));
}
}
}
public String toString() {
String st = this.getClass().getName()
+ "[uuid: " + getUUID()
+ ", activityId: " + getActivityId()
+ ", iterationId: " + getIterationId()
+ ", packageDefinitionUUID: " + getPackageDefinitionUUID()
+ ", processDefinitionUUID: " + getProcessDefinitionUUID()
+ ", processUUID: " + getProcessInstanceUUID()
+ ", variablesBeforeStarted: " + getVariablesBeforeStarted()
+ ", variableUpdates: " + getVariableUpdates();
if (getBody() != null) {
st += ", body: " + body.toString();
}
st += "]";
return st;
}
public Map getVariablesBeforeStarted() {
return variablesBeforeStarted;
}
public Object getVariableValueBeforeStarted(String variableId) {
return getVariablesBeforeStarted().get(variableId);
}
public T getBody() {
return this.body;
}
public String getIterationId() {
return this.iterationId;
}
public String getActivityInstanceId() {
return activityInstanceId;
}
public String getActivityId() {
return activityId;
}
public List getVariableUpdates() {
return variableUpdates;
}
public Map getLastKnownVariableValues() {
Map var = getVariablesBeforeStarted();
if (var != null) {
var = new HashMap(var);
} else {
var = new HashMap();
}
for (VariableUpdate varUp : getVariableUpdates()) {
var.put(varUp.getName(), varUp.getValue());
}
return var;
}
public ActivityInstanceUUID getUUID() {
return uuid;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy