@Override public Object[] create(ICreateContext context) { ServiceTask newServiceTask = new ServiceTask(); newServiceTask.setName("Service Task"); newServiceTask.setExtensionId(customServiceTaskId); // Process custom service tasks if (newServiceTask.isExtended()) { CustomServiceTask targetTask = findCustomServiceTask(newServiceTask); if (targetTask != null) { // Create custom property containing task name CustomProperty customServiceTaskProperty = new CustomProperty(); customServiceTaskProperty.setId( ExtensionUtil.wrapCustomPropertyId( newServiceTask, ExtensionConstants.PROPERTY_ID_CUSTOM_SERVICE_TASK)); customServiceTaskProperty.setName(ExtensionConstants.PROPERTY_ID_CUSTOM_SERVICE_TASK); customServiceTaskProperty.setSimpleValue(this.customServiceTaskId); newServiceTask.getCustomProperties().add(customServiceTaskProperty); newServiceTask.setImplementation(targetTask.getRuntimeClassname()); newServiceTask.setName(targetTask.getName()); } } addObjectToContainer(context, newServiceTask, newServiceTask.getName()); return new Object[] {newServiceTask}; }
@Override public Object[] create(ICreateContext context) { ServiceTask newServiceTask = new ServiceTask(); newServiceTask.setName("Service Task"); newServiceTask.setExtensionId(customServiceTaskId); newServiceTask.setAsynchronous(true); // Process custom service tasks if (newServiceTask.isExtended()) { CustomServiceTask targetTask = findCustomServiceTask(newServiceTask); if (targetTask != null) { // What should happen if the class contain more than one annotations? switch (targetTask.getDelegateType()) { case JAVA_DELEGATE_CLASS: newServiceTask.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_CLASS); newServiceTask.setImplementation(targetTask.getDelegateSpecification()); break; case EXPRESSION: newServiceTask.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION); newServiceTask.setImplementation(targetTask.getDelegateSpecification()); break; case JAVA_DELEGATE_EXPRESSION: newServiceTask.setImplementationType( ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION); newServiceTask.setImplementation(targetTask.getDelegateSpecification()); break; } newServiceTask.setName(targetTask.getName()); } } addObjectToContainer(context, newServiceTask, newServiceTask.getName()); return new Object[] {newServiceTask}; }