# File lib/state_machine/event_collection.rb, line 114
    def attribute_transition_for(object, invalidate = false)
      return unless machine.action
      
      result = machine.read(object, :event_transition) || if event_name = machine.read(object, :event)
        if event = self[event_name.to_sym, :name]
          event.transition_for(object) || begin
            # No valid transition: invalidate
            machine.invalidate(object, :event, :invalid_event, [[:state, machine.states.match!(object).human_name(object.class)]]) if invalidate
            false
          end
        else
          # Event is unknown: invalidate
          machine.invalidate(object, :event, :invalid) if invalidate
          false
        end
      end
      
      result
    end