Class: Roby::EventConstraints::UnboundTaskPredicate::FollowedBy
Overview
Representation of UnboundPredicateSupport#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
689
690
691
692
693
|
# File 'lib/roby/event_constraints.rb', line 689
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
649
650
651
652
653
654
655
656
657
658
659
|
# File 'lib/roby/event_constraints.rb', line 649
def explain_false(task)
return if evaluate(task)
this_generator = task.event(predicates[0].event_name)
other_generator = task.event(predicates[1].event_name)
if !this_generator.last
Explanation.new(false, self, [this_generator])
else
Explanation.new(false, self, [other_generator])
end
end
|
#explain_static(task) ⇒ Object
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
|
# File 'lib/roby/event_constraints.rb', line 660
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, [other_generator])
end
else
other_generator = task.event(predicates[1].event_name)
Explanation.new(nil, self, [other_generator])
end
end
|
#explain_true(task) ⇒ Object
642
643
644
645
646
647
648
|
# File 'lib/roby/event_constraints.rb', line 642
def explain_true(task)
return if !evaluate(task)
this_event = task.event(predicates[0].event_name).last
other_event = task.event(predicates[1].event_name).last
Explanation.new(true, self, [this_event, other_event])
end
|
#static?(task) ⇒ Boolean
676
677
678
679
680
681
682
683
684
685
686
687
|
# File 'lib/roby/event_constraints.rb', line 676
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
|
694
|
# File 'lib/roby/event_constraints.rb', line 694
def to_s; "#{predicates[0].event_name}.followed_by(#{predicates[1].event_name})" end
|