use of org.kie.kogito.serialization.process.ProcessInstanceMarshallerException in project kogito-runtimes by kiegroup.
the class ProtobufJsonNodeMessageMarshaller method unmarshall.
@Override
public Object unmarshall(Object marshalled) {
try {
Any data = (Any) marshalled;
KogitoTypesProtobuf.JsonNode storedValue = data.unpack(KogitoTypesProtobuf.JsonNode.class);
JsonNode node = ObjectMapperFactory.get().readTree(storedValue.getContent());
return node;
} catch (InvalidProtocolBufferException | JsonProcessingException e1) {
throw new ProcessInstanceMarshallerException("Error trying to unmarshalling a Json Node value", e1);
}
}
use of org.kie.kogito.serialization.process.ProcessInstanceMarshallerException in project kogito-runtimes by kiegroup.
the class ProtobufLongMarshallerStrategy method unmarshall.
@Override
public Object unmarshall(Object marshalled) {
try {
Any data = (Any) marshalled;
Int64Value storedValue = data.unpack(Int64Value.class);
return storedValue.getValue();
} catch (InvalidProtocolBufferException e1) {
throw new ProcessInstanceMarshallerException("Error trying to unmarshalling a long value", e1);
}
}
use of org.kie.kogito.serialization.process.ProcessInstanceMarshallerException in project kogito-runtimes by kiegroup.
the class ProtobufProcessInstanceReader method buildWorkItemNodeInstance.
private NodeInstanceImpl buildWorkItemNodeInstance(WorkItemNodeInstanceContent content) {
try {
WorkItemNodeInstance nodeInstance = instanceWorkItem(content);
if (nodeInstance instanceof HumanTaskNodeInstance) {
HumanTaskNodeInstance humanTaskNodeInstance = (HumanTaskNodeInstance) nodeInstance;
HumanTaskWorkItemImpl workItem = (HumanTaskWorkItemImpl) nodeInstance.getWorkItem();
Any workItemDataMessage = content.getWorkItemData();
if (workItemDataMessage.is(HumanTaskWorkItemData.class)) {
HumanTaskWorkItemData workItemData = workItemDataMessage.unpack(HumanTaskWorkItemData.class);
humanTaskNodeInstance.getNotCompletedDeadlineTimers().putAll(buildDeadlines(workItemData.getCompletedDeadlinesMap()));
humanTaskNodeInstance.getNotCompletedReassigments().putAll(buildReassignments(workItemData.getCompletedReassigmentsMap()));
humanTaskNodeInstance.getNotStartedDeadlineTimers().putAll(buildDeadlines(workItemData.getStartDeadlinesMap()));
humanTaskNodeInstance.getNotStartedReassignments().putAll(buildReassignments(workItemData.getStartReassigmentsMap()));
if (workItemData.hasTaskName()) {
workItem.setTaskName(workItemData.getTaskName());
}
if (workItemData.hasTaskDescription()) {
workItem.setTaskDescription(workItemData.getTaskDescription());
}
if (workItemData.hasTaskPriority()) {
workItem.setTaskPriority(workItemData.getTaskPriority());
}
if (workItemData.hasTaskReferenceName()) {
workItem.setReferenceName(workItemData.getTaskReferenceName());
}
if (workItemData.hasActualOwner()) {
workItem.setActualOwner(workItemData.getActualOwner());
}
workItem.getAdminUsers().addAll(workItemData.getAdminUsersList());
workItem.getAdminGroups().addAll(workItemData.getAdminGroupsList());
workItem.getPotentialUsers().addAll(workItemData.getPotUsersList());
workItem.getPotentialGroups().addAll(workItemData.getPotGroupsList());
workItem.getExcludedUsers().addAll(workItemData.getExcludedUsersList());
workItem.getComments().putAll(workItemData.getCommentsList().stream().map(this::buildComment).collect(Collectors.toMap(Comment::getId, Function.identity())));
workItem.getAttachments().putAll(workItemData.getAttachmentsList().stream().map(this::buildAttachment).collect(Collectors.toMap(Attachment::getId, Function.identity())));
}
}
nodeInstance.internalSetWorkItemId(content.getWorkItemId());
KogitoWorkItemImpl workItem = (KogitoWorkItemImpl) nodeInstance.getWorkItem();
workItem.setId(content.getWorkItemId());
workItem.setProcessInstanceId(ruleFlowProcessInstance.getStringId());
workItem.setName(content.getName());
workItem.setState(content.getState());
workItem.setDeploymentId(ruleFlowProcessInstance.getDeploymentId());
workItem.setProcessInstance(ruleFlowProcessInstance);
workItem.setPhaseId(content.getPhaseId());
workItem.setPhaseStatus(content.getPhaseStatus());
workItem.setStartDate(new Date(content.getStartDate()));
if (content.getCompleteDate() > 0) {
workItem.setCompleteDate(new Date(content.getCompleteDate()));
}
if (content.getTimerInstanceIdCount() > 0) {
nodeInstance.internalSetTimerInstances(new ArrayList<>(content.getTimerInstanceIdList()));
}
nodeInstance.internalSetProcessInstanceId(content.getErrorHandlingProcessInstanceId());
varReader.buildVariables(content.getVariableList()).forEach(var -> nodeInstance.getWorkItem().getParameters().put(var.getName(), var.getValue()));
varReader.buildVariables(content.getResultList()).forEach(var -> nodeInstance.getWorkItem().getResults().put(var.getName(), var.getValue()));
return nodeInstance;
} catch (InvalidProtocolBufferException ex) {
throw new ProcessInstanceMarshallerException("cannot unpack node instance", ex);
}
}
use of org.kie.kogito.serialization.process.ProcessInstanceMarshallerException in project kogito-runtimes by kiegroup.
the class ProtobufProcessInstanceReader method instanceWorkItem.
private WorkItemNodeInstance instanceWorkItem(WorkItemNodeInstanceContent content) {
if (content.hasWorkItemData()) {
Any workItemDataMessage = content.getWorkItemData();
if (workItemDataMessage.is(HumanTaskWorkItemData.class)) {
HumanTaskNodeInstance nodeInstance = new HumanTaskNodeInstance();
HumanTaskWorkItemImpl workItem = new HumanTaskWorkItemImpl();
nodeInstance.internalSetWorkItem(workItem);
return nodeInstance;
} else {
throw new ProcessInstanceMarshallerException("Don't know which type of work item is");
}
} else {
WorkItemNodeInstance nodeInstance = new WorkItemNodeInstance();
KogitoWorkItemImpl workItem = new KogitoWorkItemImpl();
nodeInstance.internalSetWorkItem(workItem);
return nodeInstance;
}
}
use of org.kie.kogito.serialization.process.ProcessInstanceMarshallerException in project kogito-runtimes by kiegroup.
the class ProtobufDoubleMarshallerStrategy method unmarshall.
@Override
public Object unmarshall(Object marshalled) {
try {
Any data = (Any) marshalled;
DoubleValue storedValue = data.unpack(DoubleValue.class);
return storedValue.getValue();
} catch (InvalidProtocolBufferException e1) {
throw new ProcessInstanceMarshallerException("Error trying to unmarshalling a double value", e1);
}
}
Aggregations