
org.ow2.bonita.facade.runtime.impl.ActivityFullInstanceImpl 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.List;
import java.util.Map;
import org.ow2.bonita.pvm.internal.type.Variable;
import org.ow2.bonita.facade.runtime.ActivityBody;
import org.ow2.bonita.facade.runtime.ActivityFullInstance;
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;
import org.ow2.bonita.util.FullCopyTool;
import org.ow2.bonita.util.Misc;
/**
* @author Pierre Vigneras
* @date Jan 30, 2008
*/
public class ActivityFullInstanceImpl extends ActivityInstanceImpl implements ActivityFullInstance {
/**
*
*/
private static final long serialVersionUID = -1393058704447198447L;
protected long dbid;
protected Map persistableVariablesBeforeReady;
protected ActivityFullInstanceImpl() {
super();
}
public ActivityFullInstanceImpl(final ActivityInstanceUUID uuid, final String activityId,
final PackageDefinitionUUID packageUUID,
final ProcessDefinitionUUID processUUID,
final ProcessInstanceUUID instanceUUID,
final String iterationId,
final String activityInstanceId) {
super(uuid, activityId, packageUUID, processUUID, instanceUUID, iterationId, activityInstanceId);
}
@SuppressWarnings("unchecked")
public ActivityFullInstanceImpl(final ActivityFullInstance src) {
super(src);
this.persistableVariablesBeforeReady = FullCopyTool.createVariableMap(src.getVariablesBeforeStarted());
this.variablesBeforeStarted = null;
final List list = src.getVariableUpdates();
if (list != null && !list.isEmpty()) {
this.variableUpdates = new ArrayList();
for (final VariableUpdate varUpdate : list) {
this.variableUpdates.add(new VariableUpdateFullImpl(
varUpdate.getDate(),varUpdate.getUserId(), varUpdate.getName(), varUpdate.getValue()));
}
}
if (src.getBody() instanceof TaskFullInstanceImpl) {
this.body = (T) new TaskFullInstanceImpl((TaskFullInstanceImpl) src.getBody());
}
}
public void setVariablesBeforeReady(final Map variables) {
Misc.badStateIfNotNull(this.persistableVariablesBeforeReady, "variablesBeforeStarted can not be set twice!");
this.persistableVariablesBeforeReady = FullCopyTool.createVariableMap(variables);
}
public void addVariableUpdate(final VariableUpdate varUpdate) {
this.variableUpdates.add(varUpdate);
}
public void setBody(final T body) {
this.body = body;
}
@Override
public Map getVariablesBeforeStarted() {
return FullCopyTool.getVariableValues(this.persistableVariablesBeforeReady);
}
public Map getPersistableVariablesBeforeReady() {
return this.persistableVariablesBeforeReady;
}
@Override
public String getIterationId() {
return this.iterationId;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy