Class: Roby::EventConstraints::UnboundTaskPredicate::NotFollowedBy
Overview
Representation of UnboundPredicateSupport#not_followed_by
See documentation from UnboundTaskPredicate
Instance Attribute Summary
#predicates
Instance Method Summary
collapse
#==, #each_atomic_predicate, #has_atomic_predicate?, #initialize, #required_events
#and, #compile, #evaluate, #negate, #or, #pretty_print, #to_unbound_task_predicate
Instance Method Details
750
751
752
753
754
|
# 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) ⇒ Object
709
710
711
712
713
714
715
716
717
718
719
|
# 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) ⇒ Object
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
|
# 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) ⇒ Object
701
702
703
704
705
706
707
708
|
# 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) ⇒ Boolean
736
737
738
739
740
741
742
743
744
745
746
747
748
|
# 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) || !evaluate(task) || predicates[1].static?(task))
elsif event1.unreachable?
evaluate(task) end
end
|
755
|
# File 'lib/roby/event_constraints.rb', line 755
def to_s; "#{predicates[0].event_name}.not_followed_by(#{predicates[1].event_name})" end
|