@Override public Object getMetaData(String name) { return ((NodeImpl)node).getMetaData(name); }
protected boolean containsMetaData(final Node node) { for (Map.Entry<String, Object> entry: ((NodeImpl) node).getMetaData().entrySet()) { String name = entry.getKey(); if (!"x".equals(name) && !"y".equals(name) && !"width".equals(name) && !"height".equals(name) && !"color".equals(name) && !"UniqueId".equals(name) && entry.getValue() instanceof String) { return true; } } return false; }
public void setId(final long id) { this.id = id; String uniqueId = (String) getMetaData("UniqueId"); if( uniqueId == null ) { setMetaData("UniqueId", "_jbpm-unique-" + uniqueIdGen.getAndIncrement() ); } }
protected void writeMetaData(final Node node, final StringBuilder xmlDump) { for (Map.Entry<String, Object> entry: ((NodeImpl) node).getMetaData().entrySet()) { String name = entry.getKey(); if (!"x".equals(name) && !"y".equals(name) && !"width".equals(name) && !"height".equals(name) && !"color".equals(name) && entry.getValue() instanceof String) { xmlDump.append(" <metaData name=\"" + name + "\">" + EOL); xmlDump.append(" <value>" + entry.getValue() + "</value>" + EOL); xmlDump.append(" </metaData>" + EOL); } } }
protected String getSignalExpression(NodeImpl node, String signalName, String variable) { String signalExpression = RUNTIME_SIGNAL_EVENT; String scope = (String) node.getMetaData("customScope"); if ("processInstance".equalsIgnoreCase(scope)) { signalExpression = PROCESS_INSTANCE_SIGNAL_EVENT + "org.jbpm.process.instance.impl.util.VariableUtil.resolveVariable(\""+ signalName + "\", kcontext.getNodeInstance()), " + (variable == null ? "null" : variable) + ");"; } else if ("runtimeManager".equalsIgnoreCase(scope) || "project".equalsIgnoreCase(scope)) { signalExpression = RUNTIME_MANAGER_SIGNAL_EVENT + "org.jbpm.process.instance.impl.util.VariableUtil.resolveVariable(\""+ signalName + "\", kcontext.getNodeInstance()), " + (variable == null ? "null" : variable) + ");"; } else if ("external".equalsIgnoreCase(scope)) { signalExpression = "org.drools.core.process.instance.impl.WorkItemImpl workItem = new org.drools.core.process.instance.impl.WorkItemImpl();" + EOL + "workItem.setName(\"External Send Task\");" + EOL + "workItem.setNodeInstanceId(kcontext.getNodeInstance().getId());" + EOL + "workItem.setProcessInstanceId(kcontext.getProcessInstance().getId());" + EOL + "workItem.setNodeId(kcontext.getNodeInstance().getNodeId());" + EOL + "workItem.setDeploymentId((String) kcontext.getKnowledgeRuntime().getEnvironment().get(\"deploymentId\"));" + EOL + "workItem.setParameter(\"Signal\", org.jbpm.process.instance.impl.util.VariableUtil.resolveVariable(\""+ signalName + "\", kcontext.getNodeInstance()));" + EOL + "workItem.setParameter(\"SignalProcessInstanceId\", kcontext.getVariable(\"SignalProcessInstanceId\"));" + EOL + "workItem.setParameter(\"SignalWorkItemId\", kcontext.getVariable(\"SignalWorkItemId\"));" + EOL + "workItem.setParameter(\"SignalDeploymentId\", kcontext.getVariable(\"SignalDeploymentId\"));" + EOL + (variable == null ? "" : "workItem.setParameter(\"Data\", " + variable + ");" + EOL) + "((org.drools.core.process.instance.WorkItemManager) kcontext.getKnowledgeRuntime().getWorkItemManager()).internalExecuteWorkItem(workItem);"; } else { signalExpression = signalExpression + "org.jbpm.process.instance.impl.util.VariableUtil.resolveVariable(\""+ signalName + "\", kcontext.getNodeInstance()), " + (variable == null ? "null" : variable) + ");"; } return signalExpression; }
public void setContextContainer(ContextContainer contextContainer) { assert contextContainer instanceof NodeContainer : "CompensationScope context container instance is NOT an instance of a node container! " + "(" + contextContainer.getClass().getSimpleName() + ")"; super.setContextContainer(contextContainer); if( contextContainer instanceof NodeImpl ) { containerId = (String) ((NodeImpl) contextContainer).getMetaData("UniqueId"); } else if( contextContainer instanceof RuleFlowProcess ) { containerId = (String) ((Process) contextContainer).getId(); } }
public Object end(final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { Element element = parser.endElementBuilder(); Object parent = parser.getParent(); if (parent instanceof NodeImpl) { String text = ((Text)element.getChildNodes().item( 0 )).getWholeText(); if (text != null) { text = text.trim(); if ("".equals(text)) { text = null; } } ((NodeImpl) parent).getMetaData().put("Documentation", text); } return parser.getCurrent(); }
+ ((String) ((NodeImpl)target).getMetaData("UniqueId")) + "] associated with a Boundary Compensation Event must be a Task or a (non-Event) Sub-Process"); + ((String) targetNode.getMetaData("UniqueId")) + "] may not have any outgoing connection [" + (String) outgoingConnection.getMetaData("UniqueId") + "]");
if( completedIds.contains(((NodeImpl) handlerNode.getNodeContainer()).getMetaData("UniqueId")) ) { NodeInstance subProcessNodeInstance = ((NodeInstanceContainer) nodeInstanceContainer).getNodeInstance((Node) handlerNode.getNodeContainer());
String oldNodeId = (String) ((NodeImpl) ((org.jbpm.workflow.instance.NodeInstance) nodeInstance).getNode()).getMetaData().get("UniqueId"); String newNodeId = nodeMapping.get(oldNodeId); if (newNodeId == null) { Boolean isHidden = (Boolean) ((NodeImpl) ((org.jbpm.workflow.instance.NodeInstance) nodeInstance).getNode()).getMetaData().get("hidden"); if (isHidden != null && isHidden.booleanValue()) {
private static void updateNodeInstances(NodeInstanceContainer nodeInstanceContainer, Map<String, Long> nodeMapping) { for (NodeInstance nodeInstance : nodeInstanceContainer.getNodeInstances()) { String oldNodeId = ((NodeImpl) ((org.jbpm.workflow.instance.NodeInstance) nodeInstance).getNode()).getUniqueId(); Long newNodeId = nodeMapping.get(oldNodeId); if (newNodeId == null) { newNodeId = nodeInstance.getNodeId(); } // clean up iteration levels for removed (old) nodes Map<String, Integer> iterLevels = ((WorkflowProcessInstanceImpl) nodeInstance.getProcessInstance()).getIterationLevels(); String uniqueId = (String) ((NodeImpl) nodeInstance.getNode()).getMetaData("UniqueId"); iterLevels.remove(uniqueId); // and now set to new node id ((NodeInstanceImpl) nodeInstance).setNodeId(newNodeId); if (nodeInstance instanceof NodeInstanceContainer) { updateNodeInstances((NodeInstanceContainer) nodeInstance, nodeMapping); } } }
parentId = ((RuleFlowProcess) nodeParent).getId(); } else { parentId = (String) ((NodeImpl) nodeParent).getMetaData("UniqueId");
parentId = ((RuleFlowProcess) nodeParent).getId(); } else { parentId = (String) ((NodeImpl) nodeParent).getMetaData("UniqueId");
Object compensationObject = targetNodeImpl.getMetaData(isForCompensation); if( compensationObject == null ) { targetNodeImpl.setMetaData(isForCompensation, true);
private static Constraint buildConstraint(SequenceFlow connection, NodeImpl node) { if (connection.getExpression() == null) { return null; } Constraint constraint = new ConstraintImpl(); String defaultConnection = (String) node.getMetaData("Default"); if (defaultConnection != null && defaultConnection.equals(connection.getId())) { constraint.setDefault(true); } if (connection.getName() != null) { constraint.setName(connection.getName()); } else { constraint.setName(""); } if (connection.getType() != null) { constraint.setType(connection.getType()); } else { constraint.setType("code"); } if (connection.getLanguage() != null) { constraint.setDialect(connection.getLanguage()); } if (connection.getExpression() != null) { constraint.setConstraint(connection.getExpression()); } constraint.setPriority(connection.getPriority()); return constraint; }
private static Constraint buildConstraint(SequenceFlow connection, NodeImpl node) { if (connection.getExpression() == null) { return null; } Constraint constraint = new ConstraintImpl(); String defaultConnection = (String) node.getMetaData("Default"); if (defaultConnection != null && defaultConnection.equals(connection.getId())) { constraint.setDefault(true); } if (connection.getName() != null) { constraint.setName(connection.getName()); } else { constraint.setName(""); } if (connection.getType() != null) { constraint.setType(connection.getType()); } else { constraint.setType("code"); } if (connection.getLanguage() != null) { constraint.setDialect(connection.getLanguage()); } if (connection.getExpression() != null) { constraint.setConstraint(connection.getExpression()); } constraint.setPriority(connection.getPriority()); return constraint; }
@Override public Object getMetaData(String name) { return ((NodeImpl)node).getMetaData(name); }
public void setId(final long id) { this.id = id; String uniqueId = (String) getMetaData("UniqueId"); if( uniqueId == null ) { setMetaData("UniqueId", "_jbpm-unique-" + uniqueIdGen.getAndIncrement() ); } }
protected boolean containsMetaData(final Node node) { for (Map.Entry<String, Object> entry: ((NodeImpl) node).getMetaData().entrySet()) { String name = entry.getKey(); if (!"x".equals(name) && !"y".equals(name) && !"width".equals(name) && !"height".equals(name) && !"color".equals(name) && !"UniqueId".equals(name) && entry.getValue() instanceof String) { return true; } } return false; }
public void setContextContainer(ContextContainer contextContainer) { assert contextContainer instanceof NodeContainer : "CompensationScope context container instance is NOT an instance of a node container! " + "(" + contextContainer.getClass().getSimpleName() + ")"; super.setContextContainer(contextContainer); if( contextContainer instanceof NodeImpl ) { containerId = (String) ((NodeImpl) contextContainer).getMetaData("UniqueId"); } else if( contextContainer instanceof RuleFlowProcess ) { containerId = (String) ((Process) contextContainer).getId(); } }