parentObject instanceof SubProcess || parentObject instanceof Lane);
}
@Override
public Object[] create(ICreateContext context) {
ServiceTask newMailTask = new ServiceTask();
newMailTask.setImplementation(AlfrescoScriptTask.ALFRESCO_SCRIPT_DELEGATE);
newMailTask.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_CLASS);
newMailTask.setId(getNextId(newMailTask));
newMailTask.setName("Alfresco Mail Task");
FieldExtension fieldExtension = new FieldExtension();
fieldExtension.setFieldName("script");
fieldExtension.setStringValue("var mail = actions.create(\"mail\");\nmail.execute(bpm_package);");
newMailTask.getFieldExtensions().add(fieldExtension);
Object parentObject = getBusinessObjectForPictogramElement(context.getTargetContainer());
if (parentObject instanceof SubProcess) {
((SubProcess) parentObject).addFlowElement(newMailTask);
} else if (parentObject instanceof Lane) {
final Lane lane = (Lane) parentObject;
lane.getFlowReferences().add(newMailTask.getId());
lane.getParentProcess().addFlowElement(newMailTask);
} else {
Bpmn2MemoryModel model = ModelHandler.getModel(EcoreUtil.getURI(getDiagram()));
if (model.getBpmnModel().getMainProcess() == null) {