public ServiceTaskExpressionActivityBehavior(ServiceTask serviceTask, Expression expression, Expression skipExpression) { this.serviceTaskId = serviceTask.getId(); this.expression = expression; this.skipExpression = skipExpression; this.resultVariable = serviceTask.getResultVariableName(); this.mapExceptions = serviceTask.getMapExceptions(); this.useLocalScopeForResultVariable = serviceTask.isUseLocalScopeForResultVariable(); }
@Override public ActivityBehavior createHttpActivityBehavior(ServiceTask serviceTask) { try { Class<?> theClass = null; FieldExtension behaviorExtension = null; for (FieldExtension fieldExtension : serviceTask.getFieldExtensions()) { if ("httpActivityBehaviorClass".equals(fieldExtension.getFieldName()) && StringUtils.isNotEmpty(fieldExtension.getStringValue())) { theClass = Class.forName(fieldExtension.getStringValue()); behaviorExtension = fieldExtension; break; } } if (behaviorExtension != null) { serviceTask.getFieldExtensions().remove(behaviorExtension); } if (theClass == null) { // Default Http behavior class theClass = Class.forName("org.flowable.http.bpmn.impl.HttpActivityBehaviorImpl"); } List<FieldDeclaration> fieldDeclarations = createFieldDeclarations(serviceTask.getFieldExtensions()); addExceptionMapAsFieldDeclaration(fieldDeclarations, serviceTask.getMapExceptions()); return (ActivityBehavior) ClassDelegate.defaultInstantiateDelegate(theClass, fieldDeclarations, serviceTask); } catch (ClassNotFoundException e) { throw new FlowableException("Could not find org.flowable.http.HttpActivityBehavior: ", e); } }
@Override public ClassDelegate createClassDelegateServiceTask(ServiceTask serviceTask) { Expression skipExpression; if (StringUtils.isNotEmpty(serviceTask.getSkipExpression())) { skipExpression = expressionManager.createExpression(serviceTask.getSkipExpression()); } else { skipExpression = null; } return new ClassDelegate(serviceTask.getId(), serviceTask.getImplementation(), createFieldDeclarations(serviceTask.getFieldExtensions()), skipExpression, serviceTask.getMapExceptions()); }
@Override public ServiceTaskExpressionActivityBehavior createServiceTaskExpressionActivityBehavior(ServiceTask serviceTask) { Expression expression = expressionManager.createExpression(serviceTask.getImplementation()); Expression skipExpression; if (StringUtils.isNotEmpty(serviceTask.getSkipExpression())) { skipExpression = expressionManager.createExpression(serviceTask.getSkipExpression()); } else { skipExpression = null; } return new ServiceTaskExpressionActivityBehavior(serviceTask.getId(), expression, skipExpression, serviceTask.getResultVariableName(), serviceTask.getMapExceptions()); }
@Override public ServiceTaskDelegateExpressionActivityBehavior createServiceTaskDelegateExpressionActivityBehavior(ServiceTask serviceTask) { Expression delegateExpression = expressionManager.createExpression(serviceTask.getImplementation()); Expression skipExpression; if (StringUtils.isNotEmpty(serviceTask.getSkipExpression())) { skipExpression = expressionManager.createExpression(serviceTask.getSkipExpression()); } else { skipExpression = null; } return new ServiceTaskDelegateExpressionActivityBehavior(serviceTask.getId(), delegateExpression, skipExpression, createFieldDeclarations(serviceTask.getFieldExtensions()), serviceTask.getMapExceptions()); }
@Override public ClassDelegate createClassDelegateServiceTask(ServiceTask serviceTask) { return classDelegateFactory.create(serviceTask.getId(), serviceTask.getImplementation(), createFieldDeclarations(serviceTask.getFieldExtensions()), serviceTask.isTriggerable(), getSkipExpressionFromServiceTask(serviceTask), serviceTask.getMapExceptions()); }
@Override public ServiceTaskDelegateExpressionActivityBehavior createServiceTaskDelegateExpressionActivityBehavior(ServiceTask serviceTask) { Expression delegateExpression = expressionManager.createExpression(serviceTask.getImplementation()); return new ServiceTaskDelegateExpressionActivityBehavior(serviceTask.getId(), delegateExpression, getSkipExpressionFromServiceTask(serviceTask), createFieldDeclarations(serviceTask.getFieldExtensions()), serviceTask.getMapExceptions(), serviceTask.isTriggerable()); }