# File lib/transitions/state_transition.rb, line 43
    def execute(obj, *args)
      case @on_transition
      when Symbol, String
        obj.send(@on_transition, *args)
      when Proc
        @on_transition.call(obj, *args)
      when Array
        @on_transition.each do |callback|
          # Yes, we're passing always the same parameters for each callback in here.
          # We should probably drop args altogether in case we get an array.
          obj.send(callback, *args)
        end
      else
        # TODO: We probably should check for this in the constructor and not that late.
        fail ArgumentError,
             "You can only pass a Symbol, a String, a Proc or an Array to 'on_transition'"\
             " - got #{@on_transition.class}." unless @on_transition.nil?
      end
    end