class Roby::EventConstraints::UnboundTaskPredicate::NotFollowedBy
Representation of UnboundPredicateSupport#not_followed_by
See documentation from UnboundTaskPredicate
Public Instance Methods
code()
click to toggle source
# File lib/roby/event_constraints.rb, line 750 def code this_event = predicates[0].event_name other_event = predicates[1].event_name "(task_#{this_event} && (!task_#{other_event} || task_#{other_event}.time < task_#{this_event}.time))" end
explain_false(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 709 def explain_false(task) return if evaluate(task) this_generator = task.event(predicates[0].event_name) if !this_generator.last Explanation.new(false, self, [this_generator]) else other_generator = task.event(predicates[1].event_name) Explanation.new(false, self, [other_generator.last]) end end
explain_static(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 720 def explain_static(task) return if !static?(task) if predicates[0].static?(task) this_generator = task.event(predicates[0].event_name) if !predicates[0].evaluate(task) || !evaluate(task) Explanation.new(nil, self, [this_generator]) else other_generator = task.event(predicates[1].event_name) Explanation.new(nil, self, [this_generator, other_generator]) end else other_generator = task.event(predicates[1].event_name) Explanation.new(nil, self, [other_generator]) end end
explain_true(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 701 def explain_true(task) return if !evaluate(task) this_event = task.event(predicates[0].event_name).last other_generator = task.event(predicates[1].event_name) other_generator = other_generator.last || other_generator Explanation.new(true, self, [this_event, other_generator]) end
static?(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 736 def static?(task) event0 = task.event(predicates[0].event_name) event1 = task.event(predicates[1].event_name) if event0.unreachable? (!predicates[0].evaluate(task) || # stay false as first event can't emit !evaluate(task) || # stay false as first event can't emit predicates[1].static?(task)) elsif event1.unreachable? evaluate(task) # stays true as the second event cannot # appear after the first anymore end end
to_s()
click to toggle source
# File lib/roby/event_constraints.rb, line 755 def to_s; "#{predicates[0].event_name}.not_followed_by(#{predicates[1].event_name})" end