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, #initialize, #negate, #or, #pretty_print, #to_unbound_task_predicate
Instance Method Details
880
881
882
883
884
885
886
887
|
# File 'lib/roby/event_constraints.rb', line 880
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
825
826
827
828
829
830
831
832
833
834
835
|
# File 'lib/roby/event_constraints.rb', line 825
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
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
|
# File 'lib/roby/event_constraints.rb', line 837
def explain_static(task)
return unless 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
816
817
818
819
820
821
822
823
|
# File 'lib/roby/event_constraints.rb', line 816
def explain_true(task)
return unless 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
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
|
# File 'lib/roby/event_constraints.rb', line 854
def static?(task)
event0 = task.event(predicates[0].event_name)
event1 = task.event(predicates[1].event_name)
if event0.unreachable?
return true unless predicates[0].evaluate(task)
return true unless evaluate(task)
true if predicates[1].static?(task)
elsif event1.unreachable?
evaluate(task)
end
end
|
889
890
891
892
|
# File 'lib/roby/event_constraints.rb', line 889
def to_s
"#{predicates[0].event_name}"\
".not_followed_by(#{predicates[1].event_name})"
end
|