
org.bonitasoft.engine.service.ModelConvertor Maven / Gradle / Ivy
/**
* Copyright (C) 2011-2013 BonitaSoft S.A.
* BonitaSoft, 32 rue Gustave Eiffel - 38000 Grenoble
* 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.bonitasoft.engine.service;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.bonitasoft.engine.actor.mapping.model.SActor;
import org.bonitasoft.engine.actor.mapping.model.SActorMember;
import org.bonitasoft.engine.bpm.actor.ActorInstance;
import org.bonitasoft.engine.bpm.actor.ActorMember;
import org.bonitasoft.engine.bpm.actor.impl.ActorInstanceImpl;
import org.bonitasoft.engine.bpm.actor.impl.ActorMemberImpl;
import org.bonitasoft.engine.bpm.category.Category;
import org.bonitasoft.engine.bpm.category.impl.CategoryImpl;
import org.bonitasoft.engine.bpm.comment.ArchivedComment;
import org.bonitasoft.engine.bpm.comment.Comment;
import org.bonitasoft.engine.bpm.comment.impl.ArchivedCommentImpl;
import org.bonitasoft.engine.bpm.comment.impl.CommentImpl;
import org.bonitasoft.engine.bpm.connector.ArchivedConnectorInstance;
import org.bonitasoft.engine.bpm.connector.ConnectorDefinition;
import org.bonitasoft.engine.bpm.connector.ConnectorImplementationDescriptor;
import org.bonitasoft.engine.bpm.connector.ConnectorInstance;
import org.bonitasoft.engine.bpm.connector.ConnectorState;
import org.bonitasoft.engine.bpm.connector.impl.ArchivedConnectorInstanceImpl;
import org.bonitasoft.engine.bpm.connector.impl.ConnectorDefinitionImpl;
import org.bonitasoft.engine.bpm.connector.impl.ConnectorInstanceImpl;
import org.bonitasoft.engine.bpm.data.DataDefinition;
import org.bonitasoft.engine.bpm.data.DataInstance;
import org.bonitasoft.engine.bpm.data.impl.BlobDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.BooleanDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.DataDefinitionImpl;
import org.bonitasoft.engine.bpm.data.impl.DataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.DateDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.DoubleDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.FloatDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.IntegerDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.LongDataInstanceImpl;
import org.bonitasoft.engine.bpm.data.impl.ShortTextDataInstanceImpl;
import org.bonitasoft.engine.bpm.document.ArchivedDocument;
import org.bonitasoft.engine.bpm.document.Document;
import org.bonitasoft.engine.bpm.document.impl.ArchivedDocumentImpl;
import org.bonitasoft.engine.bpm.document.impl.DocumentImpl;
import org.bonitasoft.engine.bpm.flownode.ActivityInstance;
import org.bonitasoft.engine.bpm.flownode.ActivityStates;
import org.bonitasoft.engine.bpm.flownode.ArchivedActivityInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedAutomaticTaskInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedCallActivityInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedFlowElementInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedFlowNodeInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedGatewayInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedHumanTaskInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedLoopActivityInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedManualTaskInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedReceiveTaskInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedSendTaskInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedSubProcessActivityInstance;
import org.bonitasoft.engine.bpm.flownode.ArchivedUserTaskInstance;
import org.bonitasoft.engine.bpm.flownode.BPMEventType;
import org.bonitasoft.engine.bpm.flownode.EventInstance;
import org.bonitasoft.engine.bpm.flownode.FlowNodeInstance;
import org.bonitasoft.engine.bpm.flownode.GatewayInstance;
import org.bonitasoft.engine.bpm.flownode.HumanTaskInstance;
import org.bonitasoft.engine.bpm.flownode.ManualTaskInstance;
import org.bonitasoft.engine.bpm.flownode.StateCategory;
import org.bonitasoft.engine.bpm.flownode.TaskPriority;
import org.bonitasoft.engine.bpm.flownode.UserTaskInstance;
import org.bonitasoft.engine.bpm.flownode.WaitingEvent;
import org.bonitasoft.engine.bpm.flownode.impl.ActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedAutomaticTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedCallActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedFlowNodeInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedGatewayInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedHumanTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedLoopActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedManualTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedMultiInstanceActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedReceiveTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedSendTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedSubProcessActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ArchivedUserTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.AutomaticTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.BoundaryEventInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.CallActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.EndEventInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.EventInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.FlowNodeInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.GatewayInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.HumanTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.IntermediateCatchEventInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.IntermediateThrowEventInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.LoopActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ManualTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.MultiInstanceActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.ReceiveTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.SendTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.StartEventInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.SubProcessActivityInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.UserTaskInstanceImpl;
import org.bonitasoft.engine.bpm.flownode.impl.WaitingErrorEventImpl;
import org.bonitasoft.engine.bpm.flownode.impl.WaitingMessageEventImpl;
import org.bonitasoft.engine.bpm.flownode.impl.WaitingSignalEventImpl;
import org.bonitasoft.engine.bpm.process.ActivationState;
import org.bonitasoft.engine.bpm.process.ArchivedProcessInstance;
import org.bonitasoft.engine.bpm.process.ConfigurationState;
import org.bonitasoft.engine.bpm.process.ProcessDefinition;
import org.bonitasoft.engine.bpm.process.ProcessDeploymentInfo;
import org.bonitasoft.engine.bpm.process.ProcessInstance;
import org.bonitasoft.engine.bpm.process.ProcessInstanceState;
import org.bonitasoft.engine.bpm.process.impl.ArchivedProcessInstanceImpl;
import org.bonitasoft.engine.bpm.process.impl.ProcessDefinitionImpl;
import org.bonitasoft.engine.bpm.process.impl.ProcessDeploymentInfoImpl;
import org.bonitasoft.engine.bpm.process.impl.ProcessInstanceBuilder;
import org.bonitasoft.engine.bpm.supervisor.ProcessSupervisor;
import org.bonitasoft.engine.bpm.supervisor.ProcessSupervisorBuilder;
import org.bonitasoft.engine.command.CommandDescriptor;
import org.bonitasoft.engine.command.CommandDescriptorImpl;
import org.bonitasoft.engine.command.model.SCommand;
import org.bonitasoft.engine.core.category.model.SCategory;
import org.bonitasoft.engine.core.connector.parser.SConnectorImplementationDescriptor;
import org.bonitasoft.engine.core.operation.model.SLeftOperand;
import org.bonitasoft.engine.core.operation.model.SOperation;
import org.bonitasoft.engine.core.operation.model.SOperatorType;
import org.bonitasoft.engine.core.operation.model.builder.SOperationBuilders;
import org.bonitasoft.engine.core.process.comment.model.SComment;
import org.bonitasoft.engine.core.process.comment.model.archive.SAComment;
import org.bonitasoft.engine.core.process.definition.ProcessDefinitionService;
import org.bonitasoft.engine.core.process.definition.SProcessDefinitionNotFoundException;
import org.bonitasoft.engine.core.process.definition.exception.SProcessDefinitionReadException;
import org.bonitasoft.engine.core.process.definition.model.SConnectorDefinition;
import org.bonitasoft.engine.core.process.definition.model.SProcessDefinition;
import org.bonitasoft.engine.core.process.definition.model.SProcessDefinitionDeployInfo;
import org.bonitasoft.engine.core.process.document.model.SAProcessDocument;
import org.bonitasoft.engine.core.process.document.model.SProcessDocument;
import org.bonitasoft.engine.core.process.instance.model.SActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.SAutomaticTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.SCallActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.SConnectorInstance;
import org.bonitasoft.engine.core.process.instance.model.SFlowNodeInstance;
import org.bonitasoft.engine.core.process.instance.model.SGatewayInstance;
import org.bonitasoft.engine.core.process.instance.model.SHumanTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.SLoopActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.SManualTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.SMultiInstanceActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.SProcessInstance;
import org.bonitasoft.engine.core.process.instance.model.SReceiveTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.SSendTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.SSubProcessActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.SUserTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAAutomaticTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SACallActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAConnectorInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAFlowElementInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAFlowNodeInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAGatewayInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAHumanTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SALoopActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAManualTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAMultiInstanceActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAProcessInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAReceiveTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SASendTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SASubProcessActivityInstance;
import org.bonitasoft.engine.core.process.instance.model.archive.SAUserTaskInstance;
import org.bonitasoft.engine.core.process.instance.model.event.SBoundaryEventInstance;
import org.bonitasoft.engine.core.process.instance.model.event.SEventInstance;
import org.bonitasoft.engine.core.process.instance.model.event.handling.SWaitingErrorEvent;
import org.bonitasoft.engine.core.process.instance.model.event.handling.SWaitingEvent;
import org.bonitasoft.engine.core.process.instance.model.event.handling.SWaitingMessageEvent;
import org.bonitasoft.engine.core.process.instance.model.event.handling.SWaitingSignalEvent;
import org.bonitasoft.engine.core.reporting.SReport;
import org.bonitasoft.engine.data.definition.model.SDataDefinition;
import org.bonitasoft.engine.data.instance.model.SDataInstance;
import org.bonitasoft.engine.exception.BonitaHomeConfigurationException;
import org.bonitasoft.engine.exception.BonitaHomeNotSetException;
import org.bonitasoft.engine.exception.UnknownElementType;
import org.bonitasoft.engine.execution.state.FlowNodeStateManager;
import org.bonitasoft.engine.expression.Expression;
import org.bonitasoft.engine.expression.exception.SInvalidExpressionException;
import org.bonitasoft.engine.expression.impl.ExpressionImpl;
import org.bonitasoft.engine.expression.model.SExpression;
import org.bonitasoft.engine.expression.model.builder.SExpressionBuilder;
import org.bonitasoft.engine.expression.model.builder.SExpressionBuilders;
import org.bonitasoft.engine.identity.ContactData;
import org.bonitasoft.engine.identity.ContactDataCreator.ContactDataField;
import org.bonitasoft.engine.identity.ExportedUser;
import org.bonitasoft.engine.identity.Group;
import org.bonitasoft.engine.identity.GroupCreator;
import org.bonitasoft.engine.identity.GroupCreator.GroupField;
import org.bonitasoft.engine.identity.Role;
import org.bonitasoft.engine.identity.RoleCreator;
import org.bonitasoft.engine.identity.RoleCreator.RoleField;
import org.bonitasoft.engine.identity.User;
import org.bonitasoft.engine.identity.UserCreator;
import org.bonitasoft.engine.identity.UserCreator.UserField;
import org.bonitasoft.engine.identity.UserMembership;
import org.bonitasoft.engine.identity.impl.ContactDataImpl;
import org.bonitasoft.engine.identity.impl.GroupImpl;
import org.bonitasoft.engine.identity.impl.RoleImpl;
import org.bonitasoft.engine.identity.impl.UserImpl;
import org.bonitasoft.engine.identity.impl.UserMembershipImpl;
import org.bonitasoft.engine.identity.model.SContactInfo;
import org.bonitasoft.engine.identity.model.SGroup;
import org.bonitasoft.engine.identity.model.SRole;
import org.bonitasoft.engine.identity.model.SUser;
import org.bonitasoft.engine.identity.model.SUserMembership;
import org.bonitasoft.engine.identity.model.builder.GroupBuilder;
import org.bonitasoft.engine.identity.model.builder.IdentityModelBuilder;
import org.bonitasoft.engine.identity.model.builder.RoleBuilder;
import org.bonitasoft.engine.identity.model.builder.SContactInfoBuilder;
import org.bonitasoft.engine.identity.model.builder.SUserBuilder;
import org.bonitasoft.engine.operation.LeftOperand;
import org.bonitasoft.engine.operation.Operation;
import org.bonitasoft.engine.operation.OperatorType;
import org.bonitasoft.engine.operation.impl.LeftOperandImpl;
import org.bonitasoft.engine.operation.impl.OperationImpl;
import org.bonitasoft.engine.platform.Platform;
import org.bonitasoft.engine.platform.command.model.SPlatformCommand;
import org.bonitasoft.engine.platform.impl.PlatformImpl;
import org.bonitasoft.engine.platform.model.SPlatform;
import org.bonitasoft.engine.profile.Profile;
import org.bonitasoft.engine.profile.ProfileEntry;
import org.bonitasoft.engine.profile.ProfileMember;
import org.bonitasoft.engine.profile.ProfileMemberCreator;
import org.bonitasoft.engine.profile.ProfileMemberCreator.ProfileMemberField;
import org.bonitasoft.engine.profile.builder.SProfileMemberBuilder;
import org.bonitasoft.engine.profile.impl.ProfileEntryImpl;
import org.bonitasoft.engine.profile.impl.ProfileImpl;
import org.bonitasoft.engine.profile.impl.ProfileMemberImpl;
import org.bonitasoft.engine.profile.model.SProfile;
import org.bonitasoft.engine.profile.model.SProfileEntry;
import org.bonitasoft.engine.profile.model.SProfileMember;
import org.bonitasoft.engine.reporting.Report;
import org.bonitasoft.engine.reporting.impl.ReportImpl;
import org.bonitasoft.engine.service.impl.ServiceAccessorFactory;
import org.bonitasoft.engine.session.APISession;
import org.bonitasoft.engine.session.SSessionNotFoundException;
import org.bonitasoft.engine.session.impl.APISessionImpl;
import org.bonitasoft.engine.session.model.SSession;
import org.bonitasoft.engine.sessionaccessor.SessionAccessor;
import org.bonitasoft.engine.sessionaccessor.SessionIdNotSetException;
import org.bonitasoft.engine.supervisor.mapping.model.SProcessSupervisor;
/**
* @author Matthieu Chaffotte
* @author Yanyan Liu
* @author Celine Souchet
*/
public class ModelConvertor {
public static APISession toAPISession(final SSession session, final String tenant) {
final long tenantId = session.getTenantId();
final long id = session.getId();
final long userId = session.getUserId();
final String userName = session.getUserName();
final Date creationDate = session.getCreationDate();
final long duration = session.getDuration();
final boolean technicalUser = session.isTechnicalUser();
final APISessionImpl apiSession = new APISessionImpl(id, creationDate, duration, userName, userId, tenant, tenantId);
apiSession.setTechnicalUser(technicalUser);
return apiSession;
}
public static Platform toPlatform(final SPlatform sPlatform) {
return new PlatformImpl(sPlatform.getVersion(), sPlatform.getPreviousVersion(), sPlatform.getInitialVersion(), sPlatform.getCreatedBy(),
sPlatform.getCreated());
}
public static List toActivityInstances(final List sActivities, final FlowNodeStateManager flowNodeStateManager) {
final List activityInstances = new ArrayList();
for (final SActivityInstance sActivity : sActivities) {
final ActivityInstance activityInstance = toActivityInstance(sActivity, flowNodeStateManager);
activityInstances.add(activityInstance);
}
return activityInstances;
}
public static List toFlowNodeInstances(final List sFlowNodes, final FlowNodeStateManager flowNodeStateManager) {
final List flowNodeInstances = new ArrayList();
for (final SFlowNodeInstance sFlowNode : sFlowNodes) {
final FlowNodeInstance flowNodeInstance = toFlowNodeInstance(sFlowNode, flowNodeStateManager);
flowNodeInstances.add(flowNodeInstance);
}
return flowNodeInstances;
}
private static void updateFlowNode(final FlowNodeInstanceImpl flowNode, final SFlowNodeInstance sflowNode, final String state) {
flowNode.setId(sflowNode.getId());
flowNode.setState(state);
flowNode.setParentContainerId(sflowNode.getParentContainerId());
flowNode.setRootContainerId(sflowNode.getRootContainerId());
flowNode.setProcessDefinitionId(sflowNode.getLogicalGroup(0));
flowNode.setParentProcessInstanceId(sflowNode.getLogicalGroup(3));
flowNode.setDisplayName(sflowNode.getDisplayName());
flowNode.setDisplayDescription(sflowNode.getDisplayDescription());
flowNode.setDescription(sflowNode.getDescription());
flowNode.setExecutedBy(sflowNode.getExecutedBy());
flowNode.setStateCategory(StateCategory.valueOf(sflowNode.getStateCategory().name()));
}
public static ActivityInstance toActivityInstance(final SActivityInstance sActivity, final FlowNodeStateManager flowNodeStateManager) {
switch (sActivity.getType()) {
case AUTOMATIC_TASK:
return toAutomaticTask((SAutomaticTaskInstance) sActivity, flowNodeStateManager);
case MANUAL_TASK:
return toManualTask((SManualTaskInstance) sActivity, flowNodeStateManager);
case USER_TASK:
return toUserTaskInstance((SUserTaskInstance) sActivity, flowNodeStateManager);
case RECEIVE_TASK:
return toReceiveTaskInstance((SReceiveTaskInstance) sActivity, flowNodeStateManager);
case SEND_TASK:
return toSendTaskInstance((SSendTaskInstance) sActivity, flowNodeStateManager);
case CALL_ACTIVITY:
return toCallActivityInstance((SCallActivityInstance) sActivity, flowNodeStateManager);
case SUB_PROCESS:
return toSubProcessActivityInstance((SSubProcessActivityInstance) sActivity, flowNodeStateManager);
case LOOP_ACTIVITY:
return toLoopActivityInstance((SLoopActivityInstance) sActivity, flowNodeStateManager);
case MULTI_INSTANCE_ACTIVITY:
return toMultiInstanceActivityInstance((SMultiInstanceActivityInstance) sActivity, flowNodeStateManager);
default:
throw new UnknownElementType(sActivity.getType().name());
}
}
public static FlowNodeInstance toFlowNodeInstance(final SFlowNodeInstance sFlowNode, final FlowNodeStateManager flowNodeStateManager) {
switch (sFlowNode.getType()) {
case START_EVENT:
return toEventInstance((SEventInstance) sFlowNode, flowNodeStateManager);
case INTERMEDIATE_CATCH_EVENT:
return toEventInstance((SEventInstance) sFlowNode, flowNodeStateManager);
case BOUNDARY_EVENT:
return toEventInstance((SEventInstance) sFlowNode, flowNodeStateManager);
case INTERMEDIATE_THROW_EVENT:
return toEventInstance((SEventInstance) sFlowNode, flowNodeStateManager);
case END_EVENT:
return toEventInstance((SEventInstance) sFlowNode, flowNodeStateManager);
case GATEWAY:
return toGatewayInstance((SGatewayInstance) sFlowNode, flowNodeStateManager);
default:
if (sFlowNode instanceof SActivityInstance) {
return toActivityInstance((SActivityInstance) sFlowNode, flowNodeStateManager);
}
throw new UnknownElementType(sFlowNode.getType().name());
}
}
public static ActivityInstance toAutomaticTask(final SAutomaticTaskInstance sActivity, final FlowNodeStateManager flowNodeStateManager) {
final AutomaticTaskInstanceImpl automaticTaskInstance = new AutomaticTaskInstanceImpl(sActivity.getName(), sActivity.getFlowNodeDefinitionId());
updateActivityInstance(sActivity, flowNodeStateManager, automaticTaskInstance);
return automaticTaskInstance;
}
public static ActivityInstance toCallActivityInstance(final SCallActivityInstance sActivity, final FlowNodeStateManager flowNodeStateManager) {
final CallActivityInstanceImpl callActivityInstance = new CallActivityInstanceImpl(sActivity.getName(), sActivity.getFlowNodeDefinitionId());
updateActivityInstance(sActivity, flowNodeStateManager, callActivityInstance);
return callActivityInstance;
}
public static ActivityInstance toCallActivityInstance(final SSubProcessActivityInstance sActivity, final FlowNodeStateManager flowNodeStateManager) {
final SubProcessActivityInstanceImpl subProcActivityInstance = new SubProcessActivityInstanceImpl(sActivity.getName(),
sActivity.getFlowNodeDefinitionId(), sActivity.isTriggeredByEvent());
updateActivityInstance(sActivity, flowNodeStateManager, subProcActivityInstance);
return subProcActivityInstance;
}
public static ActivityInstance toSubProcessActivityInstance(final SSubProcessActivityInstance sActivity, final FlowNodeStateManager flowNodeStateManager) {
final SubProcessActivityInstanceImpl subProcessActivityInstance = new SubProcessActivityInstanceImpl(sActivity.getName(),
sActivity.getFlowNodeDefinitionId(), sActivity.isTriggeredByEvent());
updateActivityInstance(sActivity, flowNodeStateManager, subProcessActivityInstance);
return subProcessActivityInstance;
}
public static ActivityInstance toLoopActivityInstance(final SLoopActivityInstance sActivity, final FlowNodeStateManager flowNodeStateManager) {
final LoopActivityInstanceImpl loopActivityInstance = new LoopActivityInstanceImpl(sActivity.getName(), sActivity.getFlowNodeDefinitionId(),
sActivity.getLoopCounter());
updateActivityInstance(sActivity, flowNodeStateManager, loopActivityInstance);
return loopActivityInstance;
}
public static ActivityInstance toMultiInstanceActivityInstance(final SMultiInstanceActivityInstance sActivity,
final FlowNodeStateManager flowNodeStateManager) {
final MultiInstanceActivityInstanceImpl loopActivityInstance = new MultiInstanceActivityInstanceImpl(sActivity.getName(),
sActivity.getFlowNodeDefinitionId(), sActivity.isSequential(), sActivity.getLoopDataInputRef(), sActivity.getLoopDataOutputRef(),
sActivity.getDataInputItemRef(), sActivity.getDataOutputItemRef(), sActivity.getNumberOfActiveInstances(),
sActivity.getNumberOfCompletedInstances(), sActivity.getNumberOfTerminatedInstances(), sActivity.getLoopCardinality());
updateActivityInstance(sActivity, flowNodeStateManager, loopActivityInstance);
return loopActivityInstance;
}
public static GatewayInstance toGatewayInstance(final SGatewayInstance sGatewayInstance, final FlowNodeStateManager flowNodeStateManager) {
final GatewayInstanceImpl gatewayInstance = new GatewayInstanceImpl(sGatewayInstance.getName(), sGatewayInstance.getFlowNodeDefinitionId());
final String state = flowNodeStateManager.getState(sGatewayInstance.getStateId()).getName();
updateFlowNode(gatewayInstance, sGatewayInstance, state);
return gatewayInstance;
}
public static ArchivedGatewayInstance toArchivedGatewayInstance(final SAGatewayInstance saGatewayInstance, final FlowNodeStateManager flowNodeStateManager) {
final String name = saGatewayInstance.getName();
final ArchivedGatewayInstanceImpl aGatewayInstance = new ArchivedGatewayInstanceImpl(name);
final String state = flowNodeStateManager.getState(saGatewayInstance.getStateId()).getName();
updateArchivedFlowNodeInstance(aGatewayInstance, saGatewayInstance, state);
return aGatewayInstance;
}
private static void updateActivityInstance(final SActivityInstance sActivity, final FlowNodeStateManager flowNodeStateManager,
final ActivityInstanceImpl activity) {
final String state = flowNodeStateManager.getState(sActivity.getStateId()).getName();
updateFlowNode(activity, sActivity, state);
activity.setReachedSateDate(new Date(sActivity.getReachedStateDate()));
activity.setLastUpdateDate(new Date(sActivity.getLastUpdateDate()));
}
public static List toUserTaskInstances(final List sUserTasks, final FlowNodeStateManager flowNodeStateManager) {
final List userTaskInstances = new ArrayList();
for (final SUserTaskInstance sUserTask : sUserTasks) {
final UserTaskInstance userTask = toUserTaskInstance(sUserTask, flowNodeStateManager);
userTaskInstances.add(userTask);
}
return userTaskInstances;
}
public static UserTaskInstance toUserTaskInstance(final SUserTaskInstance sUserTask, final FlowNodeStateManager flowNodeStateManager) {
final UserTaskInstanceImpl userTaskInstance = new UserTaskInstanceImpl(sUserTask.getName(), sUserTask.getFlowNodeDefinitionId(), sUserTask.getActorId());
updateHumanTaskInstance(sUserTask, flowNodeStateManager, userTaskInstance);
return userTaskInstance;
}
public static ActivityInstance toReceiveTaskInstance(final SReceiveTaskInstance sReceiveTask, final FlowNodeStateManager flowNodeStateManager) {
final ReceiveTaskInstanceImpl receiveTaskInstance = new ReceiveTaskInstanceImpl(sReceiveTask.getName(), sReceiveTask.getFlowNodeDefinitionId());
updateActivityInstance(sReceiveTask, flowNodeStateManager, receiveTaskInstance);
return receiveTaskInstance;
}
public static ActivityInstance toSendTaskInstance(final SSendTaskInstance sSendTask, final FlowNodeStateManager flowNodeStateManager) {
final SendTaskInstanceImpl sendTask = new SendTaskInstanceImpl(sSendTask.getName(), sSendTask.getFlowNodeDefinitionId());
updateActivityInstance(sSendTask, flowNodeStateManager, sendTask);
return sendTask;
}
private static void updateHumanTaskInstance(final SHumanTaskInstance sHumanTask, final FlowNodeStateManager flowNodeStateManager,
final HumanTaskInstanceImpl humanTaskInstance) {
updateActivityInstance(sHumanTask, flowNodeStateManager, humanTaskInstance);
humanTaskInstance.setAssigneeId(sHumanTask.getAssigneeId());
final long claimedDate = sHumanTask.getClaimedDate();
if (claimedDate > 0) {
humanTaskInstance.setClaimedDate(new Date(claimedDate));
}
humanTaskInstance.setPriority(TaskPriority.valueOf(sHumanTask.getPriority().name()));
final long expectedEndDate = sHumanTask.getExpectedEndDate();
if (expectedEndDate > 0) {
humanTaskInstance.setExpectedEndDate(new Date(expectedEndDate));
}
}
public static List toHumanTaskInstances(final List extends SHumanTaskInstance> sHumanTasks,
final FlowNodeStateManager flowNodeStateManager) {
final List humanTaskInstances = new ArrayList(sHumanTasks.size());
for (final SHumanTaskInstance sUserTask : sHumanTasks) {
final HumanTaskInstance userTask = toHumanTaskInstance(sUserTask, flowNodeStateManager);
humanTaskInstances.add(userTask);
}
return humanTaskInstances;
}
public static HumanTaskInstance toHumanTaskInstance(final SHumanTaskInstance sHumanTask, final FlowNodeStateManager flowNodeStateManager) {
switch (sHumanTask.getType()) {
case USER_TASK:
return toUserTaskInstance((SUserTaskInstance) sHumanTask, flowNodeStateManager);
case MANUAL_TASK:
return toManualTask((SManualTaskInstance) sHumanTask, flowNodeStateManager);
default:
throw new UnknownElementType(sHumanTask.getType().name());
}
}
public static ManualTaskInstance toManualTask(final SManualTaskInstance sHumanTask, final FlowNodeStateManager flowNodeStateManager) {
final ManualTaskInstanceImpl manualTaskInstance = new ManualTaskInstanceImpl(sHumanTask.getName(), sHumanTask.getFlowNodeDefinitionId(),
sHumanTask.getActorId());
updateHumanTaskInstance(sHumanTask, flowNodeStateManager, manualTaskInstance);
return manualTaskInstance;
}
public static ProcessDefinition toProcessDefinition(final SProcessDefinition sDefinition) {
final ProcessDefinitionImpl processDefinitionImpl = new ProcessDefinitionImpl(sDefinition.getName(), sDefinition.getVersion());
processDefinitionImpl.setId(sDefinition.getId());
processDefinitionImpl.setDescription(sDefinition.getDescription());
return processDefinitionImpl;
}
public static List toProcessInstances(final List sProcessInstances,
final ProcessDefinitionService processDefinitionService) {
final List clientProcessInstances = new ArrayList();
final HashMap processDefinitions = new HashMap();
if (sProcessInstances != null) {
for (final SProcessInstance sProcessInstance : sProcessInstances) {
SProcessDefinition sProcessDefinition = processDefinitions.get(sProcessInstance.getProcessDefinitionId());
if (sProcessDefinition == null) {
try {
sProcessDefinition = processDefinitionService.getProcessDefinition(sProcessInstance.getProcessDefinitionId());
processDefinitions.put(sProcessDefinition.getId(), sProcessDefinition);
} catch (final SProcessDefinitionNotFoundException e) {
// ignore...
} catch (final SProcessDefinitionReadException e) {
// ignore...
}
}
clientProcessInstances.add(toProcessInstance(sProcessDefinition, sProcessInstance));
}
}
return Collections.unmodifiableList(clientProcessInstances);
}
public static ProcessInstance toProcessInstance(final SProcessDefinition definition, final SProcessInstance sInstance) {
final ProcessInstanceBuilder clientProcessInstanceBuilder = new ProcessInstanceBuilder().createNewInstance(sInstance.getName());
clientProcessInstanceBuilder.setId(sInstance.getId());
clientProcessInstanceBuilder.setState(ProcessInstanceState.getFromId(sInstance.getStateId()).name().toLowerCase());
if (sInstance.getStartDate() > 0) {
clientProcessInstanceBuilder.setStartDate(sInstance.getStartDate());
}
clientProcessInstanceBuilder.setStartedBy(sInstance.getStartedBy());
if (sInstance.getEndDate() > 0) {
clientProcessInstanceBuilder.setEndDate(sInstance.getEndDate());
}
clientProcessInstanceBuilder.setLastUpdate(sInstance.getLastUpdate());
clientProcessInstanceBuilder.setProcessDefinitionId(sInstance.getProcessDefinitionId());
clientProcessInstanceBuilder.setDescription(sInstance.getDescription());
clientProcessInstanceBuilder.setRootProcessInstanceId(sInstance.getRootProcessInstanceId());
clientProcessInstanceBuilder.setCallerId(sInstance.getCallerId());
if (definition != null) {
for (int i = 1; i <= 5; i++) {
clientProcessInstanceBuilder.setStringIndexLabel(i, definition.getStringIndexLabel(i));
}
}
clientProcessInstanceBuilder.setStringIndex1(sInstance.getStringIndex1());
clientProcessInstanceBuilder.setStringIndex2(sInstance.getStringIndex2());
clientProcessInstanceBuilder.setStringIndex3(sInstance.getStringIndex3());
clientProcessInstanceBuilder.setStringIndex4(sInstance.getStringIndex4());
clientProcessInstanceBuilder.setStringIndex5(sInstance.getStringIndex5());
return clientProcessInstanceBuilder.done();
}
public static List toProcessDeploymentInfo(final List processDefinitionDIs) {
final List deploymentInfos = new ArrayList();
for (final SProcessDefinitionDeployInfo processDefinitionDI : processDefinitionDIs) {
final ProcessDeploymentInfo deploymentInfo = toProcessDeploymentInfo(processDefinitionDI);
deploymentInfos.add(deploymentInfo);
}
return deploymentInfos;
}
public static ProcessDeploymentInfo toProcessDeploymentInfo(final SProcessDefinitionDeployInfo processDefinitionDI) {
return new ProcessDeploymentInfoImpl(processDefinitionDI.getId(), processDefinitionDI.getProcessId(), processDefinitionDI.getName(),
processDefinitionDI.getVersion(), processDefinitionDI.getDescription(), new Date(processDefinitionDI.getDeploymentDate()),
processDefinitionDI.getDeployedBy(), ActivationState.valueOf(processDefinitionDI.getActivationState()),
ConfigurationState.valueOf(processDefinitionDI.getConfigurationState()), processDefinitionDI.getDisplayName(), new Date(
processDefinitionDI.getLastUpdateDate()), processDefinitionDI.getIconPath(), processDefinitionDI.getDisplayDescription());
}
public static ArchivedUserTaskInstance toArchivedUserTaskInstance(final SAUserTaskInstance sInstance, final FlowNodeStateManager flowNodeStateManager) {
final ArchivedUserTaskInstanceImpl archivedUserTaskInstanceImpl = new ArchivedUserTaskInstanceImpl(sInstance.getName());
updateArchivedHumanTaskInstance(archivedUserTaskInstanceImpl, flowNodeStateManager, sInstance);
return archivedUserTaskInstanceImpl;
}
public static ArchivedReceiveTaskInstance toArchivedReceiveTaskInstance(final SAReceiveTaskInstance sInstance,
final FlowNodeStateManager flowNodeStateManager) {
final ArchivedReceiveTaskInstanceImpl archivedReceiveTaskInstanceImpl = new ArchivedReceiveTaskInstanceImpl(sInstance.getName());
updateArchivedReceiveTaskInstance(archivedReceiveTaskInstanceImpl, flowNodeStateManager, sInstance);
return archivedReceiveTaskInstanceImpl;
}
public static ArchivedSendTaskInstance toArchivedSendTaskInstance(final SASendTaskInstance sInstance, final FlowNodeStateManager flowNodeStateManager) {
final ArchivedSendTaskInstanceImpl archivedSendTaskInstanceImpl = new ArchivedSendTaskInstanceImpl(sInstance.getName());
updateArchivedSendTaskInstance(archivedSendTaskInstanceImpl, flowNodeStateManager, sInstance);
return archivedSendTaskInstanceImpl;
}
/**
* Update the fields of ArchivedHumanTaskInstance from a SAHumanTaskInstance
*/
private static void updateArchivedHumanTaskInstance(final ArchivedHumanTaskInstanceImpl activity, final FlowNodeStateManager flowNodeStateManager,
final SAHumanTaskInstance saHumanTask) {
updateArchivedActivityInstance(activity, flowNodeStateManager, saHumanTask);
activity.setAssigneeId(saHumanTask.getAssigneeId());
activity.setPriority(TaskPriority.valueOf(saHumanTask.getPriority().name()));
activity.setActorId(saHumanTask.getActorId());
if (saHumanTask.getExpectedEndDate() > 0) {
activity.setExpectedEndDate(new Date(saHumanTask.getExpectedEndDate()));
}
}
/**
* Update the fields of ArchivednTaskInstance from a SAActivityInstance
*/
private static void updateArchivedReceiveTaskInstance(final ArchivedHumanTaskInstanceImpl activity, final FlowNodeStateManager flowNodeStateManager,
final SAReceiveTaskInstance sActivity) {
final String state = flowNodeStateManager.getState(sActivity.getStateId()).getName();
updateArchivedFlowNodeInstance(activity, sActivity, state);
activity.setReachedStateDate(new Date(sActivity.getReachedStateDate()));
activity.setLastUpdateDate(new Date(sActivity.getLastUpdateDate()));
}
/**
* Update the fields of ArchivednTaskInstance from a SAActivityInstance
*/
private static void updateArchivedSendTaskInstance(final ArchivedHumanTaskInstanceImpl activity, final FlowNodeStateManager flowNodeStateManager,
final SASendTaskInstance sActivity) {
final String state = flowNodeStateManager.getState(sActivity.getStateId()).getName();
updateArchivedFlowNodeInstance(activity, sActivity, state);
activity.setReachedStateDate(new Date(sActivity.getReachedStateDate()));
activity.setLastUpdateDate(new Date(sActivity.getLastUpdateDate()));
}
/**
* Update the fields of ArchivedActivityInstance from a SAActivityInstance
*/
private static void updateArchivedActivityInstance(final ArchivedActivityInstanceImpl activity, final FlowNodeStateManager flowNodeStateManager,
final SAActivityInstance sActivity) {
final String state = flowNodeStateManager.getState(sActivity.getStateId()).getName();
updateArchivedFlowNodeInstance(activity, sActivity, state);
activity.setReachedStateDate(new Date(sActivity.getReachedStateDate()));
activity.setLastUpdateDate(new Date(sActivity.getLastUpdateDate()));
}
private static void updateArchivedFlowNodeInstance(final ArchivedFlowNodeInstanceImpl aFlowNode, final SAFlowNodeInstance saFlowNode, final String state) {
aFlowNode.setId(saFlowNode.getId());
aFlowNode.setState(state);
aFlowNode.setParentContainerId(saFlowNode.getParentContainerId());
aFlowNode.setRootContainerId(saFlowNode.getRootContainerId());
aFlowNode.setSourceObjectId(saFlowNode.getSourceObjectId());
aFlowNode.setProcessDefinitionId(saFlowNode.getLogicalGroup(0));
aFlowNode.setProcessInstanceId(saFlowNode.getLogicalGroup(1));
aFlowNode.setDescription(saFlowNode.getDescription());
aFlowNode.setDisplayName(saFlowNode.getDisplayName());
aFlowNode.setDisplayDescription(saFlowNode.getDisplayDescription());
if (saFlowNode.getArchiveDate() > 0) {
aFlowNode.setArchiveDate(new Date(saFlowNode.getArchiveDate()));
}
aFlowNode.setExecutedBy(saFlowNode.getExecutedBy());
aFlowNode.setFlownodeDefinitionId(saFlowNode.getFlownodeDefinitionId());
aFlowNode.setTerminal(saFlowNode.isTerminal());
}
public static List toArchivedUserTaskInstances(final List sInstances,
final FlowNodeStateManager flowNodeStateManager) {
final List archivedUserTaskInstances = new ArrayList();
for (final SAUserTaskInstance sAUserTaskInstance : sInstances) {
final ArchivedUserTaskInstance archivedUserTaskInstance = toArchivedUserTaskInstance(sAUserTaskInstance, flowNodeStateManager);
archivedUserTaskInstances.add(archivedUserTaskInstance);
}
return archivedUserTaskInstances;
}
public static List toArchivedReceiveTaskInstances(final List sInstances,
final FlowNodeStateManager flowNodeStateManager) {
final List archivedReceiveTaskInstances = new ArrayList();
for (final SAReceiveTaskInstance sAReceiveTaskInstance : sInstances) {
final ArchivedReceiveTaskInstance archivedReceiveTaskInstance = toArchivedReceiveTaskInstance(sAReceiveTaskInstance, flowNodeStateManager);
archivedReceiveTaskInstances.add(archivedReceiveTaskInstance);
}
return archivedReceiveTaskInstances;
}
public static List toArchivedHumanTaskInstances(final List extends SAHumanTaskInstance> sInstances,
final FlowNodeStateManager flowNodeStateManager) {
final List archivedUserTaskInstances = new ArrayList();
for (final SAHumanTaskInstance sInstance : sInstances) {
final ArchivedHumanTaskInstance archivedUserTaskInstance = toArchivedHumanTaskInstance(sInstance, flowNodeStateManager);
archivedUserTaskInstances.add(archivedUserTaskInstance);
}
return archivedUserTaskInstances;
}
public static ArchivedHumanTaskInstance toArchivedHumanTaskInstance(final SAHumanTaskInstance sInstance, final FlowNodeStateManager flowNodeStateManager) {
switch (sInstance.getType()) {
case MANUAL_TASK:
return toArchivedManualTaskInstance((SAManualTaskInstance) sInstance, flowNodeStateManager);
case USER_TASK:
return toArchivedUserTaskInstance((SAUserTaskInstance) sInstance, flowNodeStateManager);
default:
throw new UnknownElementType(sInstance.getType().name());
}
}
public static ArchivedActivityInstance toArchivedActivityInstance(final SAActivityInstance sInstance, final FlowNodeStateManager flowNodeStateManager) {
switch (sInstance.getType()) {
case AUTOMATIC_TASK:
return toArchivedAutomaticTaskInstance(sInstance, flowNodeStateManager);
case MANUAL_TASK:
return toArchivedManualTaskInstance((SAManualTaskInstance) sInstance, flowNodeStateManager);
case USER_TASK:
return toArchivedUserTaskInstance((SAUserTaskInstance) sInstance, flowNodeStateManager);
case RECEIVE_TASK:
return toArchivedReceiveTaskInstance((SAReceiveTaskInstance) sInstance, flowNodeStateManager);
case SEND_TASK:
return toArchivedSendTaskInstance((SASendTaskInstance) sInstance, flowNodeStateManager);
case LOOP_ACTIVITY:
return toArchivedLoopActivityInstance((SALoopActivityInstance) sInstance, flowNodeStateManager);
case CALL_ACTIVITY:
return toArchivedCallActivityInstance((SACallActivityInstance) sInstance, flowNodeStateManager);
case SUB_PROCESS:
return toArchivedSubProcessActivityInstance((SASubProcessActivityInstance) sInstance, flowNodeStateManager);
case MULTI_INSTANCE_ACTIVITY:
return toArchivedMultiInstanceActivityInstance((SAMultiInstanceActivityInstance) sInstance, flowNodeStateManager);
case BOUNDARY_EVENT:
case END_EVENT:
case GATEWAY:
case INTERMEDIATE_CATCH_EVENT:
case INTERMEDIATE_THROW_EVENT:
case START_EVENT:
throw new UnknownElementType("Events are not yet archived");
default:
throw new UnknownElementType(sInstance.getType().name());
}
}
private static ArchivedLoopActivityInstance toArchivedLoopActivityInstance(final SALoopActivityInstance sInstance,
final FlowNodeStateManager flowNodeStateManager) {
final ArchivedLoopActivityInstanceImpl archivedloopActivityInstanceImpl = new ArchivedLoopActivityInstanceImpl(sInstance.getName());
archivedloopActivityInstanceImpl.setLoopCounter(sInstance.getLoopCounter());
archivedloopActivityInstanceImpl.setLoopMax(sInstance.getLoopMax());
updateArchivedActivityInstance(archivedloopActivityInstanceImpl, flowNodeStateManager, sInstance);
return archivedloopActivityInstanceImpl;
}
private static ArchivedMultiInstanceActivityInstanceImpl toArchivedMultiInstanceActivityInstance(final SAMultiInstanceActivityInstance sInstance,
final FlowNodeStateManager flowNodeStateManager) {
final ArchivedMultiInstanceActivityInstanceImpl archivedMultiInstanceActivityInstanceImpl = new ArchivedMultiInstanceActivityInstanceImpl(
sInstance.getName(), sInstance.getFlownodeDefinitionId(), sInstance.isSequential(), sInstance.getLoopDataInputRef(),
sInstance.getLoopDataOutputRef(), sInstance.getDataInputItemRef(), sInstance.getDataOutputItemRef(), sInstance.getNumberOfActiveInstances(),
sInstance.getNumberOfCompletedInstances(), sInstance.getNumberOfTerminatedInstances(), sInstance.getLoopCardinality());
updateArchivedActivityInstance(archivedMultiInstanceActivityInstanceImpl, flowNodeStateManager, sInstance);
return archivedMultiInstanceActivityInstanceImpl;
}
public static ArchivedManualTaskInstance toArchivedManualTaskInstance(final SAManualTaskInstance sInstance, final FlowNodeStateManager flowNodeStateManager) {
final ArchivedManualTaskInstanceImpl archivedUserTaskInstanceImpl = new ArchivedManualTaskInstanceImpl(sInstance.getName());
updateArchivedHumanTaskInstance(archivedUserTaskInstanceImpl, flowNodeStateManager, sInstance);
return archivedUserTaskInstanceImpl;
}
public static ArchivedCallActivityInstance toArchivedCallActivityInstance(final SACallActivityInstance sInstance,
final FlowNodeStateManager flowNodeStateManager) {
final ArchivedCallActivityInstanceImpl archivedCallActivityInstanceImpl = new ArchivedCallActivityInstanceImpl(sInstance.getName());
updateArchivedActivityInstance(archivedCallActivityInstanceImpl, flowNodeStateManager, sInstance);
return archivedCallActivityInstanceImpl;
}
public static ArchivedSubProcessActivityInstance toArchivedSubProcessActivityInstance(final SASubProcessActivityInstance sInstance,
final FlowNodeStateManager flowNodeStateManager) {
final ArchivedSubProcessActivityInstanceImpl archivedSubProcActivityInstanceImpl = new ArchivedSubProcessActivityInstanceImpl(sInstance.getName(),
sInstance.isTriggeredByEvent());
updateArchivedActivityInstance(archivedSubProcActivityInstanceImpl, flowNodeStateManager, sInstance);
return archivedSubProcActivityInstanceImpl;
}
public static ArchivedAutomaticTaskInstance toArchivedAutomaticTaskInstance(final SAActivityInstance sInstance,
final FlowNodeStateManager flowNodeStateManager) {
final ArchivedAutomaticTaskInstanceImpl archivedUserTaskInstanceImpl = new ArchivedAutomaticTaskInstanceImpl(sInstance.getName());
updateArchivedActivityInstance(archivedUserTaskInstanceImpl, flowNodeStateManager, sInstance);
return archivedUserTaskInstanceImpl;
}
public static List toArchivedActivityInstances(final List saActivityInstances,
final FlowNodeStateManager flowNodeStateManager) {
final List archivedActivityInstances = new ArrayList();
for (final SAActivityInstance saActivityInstance : saActivityInstances) {
final ArchivedActivityInstance archivedActivityInstance = toArchivedActivityInstance(saActivityInstance, flowNodeStateManager);
archivedActivityInstances.add(archivedActivityInstance);
}
return archivedActivityInstances;
}
public static List toArchivedProcessInstances(final List sProcessInstances) {
final List clientProcessInstances = new ArrayList(sProcessInstances.size());
for (final SAProcessInstance sProcessInstance : sProcessInstances) {
clientProcessInstances.add(toArchivedProcessInstance(sProcessInstance));
}
return Collections.unmodifiableList(clientProcessInstances);
}
public static ArchivedProcessInstance toArchivedProcessInstance(final SAProcessInstance sInstance) {
final ArchivedProcessInstanceImpl archivedInstance = new ArchivedProcessInstanceImpl(sInstance.getName());
archivedInstance.setId(sInstance.getId());
final int stateId = sInstance.getStateId();
archivedInstance.setStateId(stateId);
archivedInstance.setState(ProcessInstanceState.getFromId(stateId).name().toLowerCase());
if (sInstance.getStartDate() > 0) {
archivedInstance.setStartDate(new Date(sInstance.getStartDate()));
}
archivedInstance.setStartedBy(sInstance.getStartedBy());
if (sInstance.getEndDate() > 0) {
archivedInstance.setEndDate(new Date(sInstance.getEndDate()));
}
if (sInstance.getArchiveDate() > 0) {
archivedInstance.setArchiveDate(new Date(sInstance.getArchiveDate()));
}
if (sInstance.getLastUpdate() > 0) {
archivedInstance.setLastUpdate(new Date(sInstance.getLastUpdate()));
}
archivedInstance.setProcessDefinitionId(sInstance.getProcessDefinitionId());
archivedInstance.setDescription(sInstance.getDescription());
archivedInstance.setSourceObjectId(sInstance.getSourceObjectId());
archivedInstance.setRootProcessInstanceId(sInstance.getRootProcessInstanceId());
archivedInstance.setCallerId(sInstance.getCallerId());
return archivedInstance;
}
public static List toGroups(final List sGroups) {
final List clientGroups = new ArrayList();
if (sGroups != null) {
for (final SGroup sGroup : sGroups) {
clientGroups.add(toGroup(sGroup));
}
}
return Collections.unmodifiableList(clientGroups);
}
public static Group toGroup(final SGroup sGroup) {
final GroupImpl group = new GroupImpl(sGroup.getId(), sGroup.getName());
group.setParentPath(sGroup.getParentPath());
group.setCreatedBy(sGroup.getCreatedBy());
group.setCreationDate(new Date(sGroup.getCreationDate()));
group.setDescription(sGroup.getDescription());
group.setDisplayName(sGroup.getDisplayName());
group.setIconName(sGroup.getIconName());
group.setIconPath(sGroup.getIconPath());
group.setLastUpdate(new Date(sGroup.getLastUpdate()));
return group;
}
public static User toUser(final SUser sUser) {
return toUser(sUser, null);
}
public static User toUser(final SUser sUser, final Map userIdToUser) {
final UserImpl user = new UserImpl(sUser.getId(), sUser.getUserName(), sUser.getPassword());
user.setFirstName(sUser.getFirstName());
user.setLastName(sUser.getLastName());
user.setTitle(sUser.getTitle());
user.setJobTitle(sUser.getJobTitle());
user.setCreatedBy(sUser.getCreatedBy());
user.setCreationDate(new Date(sUser.getCreationDate()));
user.setIconName(sUser.getIconName());
user.setIconPath(sUser.getIconPath());
user.setLastUpdate(new Date(sUser.getLastUpdate()));
user.setEnabled(sUser.isEnabled());
final long managerUserId = sUser.getManagerUserId();
user.setManagerUserId(managerUserId);
if (managerUserId > 0 && userIdToUser != null) {
user.setManagerUserName(userIdToUser.get(managerUserId).getUserName());
}
if (sUser.getLastConnection() != null) {
user.setLastConnection(new Date(sUser.getLastConnection()));
}
return user;
}
public static ContactData toUserContactData(final SContactInfo sContactData) {
final ContactDataImpl contactData = new ContactDataImpl(sContactData.getUserId());
contactData.setAddress(sContactData.getAddress());
contactData.setBuilding(sContactData.getBuilding());
contactData.setCity(sContactData.getCity());
contactData.setCountry(sContactData.getCountry());
contactData.setEmail(sContactData.getEmail());
contactData.setFaxNumber(sContactData.getFaxNumber());
contactData.setMobileNumber(sContactData.getMobileNumber());
contactData.setPersonal(sContactData.isPersonal());
contactData.setPhoneNumber(sContactData.getPhoneNumber());
contactData.setRoom(sContactData.getRoom());
contactData.setState(sContactData.getState());
contactData.setWebsite(sContactData.getWebsite());
contactData.setZipCode(sContactData.getZipCode());
return contactData;
}
public static List toUsers(final List sUsers, final Map userIdToUser) {
final List users = new ArrayList();
if (sUsers != null) {
for (final SUser sUser : sUsers) {
final User user = ModelConvertor.toUser(sUser, userIdToUser);
users.add(user);
}
}
return Collections.unmodifiableList(users);
}
public static List toUsers(final List sUsers) {
return toUsers(sUsers, null);
}
public static Role toRole(final SRole sRole) {
final RoleImpl role = new RoleImpl(sRole.getId(), sRole.getName());
role.setDisplayName(sRole.getDisplayName());
role.setDescription(sRole.getDescription());
role.setIconName(sRole.getIconName());
role.setIconPath(sRole.getIconPath());
role.setCreatedBy(sRole.getCreatedBy());
role.setCreationDate(new Date(sRole.getCreationDate()));
role.setLastUpdate(new Date(sRole.getLastUpdate()));
return role;
}
public static List toRoles(final List sRoles) {
final List lightRoles = new ArrayList();
if (sRoles != null) {
for (final SRole sRole : sRoles) {
final Role role = toRole(sRole);
lightRoles.add(role);
}
}
return Collections.unmodifiableList(lightRoles);
}
public static UserMembership toUserMembership(final SUserMembership sUserMembership) {
final UserMembershipImpl userMembership = new UserMembershipImpl(sUserMembership.getId(), sUserMembership.getUserId(), sUserMembership.getGroupId(),
sUserMembership.getRoleId());
userMembership.setAssignedBy(sUserMembership.getAssignedBy());
userMembership.setAssignedDate(new Date(sUserMembership.getAssignedDate()));
userMembership.setGroupName(sUserMembership.getGroupName());
userMembership.setRoleName(sUserMembership.getRoleName());
userMembership.setUsername(sUserMembership.getUsername());
return userMembership;
}
public static List toUserMembership(final List sUserMemberships) {
final List userMemberships = new ArrayList();
if (sUserMemberships != null) {
for (final SUserMembership sMembership : sUserMemberships) {
final UserMembership userMembership = toUserMembership(sMembership);
userMemberships.add(userMembership);
}
}
return Collections.unmodifiableList(userMemberships);
}
public static List toUserMembership(final List sUserMemberships, final Map userNames,
final Map groupIdToGroup) {
final List userMemberships = new ArrayList();
if (sUserMemberships != null) {
for (final SUserMembership sMembership : sUserMemberships) {
final UserMembership userMembership = toUserMembership(sMembership, userNames, groupIdToGroup);
userMemberships.add(userMembership);
}
}
return Collections.unmodifiableList(userMemberships);
}
private static UserMembership toUserMembership(final SUserMembership sUserMembership, final Map userNames,
final Map groupIdToGroup) {
final UserMembershipImpl userMembership = new UserMembershipImpl(sUserMembership.getId(), sUserMembership.getUserId(), sUserMembership.getGroupId(),
sUserMembership.getRoleId());
userMembership.setGroupName(sUserMembership.getGroupName());
userMembership.setGroupParentPath(groupIdToGroup.get(sUserMembership.getGroupId()));
userMembership.setRoleName(sUserMembership.getRoleName());
userMembership.setUsername(sUserMembership.getUsername());
final long assignedBy = sUserMembership.getAssignedBy();
userMembership.setAssignedBy(assignedBy);
if (assignedBy > 0) {
userMembership.setAssignedByName(userNames.get(assignedBy));
}
userMembership.setAssignedDate(new Date(sUserMembership.getAssignedDate()));
return userMembership;
}
public static Category toCategory(final SCategory sCategory) {
final CategoryImpl category = new CategoryImpl(sCategory.getId(), sCategory.getName());
category.setDescription(sCategory.getDescription());
category.setCreator(sCategory.getCreator());
category.setCreationDate(new Date(sCategory.getCreationDate()));
category.setLastUpdate(new Date(sCategory.getLastUpdateDate()));
return category;
}
public static CommandDescriptor toCommandDescriptor(final SCommand command) {
final CommandDescriptorImpl commandDescriptor = new CommandDescriptorImpl(command.getName(), command.getDescription(), command.getImplementation());
commandDescriptor.setId(command.getId());
commandDescriptor.setSystem(command.getSystem());
return commandDescriptor;
}
public static CommandDescriptor toCommandDescriptor(final SPlatformCommand platformCommand) {
final CommandDescriptorImpl commandDescriptor = new CommandDescriptorImpl(platformCommand.getName(), platformCommand.getDescription(),
platformCommand.getImplementation());
commandDescriptor.setId(platformCommand.getId());
return commandDescriptor;
}
public static List toCommandDescriptors(final List sCommands) {
if (sCommands != null) {
final List commandList = new ArrayList();
for (final SCommand sCommand : sCommands) {
commandList.add(toCommandDescriptor(sCommand));
}
return Collections.unmodifiableList(commandList);
}
return Collections.emptyList();
}
public static List toPlatformCommandDescriptors(final List sPlatformCommands) {
if (sPlatformCommands != null) {
final List platformCommandList = new ArrayList();
for (final SPlatformCommand sCommand : sPlatformCommands) {
platformCommandList.add(toCommandDescriptor(sCommand));
}
return Collections.unmodifiableList(platformCommandList);
}
return Collections.emptyList();
}
public static List toCategories(final List sCategories) {
if (sCategories != null) {
final List categoryList = new ArrayList();
for (final SCategory sCategory : sCategories) {
categoryList.add(toCategory(sCategory));
}
return Collections.unmodifiableList(categoryList);
}
return Collections.emptyList();
}
public static List toEventInstances(final Collection sEvents, final FlowNodeStateManager flowNodeStateManager) {
final List eventInstances = new ArrayList();
for (final SEventInstance sEvent : sEvents) {
final EventInstance eventInstance = toEventInstance(sEvent, flowNodeStateManager);
eventInstances.add(eventInstance);
}
return eventInstances;
}
public static EventInstance toEventInstance(final SEventInstance sEvent, final FlowNodeStateManager flowNodeStateManager) {
final EventInstanceImpl eventInstance = getEventInstance(sEvent);
updateFlowNode(eventInstance, sEvent, flowNodeStateManager.getState(sEvent.getStateId()).getName());
return eventInstance;
}
public static WaitingEvent toWaitingEvent(final SWaitingEvent sWaitingEvent) {
WaitingEvent waitingEvent;
final BPMEventType bpmEventType = BPMEventType.valueOf(sWaitingEvent.getEventType().name());
final long processDefinitionId = sWaitingEvent.getProcessDefinitionId();
final String processName = sWaitingEvent.getProcessName();
final long flowNodeDefinitionId = sWaitingEvent.getFlowNodeDefinitionId();
switch (sWaitingEvent.getEventTriggerType()) {
case ERROR:
final SWaitingErrorEvent sWaitingErrorEvent = (SWaitingErrorEvent) sWaitingEvent;
waitingEvent = new WaitingErrorEventImpl(bpmEventType, processDefinitionId, processName, flowNodeDefinitionId,
sWaitingErrorEvent.getErrorCode());
break;
case MESSAGE:
final SWaitingMessageEvent sWaitingMessageEvent = (SWaitingMessageEvent) sWaitingEvent;
waitingEvent = new WaitingMessageEventImpl(bpmEventType, processDefinitionId, processName, flowNodeDefinitionId,
sWaitingMessageEvent.getMessageName());
break;
case SIGNAL:
final SWaitingSignalEvent sWaitingSignalEvent = (SWaitingSignalEvent) sWaitingEvent;
waitingEvent = new WaitingSignalEventImpl(bpmEventType, processDefinitionId, processName, flowNodeDefinitionId,
sWaitingSignalEvent.getSignalName());
break;
default:
throw new UnknownElementType(sWaitingEvent.getClass().getName());
}
return waitingEvent;
}
public static List toWaitingEvents(final List sWaitingEvents) {
final List waitingEvents = new ArrayList(sWaitingEvents.size());
for (final SWaitingEvent sWaitingEvent : sWaitingEvents) {
waitingEvents.add(toWaitingEvent(sWaitingEvent));
}
return Collections.unmodifiableList(waitingEvents);
}
private static EventInstanceImpl getEventInstance(final SEventInstance sEvent) {
switch (sEvent.getType()) {
case END_EVENT:
return new EndEventInstanceImpl(sEvent.getName(), sEvent.getFlowNodeDefinitionId());
case INTERMEDIATE_CATCH_EVENT:
return new IntermediateCatchEventInstanceImpl(sEvent.getName(), sEvent.getFlowNodeDefinitionId());
case INTERMEDIATE_THROW_EVENT:
return new IntermediateThrowEventInstanceImpl(sEvent.getName(), sEvent.getFlowNodeDefinitionId());
case BOUNDARY_EVENT:
return new BoundaryEventInstanceImpl(sEvent.getName(), sEvent.getFlowNodeDefinitionId(),
((SBoundaryEventInstance) sEvent).getActivityInstanceId());
case START_EVENT:
return new StartEventInstanceImpl(sEvent.getName(), sEvent.getFlowNodeDefinitionId());
default:
throw new UnknownElementType(sEvent.getType().name());
}
}
public static List toDataInstances(final List sDataInstances) {
if (sDataInstances != null) {
final List dataInstanceList = new ArrayList();
for (final SDataInstance sDataInstance : sDataInstances) {
dataInstanceList.add(toDataInstance(sDataInstance));
}
return Collections.unmodifiableList(dataInstanceList);
}
return Collections.emptyList();
}
public static List toDataDefinitions(final List sDataDefinitions) {
if (sDataDefinitions != null) {
final List dataDefinitionList = new ArrayList();
for (final SDataDefinition sDataDefinition : sDataDefinitions) {
dataDefinitionList.add(toDataDefinition(sDataDefinition));
}
return Collections.unmodifiableList(dataDefinitionList);
}
return Collections.emptyList();
}
public static DataDefinition toDataDefinition(final SDataDefinition sDataDefinition) {
DataDefinitionImpl dataDefinitionImpl = null;
if (sDataDefinition != null) {
dataDefinitionImpl = new DataDefinitionImpl(sDataDefinition.getName(), toExpression(sDataDefinition.getDefaultValueExpression()));
dataDefinitionImpl.setClassName(sDataDefinition.getClassName());
dataDefinitionImpl.setDescription(sDataDefinition.getDescription());
dataDefinitionImpl.setTransientData(sDataDefinition.isTransientData());
}
return dataDefinitionImpl;
}
public static List toExpressions(final List sExpressions) {
if (sExpressions != null && !sExpressions.isEmpty()) {
final List expList = new ArrayList(sExpressions.size());
for (final SExpression sexp : sExpressions) {
expList.add(toExpression(sexp));
}
return expList;
} else {
return Collections.emptyList();
}
}
public static Expression toExpression(final SExpression sexp) {
final ExpressionImpl exp = new ExpressionImpl();
if (sexp != null) {
exp.setContent(sexp.getContent());
exp.setExpressionType(sexp.getExpressionType());
exp.setInterpreter(sexp.getInterpreter());
exp.setName(sexp.getName());
exp.setReturnType(sexp.getReturnType());
exp.setDependencies(toExpressions(sexp.getDependencies()));
}
return exp;
}
public static DataInstance toDataInstance(final SDataInstance sDataInstance) {
DataInstanceImpl dataInstance;
if (sDataInstance.getClassName().equals(Integer.class.getName())) {
dataInstance = new IntegerDataInstanceImpl();
} else if (sDataInstance.getClassName().equals(Long.class.getName())) {
dataInstance = new LongDataInstanceImpl();
} else if (sDataInstance.getClassName().equals(Boolean.class.getName())) {
dataInstance = new BooleanDataInstanceImpl();
} else if (sDataInstance.getClassName().equals(Date.class.getName())) {
dataInstance = new DateDataInstanceImpl();
} else if (sDataInstance.getClassName().equals(Double.class.getName())) {
dataInstance = new DoubleDataInstanceImpl();
} else if (sDataInstance.getClassName().equals(Float.class.getName())) {
dataInstance = new FloatDataInstanceImpl();
} else if (sDataInstance.getClassName().equals(String.class.getName())) {
dataInstance = new ShortTextDataInstanceImpl();
} else {
dataInstance = new BlobDataInstanceImpl();
}
dataInstance.setClassName(sDataInstance.getClassName());
dataInstance.setContainerId(sDataInstance.getContainerId());
dataInstance.setContainerType(sDataInstance.getContainerType());
dataInstance.setDataTypeClassName(sDataInstance.getClassName());
dataInstance.setDescription(sDataInstance.getDescription());
dataInstance.setId(sDataInstance.getId());
dataInstance.setName(sDataInstance.getName());
dataInstance.setValue(sDataInstance.getValue());
return dataInstance;
}
public static ActorMember toActorMember(final SActorMember sActorMember) {
return new ActorMemberImpl(sActorMember.getId(), sActorMember.getUserId(), sActorMember.getGroupId(), sActorMember.getRoleId());
}
public static List toActorMembers(final List sActorMembers) {
final List actorMembers = new ArrayList();
for (final SActorMember sActorMember : sActorMembers) {
final ActorMember actorMember = toActorMember(sActorMember);
actorMembers.add(actorMember);
}
return actorMembers;
}
public static ActorInstance toActorInstance(final SActor actor) {
final String name = actor.getName();
final String description = actor.getDescription();
final long scopeId = actor.getScopeId();
final String displayName = actor.getDisplayName();
final boolean initiator = actor.isInitiator();
final ActorInstanceImpl actorInstance = new ActorInstanceImpl(name, description, displayName, scopeId, initiator);
actorInstance.setId(actor.getId());
return actorInstance;
}
public static SUser constructSUser(final UserCreator creator, final IdentityModelBuilder identityModelBuilder) {
final long now = System.currentTimeMillis();
final SUserBuilder userBuilder = identityModelBuilder.getUserBuilder().createNewInstance();
final Map fields = creator.getFields();
userBuilder.setUserName((String) fields.get(UserField.NAME));
userBuilder.setPassword((String) fields.get(UserField.PASSWORD));
final String firstName = (String) fields.get(UserField.FIRST_NAME);
if (firstName != null) {
userBuilder.setFirstName(firstName);
}
final String lastName = (String) fields.get(UserField.LAST_NAME);
if (lastName != null) {
userBuilder.setLastName(lastName);
}
final String iconName = (String) fields.get(UserField.ICON_NAME);
if (iconName != null) {
userBuilder.setIconName(iconName);
}
final String iconPath = (String) fields.get(UserField.ICON_PATH);
if (iconPath != null) {
userBuilder.setIconPath(iconPath);
}
final String jobTitle = (String) fields.get(UserField.JOB_TITLE);
if (jobTitle != null) {
userBuilder.setJobTitle(jobTitle);
}
final String title = (String) fields.get(UserField.TITLE);
if (title != null) {
userBuilder.setTitle(title);
}
userBuilder.setCreatedBy(getCurrentUserId());
final Long managerUserId = (Long) fields.get(UserField.MANAGER_ID);
if (managerUserId != null) {
userBuilder.setManagerUserId(managerUserId);
}
final Boolean enabled = (Boolean) fields.get(UserField.ENABLED);
if (enabled != null) {
userBuilder.setEnabled(enabled);
} else {
userBuilder.setEnabled(Boolean.FALSE);
}
userBuilder.setCreationDate(now);
userBuilder.setLastUpdate(now);
userBuilder.setLastConnection(null);
return userBuilder.done();
}
public static SContactInfo constructSUserContactInfo(final UserCreator creator, final long userId, final boolean personal,
final IdentityModelBuilder identityModelBuilder) {
Map fields;
if (personal) {
fields = creator.getPersoFields();
} else {
fields = creator.getProFields();
}
if (fields != null && !fields.isEmpty()) {
final SContactInfoBuilder contactInfoBuilder = identityModelBuilder.getUserContactInfoBuilder().createNewInstance(userId, personal);
final String address = (String) fields.get(ContactDataField.ADDRESS);
if (address != null) {
contactInfoBuilder.setAddress(address);
}
final String email = (String) fields.get(ContactDataField.EMAIL);
if (email != null) {
contactInfoBuilder.setEmail(email);
}
final String building = (String) fields.get(ContactDataField.BUILDING);
if (building != null) {
contactInfoBuilder.setBuilding(building);
}
final String city = (String) fields.get(ContactDataField.CITY);
if (city != null) {
contactInfoBuilder.setCity(city);
}
final String country = (String) fields.get(ContactDataField.COUNTRY);
if (country != null) {
contactInfoBuilder.setCountry(country);
}
final String fax = (String) fields.get(ContactDataField.FAX);
if (fax != null) {
contactInfoBuilder.setFaxNumber(fax);
}
final String mobile = (String) fields.get(ContactDataField.MOBILE);
if (mobile != null) {
contactInfoBuilder.setMobileNumber(mobile);
}
final String phone = (String) fields.get(ContactDataField.PHONE);
if (phone != null) {
contactInfoBuilder.setPhoneNumber(phone);
}
final String room = (String) fields.get(ContactDataField.ROOM);
if (room != null) {
contactInfoBuilder.setRoom(room);
}
final String state = (String) fields.get(ContactDataField.STATE);
if (state != null) {
contactInfoBuilder.setState(state);
}
final String website = (String) fields.get(ContactDataField.WEBSITE);
if (website != null) {
contactInfoBuilder.setWebsite(website);
}
final String zipCode = (String) fields.get(ContactDataField.ZIP_CODE);
if (zipCode != null) {
contactInfoBuilder.setZipCode(zipCode);
}
return contactInfoBuilder.done();
} else {
return null;
}
}
public static SUser constructSUser(final ExportedUser newUser, final IdentityModelBuilder identityModelBuilder) {
final SUserBuilder userBuilder = identityModelBuilder.getUserBuilder().createNewInstance();
final long now = System.currentTimeMillis();
userBuilder.setCreationDate(now);
userBuilder.setLastUpdate(now);
userBuilder.setLastConnection(null);
userBuilder.setUserName(newUser.getUserName());
userBuilder.setPassword(newUser.getPassword());
userBuilder.setFirstName(newUser.getFirstName());
userBuilder.setLastName(newUser.getLastName());
userBuilder.setIconName(newUser.getIconName());
userBuilder.setIconPath(newUser.getIconPath());
userBuilder.setJobTitle(newUser.getJobTitle());
userBuilder.setTitle(newUser.getTitle());
userBuilder.setCreatedBy(newUser.getCreatedBy() == 0 ? getCurrentUserId() : newUser.getCreatedBy());
userBuilder.setManagerUserId(newUser.getManagerUserId());
userBuilder.setEnabled(newUser.isEnabled());
return userBuilder.done();
}
public static SContactInfo constructSUserContactInfo(final ExportedUser user, final boolean isPersonal, final IdentityModelBuilder identityModelBuilder,
final long userId) {
final SContactInfoBuilder contactInfoBuilder = identityModelBuilder.getUserContactInfoBuilder().createNewInstance(userId, isPersonal);
if (isPersonal) {
contactInfoBuilder.setAddress(user.getPersonalAddress());
contactInfoBuilder.setBuilding(user.getPersonalBuilding());
contactInfoBuilder.setCity(user.getPersonalCity());
contactInfoBuilder.setCountry(user.getPersonalCountry());
contactInfoBuilder.setEmail(user.getPersonalEmail());
contactInfoBuilder.setFaxNumber(user.getPersonalFaxNumber());
contactInfoBuilder.setMobileNumber(user.getPersonalMobileNumber());
contactInfoBuilder.setPhoneNumber(user.getPersonalPhoneNumber());
contactInfoBuilder.setRoom(user.getPersonalRoom());
contactInfoBuilder.setState(user.getPersonalState());
contactInfoBuilder.setWebsite(user.getPersonalWebsite());
contactInfoBuilder.setZipCode(user.getPersonalZipCode());
} else {
contactInfoBuilder.setAddress(user.getProfessionalAddress());
contactInfoBuilder.setBuilding(user.getProfessionalBuilding());
contactInfoBuilder.setCity(user.getProfessionalCity());
contactInfoBuilder.setCountry(user.getProfessionalCountry());
contactInfoBuilder.setEmail(user.getProfessionalEmail());
contactInfoBuilder.setFaxNumber(user.getProfessionalFaxNumber());
contactInfoBuilder.setMobileNumber(user.getProfessionalMobileNumber());
contactInfoBuilder.setPhoneNumber(user.getProfessionalPhoneNumber());
contactInfoBuilder.setRoom(user.getProfessionalRoom());
contactInfoBuilder.setState(user.getProfessionalState());
contactInfoBuilder.setWebsite(user.getProfessionalWebsite());
contactInfoBuilder.setZipCode(user.getProfessionalZipCode());
}
return contactInfoBuilder.done();
}
public static SRole constructSRole(final RoleCreator creator, final IdentityModelBuilder identityModelBuilder) {
final long now = System.currentTimeMillis();
final RoleBuilder roleBuilder = identityModelBuilder.getRoleBuilder();
roleBuilder.createNewInstance();
roleBuilder.setCreatedBy(getCurrentUserId());
roleBuilder.setCreationDate(now).setLastUpdate(now);
final Map fields = creator.getFields();
roleBuilder.setName((String) fields.get(RoleField.NAME));
final String displayName = (String) fields.get(RoleField.DISPLAY_NAME);
if (displayName != null) {
roleBuilder.setDisplayName(displayName);
}
final String description = (String) fields.get(RoleField.DESCRIPTION);
if (description != null) {
roleBuilder.setDescription(description);
}
final String iconName = (String) fields.get(RoleField.ICON_NAME);
if (iconName != null) {
roleBuilder.setIconName(iconName);
}
final String iconPath = (String) fields.get(RoleField.ICON_PATH);
if (iconPath != null) {
roleBuilder.setIconPath(iconPath);
}
return roleBuilder.done();
}
public static SGroup constructSGroup(final GroupCreator creator, final IdentityModelBuilder identityModelBuilder) {
final long now = System.currentTimeMillis();
final GroupBuilder groupBuilder = identityModelBuilder.getGroupBuilder();
groupBuilder.createNewInstance();
groupBuilder.setCreatedBy(getCurrentUserId());
groupBuilder.setCreationDate(now).setLastUpdate(now);
final Map fields = creator.getFields();
groupBuilder.setName((String) fields.get(GroupField.NAME));
final String parentPath = (String) fields.get(GroupField.PARENT_PATH);
if (parentPath != null) {
groupBuilder.setParentPath(parentPath);
}
final String displayName = (String) fields.get(GroupField.DISPLAY_NAME);
if (displayName != null) {
groupBuilder.setDisplayName(displayName);
}
final String description = (String) fields.get(GroupField.DESCRIPTION);
if (description != null) {
groupBuilder.setDescription(description);
}
final String iconName = (String) fields.get(GroupField.ICON_NAME);
if (iconName != null) {
groupBuilder.setIconName(iconName);
}
final String iconPath = (String) fields.get(GroupField.ICON_PATH);
if (iconPath != null) {
groupBuilder.setIconPath(iconPath);
}
return groupBuilder.done();
}
public static List toProcessSupervisors(final List sSupervisors) {
final List processSupervisors = new ArrayList();
if (sSupervisors != null) {
for (final SProcessSupervisor sSupervisor : sSupervisors) {
processSupervisors.add(toProcessSupervisor(sSupervisor));
}
}
return processSupervisors;
}
public static ProcessSupervisor toProcessSupervisor(final SProcessSupervisor sSupervisor) {
final ProcessSupervisorBuilder processSupervisorBuilder = new ProcessSupervisorBuilder();
processSupervisorBuilder.setSupervisorId(sSupervisor.getId());
processSupervisorBuilder.setProcessDefinitionId(sSupervisor.getProcessDefId());
processSupervisorBuilder.setUserId(sSupervisor.getUserId());
processSupervisorBuilder.setGroupId(sSupervisor.getGroupId());
processSupervisorBuilder.setRoleId(sSupervisor.getRoleId());
return processSupervisorBuilder.done();
}
public static List toDocuments(final Collection attachments) {
final List documents = new ArrayList();
for (final SProcessDocument sProcessDocument : attachments) {
final Document document = toDocument(sProcessDocument);
documents.add(document);
}
return documents;
}
public static Document toDocument(final SProcessDocument attachment) {
final DocumentImpl documentImpl = new DocumentImpl();
documentImpl.setId(attachment.getId());
documentImpl.setProcessInstanceId(attachment.getProcessInstanceId());
documentImpl.setName(attachment.getName());
documentImpl.setAuthor(attachment.getAuthor());
documentImpl.setCreationDate(new Date(attachment.getCreationDate()));
documentImpl.setHasContent(attachment.hasContent());
documentImpl.setContentMimeType(attachment.getContentMimeType());
documentImpl.setFileName(attachment.getContentFileName());
documentImpl.setContentStorageId(attachment.getContentStorageId());
documentImpl.setUrl(attachment.getURL());
return documentImpl;
}
public static List toArchivedDocuments(final Collection attachments) {
final List documents = new ArrayList();
for (final SAProcessDocument sAProcessDocument : attachments) {
final ArchivedDocument document = toArchivedDocument(sAProcessDocument);
documents.add(document);
}
return documents;
}
public static ArchivedDocument toArchivedDocument(final SAProcessDocument attachment) {
final ArchivedDocumentImpl documentImpl = new ArchivedDocumentImpl(attachment.getName());
documentImpl.setId(attachment.getId());
documentImpl.setProcessInstanceId(attachment.getProcessInstanceId());
documentImpl.setArchiveDate(new Date(attachment.getArchiveDate()));
documentImpl.setContentStorageId(attachment.getContentStorageId());
documentImpl.setDocumentAuthor(attachment.getAuthor());
documentImpl.setDocumentContentFileName(attachment.getContentFileName());
documentImpl.setDocumentContentMimeType(attachment.getContentMimeType());
documentImpl.setDocumentCreationDate(new Date(attachment.getCreationDate()));
documentImpl.setDocumentHasContent(attachment.hasContent());
documentImpl.setDocumentURL(attachment.getURL());
documentImpl.setSourceObjectId(attachment.getSourceObjectId());
return documentImpl;
}
public static int getServerActivityStateId(final String state) {
int stateId = -1;
if (state.equalsIgnoreCase(ActivityStates.READY_STATE)) {
stateId = 4;
} else if (state.equalsIgnoreCase(ActivityStates.COMPLETING_STATE)) {
stateId = 9;
} else if (state.equalsIgnoreCase(ActivityStates.COMPLETED_STATE)) {
stateId = 2;
} else if (state.equalsIgnoreCase(ActivityStates.EXECUTING_STATE)) {
stateId = 1;
} else if (state.equalsIgnoreCase(ActivityStates.INITIALIZING_STATE)) {
stateId = 0;
} else if (state.equalsIgnoreCase(ActivityStates.SKIPPED_STATE)) {
stateId = 12;
} else if (state.equalsIgnoreCase(ActivityStates.CANCELLING_SUBTASKS_STATE)) {
stateId = 13;
} else if (state.equalsIgnoreCase(ActivityStates.CANCELLED_STATE)) {
stateId = 14;
}
return stateId;
}
public static ProcessInstanceState getProcessInstanceState(final String state) {
ProcessInstanceState pis = null;
if (state.equalsIgnoreCase(ProcessInstanceState.ABORTED.toString())) {
pis = ProcessInstanceState.ABORTED;
} else if (state.equalsIgnoreCase(ProcessInstanceState.CANCELLED.toString())) {
pis = ProcessInstanceState.CANCELLED;
} else if (state.equalsIgnoreCase(ProcessInstanceState.COMPLETED.toString())) {
pis = ProcessInstanceState.COMPLETED;
} else if (state.equalsIgnoreCase(ProcessInstanceState.COMPLETING.toString())) {
pis = ProcessInstanceState.COMPLETING;
} else if (state.equalsIgnoreCase(ProcessInstanceState.ERROR.toString())) {
pis = ProcessInstanceState.ERROR;
} else if (state.equalsIgnoreCase(ProcessInstanceState.INITIALIZING.toString())) {
pis = ProcessInstanceState.INITIALIZING;
} else if (state.equalsIgnoreCase(ProcessInstanceState.STARTED.toString())) {
pis = ProcessInstanceState.STARTED;
} else if (state.equalsIgnoreCase(ProcessInstanceState.SUSPENDED.toString())) {
pis = ProcessInstanceState.SUSPENDED;
}
return pis;
}
public static Comment toComment(final SComment sComment) {
final CommentImpl commentImpl = new CommentImpl();
commentImpl.setTenantId(sComment.getTenantId());
commentImpl.setId(sComment.getId());
commentImpl.setUserId(sComment.getUserId());
commentImpl.setProcessInstanceId(sComment.getProcessInstanceId());
commentImpl.setPostDate(sComment.getPostDate());
commentImpl.setContent(sComment.getContent());
return commentImpl;
}
public static List toComments(final List sComments) {
final List comments = new ArrayList();
for (final SComment sComment : sComments) {
comments.add(toComment(sComment));
}
return comments;
}
public static Map constructExpressions(final SExpressionBuilders sExpressionBuilders, final Map inputs) {
final Map result = new HashMap(inputs.size());
for (final Entry expression : inputs.entrySet()) {
result.put(expression.getKey(), constructSExpression(expression.getValue(), sExpressionBuilders.getExpressionBuilder()));
}
return result;
}
public static SExpression constructSExpression(final Expression model, final SExpressionBuilder expressionBuilder) {
final ArrayList dependencies = new ArrayList();
for (final Expression dep : model.getDependencies()) {
dependencies.add(constructSExpression(dep, expressionBuilder));
}
expressionBuilder.createNewInstance();
expressionBuilder.setName(model.getName());
expressionBuilder.setContent(model.getContent());
expressionBuilder.setExpressionType(model.getExpressionType());
expressionBuilder.setInterpreter(model.getInterpreter());
expressionBuilder.setReturnType(model.getReturnType());
expressionBuilder.setDependencies(dependencies);
try {
return expressionBuilder.done();
} catch (final SInvalidExpressionException e) {
throw new IllegalArgumentException("Error constructing SExpression");
}
}
public static SOperation constructSOperation(final Operation operation, final TenantServiceAccessor serviceAccessor) {
final SOperationBuilders sOperationBuilders = serviceAccessor.getSOperationBuilders();
final SExpressionBuilder sExpressionBuilder = serviceAccessor.getSExpressionBuilders().getExpressionBuilder();
final SExpression rightOperand = constructSExpression(operation.getRightOperand(), sExpressionBuilder);
final SOperatorType operatorType = SOperatorType.valueOf(operation.getType().name());
final SLeftOperand sLeftOperand = constructSLeftOperand(operation.getLeftOperand(), sOperationBuilders);
return sOperationBuilders.getSOperationBuilder().createNewInstance().setOperator(operation.getOperator()).setRightOperand(rightOperand)
.setType(operatorType).setLeftOperand(sLeftOperand).done();
}
public static SOperation constructSOperation(final Operation operation, final SOperationBuilders operationBuilders,
final SExpressionBuilders expressionBuilders) {
final SExpressionBuilder sExpressionBuilder = expressionBuilders.getExpressionBuilder();
final SExpression rightOperand = constructSExpression(operation.getRightOperand(), sExpressionBuilder);
final SOperatorType operatorType = SOperatorType.valueOf(operation.getType().name());
final SLeftOperand sLeftOperand = constructSLeftOperand(operation.getLeftOperand(), operationBuilders);
return operationBuilders.getSOperationBuilder().createNewInstance().setOperator(operation.getOperator()).setRightOperand(rightOperand)
.setType(operatorType).setLeftOperand(sLeftOperand).done();
}
private static SLeftOperand constructSLeftOperand(final LeftOperand variableToSet, final SOperationBuilders sOperationBuilders) {
return sOperationBuilders.getSLeftOperandBuilder().createNewInstance().setName(variableToSet.getName()).setExternal(variableToSet.isExternal()).done();
}
public static List toConnectorImplementationDescriptors(
final List sConnectorImplementationDescriptors) {
if (sConnectorImplementationDescriptors != null) {
final List connectorImplementationDescriptors = new ArrayList(
sConnectorImplementationDescriptors.size());
for (final SConnectorImplementationDescriptor sConnectorImplementationDescriptor : sConnectorImplementationDescriptors) {
connectorImplementationDescriptors.add(toConnectorImplementationDescriptor(sConnectorImplementationDescriptor));
}
return connectorImplementationDescriptors;
}
return Collections.emptyList();
}
public static ConnectorImplementationDescriptor toConnectorImplementationDescriptor(
final SConnectorImplementationDescriptor sConnectorImplementationDescriptor) {
return new ConnectorImplementationDescriptor(sConnectorImplementationDescriptor.getImplementationClassName(),
sConnectorImplementationDescriptor.getId(), sConnectorImplementationDescriptor.getVersion(),
sConnectorImplementationDescriptor.getDefinitionId(), sConnectorImplementationDescriptor.getDefinitionVersion(),
sConnectorImplementationDescriptor.getJarDependencies().getDependencies());
}
public static List toArchivedComments(final List serverObjects) {
final List commments = new ArrayList();
for (final SAComment saComment : serverObjects) {
final ArchivedComment comment = toArchivedComment(saComment);
commments.add(comment);
}
return commments;
}
public static ArchivedComment toArchivedComment(final SAComment saComment) {
final ArchivedCommentImpl commentImpl = new ArchivedCommentImpl(saComment.getContent());
commentImpl.setId(saComment.getId());
commentImpl.setProcessInstanceId(saComment.getProcessInstanceId());
commentImpl.setArchiveDate(new Date(saComment.getArchiveDate()));
commentImpl.setContent(saComment.getContent());
commentImpl.setSourceObjectId(saComment.getSourceObjectId());
commentImpl.setUserId(saComment.getUserId());
commentImpl.setPostDate(new Date(saComment.getPostDate()));
return commentImpl;
}
public static Operation toOperation(final SOperation operation) {
final OperationImpl operationImpl = new OperationImpl();
operationImpl.setRightOperand(toExpression(operation.getRightOperand()));
operationImpl.setOperator(operation.getOperator());
operationImpl.setType(toOperatorType(operation.getType()));
final LeftOperandImpl variableToSet = new LeftOperandImpl();
final SLeftOperand variableToSet2 = operation.getLeftOperand();
variableToSet.setName(variableToSet2.getName());
variableToSet.setExternal(variableToSet2.isExternal());
operationImpl.setLeftOperand(variableToSet);
return operationImpl;
}
private static OperatorType toOperatorType(final SOperatorType type) {
OperatorType operatorType = null;
if (SOperatorType.ASSIGNMENT.equals(type)) {
operatorType = OperatorType.ASSIGNMENT;
} else if (SOperatorType.JAVA_METHOD.equals(type)) {
operatorType = OperatorType.JAVA_METHOD;
} else if (SOperatorType.XPATH_UPDATE_QUERY.equals(type)) {
operatorType = OperatorType.XPATH_UPDATE_QUERY;
}
return operatorType;
}
public static ConnectorDefinition toConnectorDefinition(final SConnectorDefinition connector) {
final ConnectorDefinitionImpl connectorDefinitionImpl = new ConnectorDefinitionImpl(connector.getName(), connector.getConnectorId(),
connector.getVersion(), connector.getActivationEvent());
for (final Entry input : connector.getInputs().entrySet()) {
connectorDefinitionImpl.addInput(input.getKey(), toExpression(input.getValue()));
}
for (final SOperation operation : connector.getOutputs()) {
connectorDefinitionImpl.addOutput(toOperation(operation));
}
return connectorDefinitionImpl;
}
public static List toActors(final List sActors) {
final List actors = new ArrayList();
for (final SActor sActor : sActors) {
final ActorInstance actor = toActorInstance(sActor);
actors.add(actor);
}
return actors;
}
public static List toArchivedFlowElementInstances(final List serverObjects) {
// TODO Implement me!
return null;
}
public static List toArchivedFlowNodeInstances(final List saFlowNodes,
final FlowNodeStateManager flowNodeStateManager) {
final List flowNodeInstances = new ArrayList();
for (final SAFlowNodeInstance saFlowNode : saFlowNodes) {
final ArchivedFlowNodeInstance flowNodeInstance = toArchivedFlowNodeInstance(saFlowNode, flowNodeStateManager);
flowNodeInstances.add(flowNodeInstance);
}
return flowNodeInstances;
}
public static ArchivedFlowNodeInstance toArchivedFlowNodeInstance(final SAFlowNodeInstance saFlowNode, final FlowNodeStateManager flowNodeStateManager) {
ArchivedFlowNodeInstance archiveFlowNodeInstance = null;
switch (saFlowNode.getType()) {
case AUTOMATIC_TASK:
archiveFlowNodeInstance = toArchivedAutomaticTaskInstance((SAAutomaticTaskInstance) saFlowNode, flowNodeStateManager);
break;
case MANUAL_TASK:
archiveFlowNodeInstance = toArchivedManualTaskInstance((SAManualTaskInstance) saFlowNode, flowNodeStateManager);
break;
case USER_TASK:
archiveFlowNodeInstance = toArchivedUserTaskInstance((SAUserTaskInstance) saFlowNode, flowNodeStateManager);
break;
case RECEIVE_TASK:
archiveFlowNodeInstance = toArchivedReceiveTaskInstance((SAReceiveTaskInstance) saFlowNode, flowNodeStateManager);
break;
case SEND_TASK:
archiveFlowNodeInstance = toArchivedSendTaskInstance((SASendTaskInstance) saFlowNode, flowNodeStateManager);
break;
case CALL_ACTIVITY:
archiveFlowNodeInstance = toArchivedCallActivityInstance((SACallActivityInstance) saFlowNode, flowNodeStateManager);
break;
case LOOP_ACTIVITY:
archiveFlowNodeInstance = toArchivedLoopActivityInstance((SALoopActivityInstance) saFlowNode, flowNodeStateManager);
break;
case SUB_PROCESS:
archiveFlowNodeInstance = toArchivedSubProcessActivityInstance((SASubProcessActivityInstance) saFlowNode, flowNodeStateManager);
break;
case GATEWAY:
archiveFlowNodeInstance = toArchivedGatewayInstance((SAGatewayInstance) saFlowNode, flowNodeStateManager);
break;
case MULTI_INSTANCE_ACTIVITY:
archiveFlowNodeInstance = toArchivedMultiInstanceActivityInstance((SAMultiInstanceActivityInstance) saFlowNode, flowNodeStateManager);
break;
case BOUNDARY_EVENT:
case START_EVENT:
case INTERMEDIATE_CATCH_EVENT:
case INTERMEDIATE_THROW_EVENT:
case END_EVENT:
// archiveFlowNodeInstance = toArchivedEventInstance((SAEventInstance) saFlowNode, flowNodeStateManager);
break;
default:
throw new UnknownElementType(saFlowNode.getType().name());
}
return archiveFlowNodeInstance;
}
public static long getCurrentUserId() {
SessionAccessor sessionAccessor;
try {
sessionAccessor = ServiceAccessorFactory.getInstance().createSessionAccessor();
final PlatformServiceAccessor platformServiceAccessor = ServiceAccessorFactory.getInstance().createPlatformServiceAccessor();
return platformServiceAccessor.getSessionService().getSession(sessionAccessor.getSessionId()).getUserId();
} catch (final BonitaHomeNotSetException e) {
throw new RuntimeException(e);
} catch (final BonitaHomeConfigurationException e) {
throw new RuntimeException(e);
} catch (final InstantiationException e) {
throw new RuntimeException(e);
} catch (final IllegalAccessException e) {
throw new RuntimeException(e);
} catch (final ClassNotFoundException e) {
throw new RuntimeException(e);
} catch (final IOException e) {
throw new RuntimeException(e);
} catch (final SessionIdNotSetException e) {
throw new RuntimeException(e);
} catch (final SSessionNotFoundException e) {
throw new RuntimeException(e);
}
}
public static List toConnectorInstances(final List sConnectorInstances) {
final ArrayList connectorInstances = new ArrayList(sConnectorInstances.size());
for (final SConnectorInstance sConnectorInstance : sConnectorInstances) {
connectorInstances.add(toConnectorInstance(sConnectorInstance));
}
return connectorInstances;
}
private static ConnectorInstance toConnectorInstance(final SConnectorInstance sConnectorInstance) {
final ConnectorInstanceImpl connectorInstanceImpl = new ConnectorInstanceImpl(sConnectorInstance.getName(), sConnectorInstance.getContainerId(),
sConnectorInstance.getContainerType(), sConnectorInstance.getConnectorId(), sConnectorInstance.getVersion(),
ConnectorState.valueOf(sConnectorInstance.getState()), sConnectorInstance.getActivationEvent());
connectorInstanceImpl.setId(sConnectorInstance.getId());
return connectorInstanceImpl;
}
public static ArchivedConnectorInstance toArchivedConnectorInstance(final SAConnectorInstance sAConnectorInstance) {
final ArchivedConnectorInstanceImpl connectorInstanceImpl = new ArchivedConnectorInstanceImpl(sAConnectorInstance.getName(), new Date(
sAConnectorInstance.getArchiveDate()), sAConnectorInstance.getContainerId(), sAConnectorInstance.getContainerType(),
sAConnectorInstance.getConnectorId(), sAConnectorInstance.getVersion(), sAConnectorInstance.getActivationEvent(),
ConnectorState.valueOf(sAConnectorInstance.getState()), sAConnectorInstance.getSourceObjectId());
connectorInstanceImpl.setId(sAConnectorInstance.getId());
return connectorInstanceImpl;
}
public static List toArchivedConnectorInstances(final List serverObjects) {
final List commments = new ArrayList();
for (final SAConnectorInstance saConnectorInstance : serverObjects) {
final ArchivedConnectorInstance archivedConnectorInstance = toArchivedConnectorInstance(saConnectorInstance);
commments.add(archivedConnectorInstance);
}
return commments;
}
public static List toProfiles(final List sProfiles) {
final List profiles = new ArrayList(sProfiles.size());
for (final SProfile sProfile : sProfiles) {
final Profile profile = toProfile(sProfile);
profiles.add(profile);
}
return profiles;
}
public static Profile toProfile(final SProfile sProfile) {
final ProfileImpl profileImpl = new ProfileImpl(sProfile.getName());
profileImpl.setId(sProfile.getId());
profileImpl.setDescription(sProfile.getDescription());
profileImpl.setIconPath(sProfile.getIconPath());
return profileImpl;
}
public static List toProfileEntries(final List sProfileEntries) {
final List profiles = new ArrayList(sProfileEntries.size());
for (final SProfileEntry sProfileEntry : sProfileEntries) {
final ProfileEntry profile = toProfileEntry(sProfileEntry);
profiles.add(profile);
}
return profiles;
}
public static ProfileEntry toProfileEntry(final SProfileEntry sProfileEntry) {
final ProfileEntryImpl profileEntryImpl = new ProfileEntryImpl(sProfileEntry.getName(), sProfileEntry.getProfileId());
profileEntryImpl.setId(sProfileEntry.getId());
profileEntryImpl.setDescription(sProfileEntry.getDescription());
profileEntryImpl.setIndex(sProfileEntry.getIndex());
profileEntryImpl.setPage(sProfileEntry.getPage());
profileEntryImpl.setParentId(sProfileEntry.getParentId());
profileEntryImpl.setType(sProfileEntry.getType());
return profileEntryImpl;
}
public static List toProfileMembers(final List sProfileMembers) {
final List profiles = new ArrayList(sProfileMembers.size());
for (final SProfileMember sProfileMember : sProfileMembers) {
final ProfileMember profile = toProfileMember(sProfileMember);
profiles.add(profile);
}
return profiles;
}
public static ProfileMember toProfileMember(final SProfileMember sProfileMember) {
final ProfileMemberImpl profileMemberImpl = new ProfileMemberImpl();
profileMemberImpl.setId(sProfileMember.getId());
profileMemberImpl.setDisplayNamePart1(sProfileMember.getDisplayNamePart1());
profileMemberImpl.setDisplayNamePart2(sProfileMember.getDisplayNamePart2());
profileMemberImpl.setDisplayNamePart3(sProfileMember.getDisplayNamePart3());
profileMemberImpl.setGroupId(sProfileMember.getGroupId());
profileMemberImpl.setProfileId(sProfileMember.getProfileId());
profileMemberImpl.setRoleId(sProfileMember.getRoleId());
profileMemberImpl.setUserId(sProfileMember.getUserId());
return profileMemberImpl;
}
public static SProfileMember constructSProfileMember(final ProfileMemberCreator creator, final SProfileMemberBuilder sProfileMemberBuilder) {
final Map fields = creator.getFields();
final SProfileMemberBuilder newSProfileMemberBuilder = sProfileMemberBuilder.createNewInstance((Long) fields.get(ProfileMemberField.PROFILE_ID));
final Long groupeId = (Long) fields.get(ProfileMemberField.GROUP_ID);
if (groupeId != null) {
newSProfileMemberBuilder.setGroupId(groupeId);
}
final Long roleId = (Long) fields.get(ProfileMemberField.ROLE_ID);
if (roleId != null) {
newSProfileMemberBuilder.setRoleId(roleId);
}
final Long userId = (Long) fields.get(ProfileMemberField.USER_ID);
if (userId != null) {
newSProfileMemberBuilder.setUserId(userId);
}
return newSProfileMemberBuilder.done();
}
public static Report toReport(final SReport sReport) {
final ReportImpl report = new ReportImpl(sReport.getId(), sReport.getName(), sReport.getInstallationDate(), sReport.getInstalledBy());
report.setDescription(sReport.getDescription());
report.setProvided(sReport.isProvided());
return report;
}
public static List toReports(final List sReports) {
final List reports = new ArrayList(sReports.size());
for (final SReport sReport : sReports) {
reports.add(toReport(sReport));
}
return reports;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy