use of org.activiti.bpmn.model.IntermediateCatchEvent in project Activiti by Activiti.
the class CompleteConverterTest method validateModel.
private void validateModel(BpmnModel model) {
FlowElement flowElement = model.getMainProcess().getFlowElement("userTask1");
assertNotNull(flowElement);
assertTrue(flowElement instanceof UserTask);
assertEquals("userTask1", flowElement.getId());
flowElement = model.getMainProcess().getFlowElement("catchsignal");
assertNotNull(flowElement);
assertTrue(flowElement instanceof IntermediateCatchEvent);
assertEquals("catchsignal", flowElement.getId());
IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) flowElement;
assertEquals(1, catchEvent.getEventDefinitions().size());
assertTrue(catchEvent.getEventDefinitions().get(0) instanceof SignalEventDefinition);
SignalEventDefinition signalEvent = (SignalEventDefinition) catchEvent.getEventDefinitions().get(0);
assertEquals("testSignal", signalEvent.getSignalRef());
flowElement = model.getMainProcess().getFlowElement("subprocess");
assertNotNull(flowElement);
assertTrue(flowElement instanceof SubProcess);
assertEquals("subprocess", flowElement.getId());
SubProcess subProcess = (SubProcess) flowElement;
flowElement = subProcess.getFlowElement("receiveTask");
assertNotNull(flowElement);
assertTrue(flowElement instanceof ReceiveTask);
assertEquals("receiveTask", flowElement.getId());
}
use of org.activiti.bpmn.model.IntermediateCatchEvent in project Activiti by Activiti.
the class CatchEventXMLConverter method convertXMLToElement.
@Override
protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception {
IntermediateCatchEvent catchEvent = new IntermediateCatchEvent();
BpmnXMLUtil.addXMLLocation(catchEvent, xtr);
parseChildElements(getXMLElementName(), catchEvent, model, xtr);
return catchEvent;
}
use of org.activiti.bpmn.model.IntermediateCatchEvent in project Activiti by Activiti.
the class InitializeAlfrescoModelsConversionListener method afterStepsConversion.
@Override
public void afterStepsConversion(WorkflowDefinitionConversion conversion) {
M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
M2Namespace modelNamespace = model.getNamespaces().get(0);
for (FlowElement flowElement : conversion.getProcess().getFlowElements()) {
if (flowElement instanceof StartEvent) {
StartEvent startEvent = (StartEvent) flowElement;
if (startEvent.getFormKey() == null) {
Module module = AlfrescoConversionUtil.getExtension(conversion).getModules().get(0);
Configuration detailsForm = module.addConfiguration(EVALUATOR_STRING_COMPARE, MessageFormat.format(EVALUATOR_CONDITION_ACTIVITI, conversion.getProcess().getId()));
// is available
if (conversion.getWorkflowDefinition().getStartFormDefinition() != null && !conversion.getWorkflowDefinition().getStartFormDefinition().getFormGroups().isEmpty()) {
// Create the content model for the start-task
M2Type type = new M2Type();
model.getTypes().add(type);
type.setName(AlfrescoConversionUtil.getQualifiedName(modelNamespace.getPrefix(), AlfrescoConversionConstants.START_TASK_SIMPLE_NAME));
type.setParentName(AlfrescoConversionConstants.DEFAULT_START_FORM_TYPE);
// Create a form-config for the start-task
Module shareModule = AlfrescoConversionUtil.getExtension(conversion).getModules().get(0);
Configuration configuration = shareModule.addConfiguration(AlfrescoConversionConstants.EVALUATOR_TASK_TYPE, type.getName());
Form formConfig = configuration.createForm();
formConfig.setStartForm(true);
// Populate model and form based on FormDefinition
formCreator.createForm(type, formConfig, conversion.getWorkflowDefinition().getStartFormDefinition(), conversion);
// Use the same form-config for the workflow details
detailsForm.addForm(formConfig);
// Set formKey on start-event, referencing type
startEvent.setFormKey(type.getName());
} else {
// Revert to the default start-form
startEvent.setFormKey(DEFAULT_START_FORM_TYPE);
// Also add form-config to the share-module for workflow detail screen, based on the default form
populateDefaultDetailFormConfig(detailsForm);
}
}
}
}
// Check all elements that can contain PropertyReferences or need additional builders invoked
List<PropertyReference> references = AlfrescoConversionUtil.getPropertyReferences(conversion);
for (FlowElement element : conversion.getProcess().getFlowElements()) {
if (element instanceof SequenceFlow) {
resolvePropertyRefrencesInSequenceFlow((SequenceFlow) element, modelNamespace, references);
} else if (element instanceof IntermediateCatchEvent) {
resolvePropertyRefrencesInCatchEvent((IntermediateCatchEvent) element, modelNamespace, references);
} else if (element instanceof ServiceTask) {
resolvePropertyRefrencesInServiceTask((ServiceTask) element, modelNamespace, references);
} else if (element instanceof UserTask) {
addScriptListenersToUserTask((UserTask) element, conversion);
}
}
// Check if all property-references reference a valid property
if (references != null && !references.isEmpty()) {
for (PropertyReference reference : references) {
reference.validate(model);
}
}
}
use of org.activiti.bpmn.model.IntermediateCatchEvent in project Activiti by Activiti.
the class DelayStepDefinitionConverter method createProcessArtifact.
@Override
protected IntermediateCatchEvent createProcessArtifact(DelayStepDefinition stepDefinition, WorkflowDefinitionConversion conversion) {
IntermediateCatchEvent event = new IntermediateCatchEvent();
event.setId(conversion.getUniqueNumberedId(ConversionConstants.INTERMEDIATE_EVENT_ID_PREVIX));
event.setName(stepDefinition.getName());
event.setDocumentation(stepDefinition.getDescription());
TimerEventDefinition timer = new TimerEventDefinition();
event.addEventDefinition(timer);
if (stepDefinition.getTimeDate() != null) {
timer.setTimeDate(stepDefinition.getTimeDate());
} else if (stepDefinition.getTimeDuration() != null) {
timer.setTimeDuration(stepDefinition.getTimeDuration().toISO8601DurationString());
}
addFlowElement(conversion, event, true);
return event;
}
use of org.activiti.bpmn.model.IntermediateCatchEvent in project Activiti by Activiti.
the class CompleteConverterTest method validateModel.
private void validateModel(BpmnModel model) {
FlowElement flowElement = model.getMainProcess().getFlowElement("userTask1");
assertNotNull(flowElement);
assertTrue(flowElement instanceof UserTask);
assertEquals("userTask1", flowElement.getId());
flowElement = model.getMainProcess().getFlowElement("catchsignal");
assertNotNull(flowElement);
assertTrue(flowElement instanceof IntermediateCatchEvent);
assertEquals("catchsignal", flowElement.getId());
IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) flowElement;
assertEquals(1, catchEvent.getEventDefinitions().size());
assertTrue(catchEvent.getEventDefinitions().get(0) instanceof SignalEventDefinition);
SignalEventDefinition signalEvent = (SignalEventDefinition) catchEvent.getEventDefinitions().get(0);
assertEquals("testSignal", signalEvent.getSignalRef());
flowElement = model.getMainProcess().getFlowElement("subprocess");
assertNotNull(flowElement);
assertTrue(flowElement instanceof SubProcess);
assertEquals("subprocess", flowElement.getId());
SubProcess subProcess = (SubProcess) flowElement;
flowElement = subProcess.getFlowElement("receiveTask");
assertNotNull(flowElement);
assertTrue(flowElement instanceof ReceiveTask);
assertEquals("receiveTask", flowElement.getId());
}
Aggregations