@Override
 protected DataStoreReference createFlowElement(ICreateContext context) {
   DataStoreReference dataStoreReference = null;
   try {
     dataStoreReference = ModelHandler.FACTORY.createDataStoreReference();
     dataStoreReference.setName("Data Store Ref");
     DataStore dataStore = ModelHandler.FACTORY.createDataStore();
     dataStore.setName("Data Store");
     dataStore.setId(EcoreUtil.generateUUID());
     ModelHandler.getInstance(getDiagram()).addRootElement(dataStore);
   } catch (IOException e) {
     Activator.showErrorWithLogging(e);
   }
   return dataStoreReference;
 }
 @Override
 protected Task createFlowElement(ICreateContext context) {
   SendTask task = ModelHandler.FACTORY.createSendTask();
   task.setName("Send Task");
   task.setImplementation("##unspecified");
   return task;
 }
 @Override
 protected Event createFlowElement(ICreateContext context) {
   EndEvent end = ModelHandler.FACTORY.createEndEvent();
   end.setName("End");
   return end;
 }
 @Override
 protected EventDefinition createEventDefinition(ICreateContext context) {
   return ModelHandler.FACTORY.createConditionalEventDefinition();
 }