text: 'use strict'
  
  var getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject,
    is = require('bpmn-js/lib/util/ModelUtil').is,
    forEach = require('lodash/forEach')
  
  var EventDefinitionHelper = {}
  
  module.exports = EventDefinitionHelper
  
  EventDefinitionHelper.getEventDefinition = function(element, eventType) {
    var bo = getBusinessObject(element),
      eventDefinition = null
  
    if (bo.eventDefinitions) {
      forEach(bo.eventDefinitions, function(event) {
        if (is(event, eventType)) {
          eventDefinition = event
        }
      })
    }
  
    return eventDefinition
  }
  
  EventDefinitionHelper.getTimerEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:TimerEventDefinition')
  }
  
  EventDefinitionHelper.getMessageEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:MessageEventDefinition')
  }
  
  EventDefinitionHelper.getSignalEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:SignalEventDefinition')
  }
  
  EventDefinitionHelper.getErrorEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:ErrorEventDefinition')
  }
  
  EventDefinitionHelper.getEscalationEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:EscalationEventDefinition')
  }
  
  EventDefinitionHelper.getCompensateEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:CompensateEventDefinition')
  }
  
  EventDefinitionHelper.getLinkEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:LinkEventDefinition')
  }
  
  EventDefinitionHelper.getConditionalEventDefinition = function(element) {
    return this.getEventDefinition(element, 'bpmn:ConditionalEventDefinition')
  }
  