Class: Roby::EventConstraints::UnboundTaskPredicate::Never
Overview
Representation of UnboundPredicateSupport#never
See documentation from UnboundPredicateSupport
Instance Attribute Summary collapse
Instance Method Summary
collapse
#and, #compile, #evaluate, #negate, #or, #pretty_print, #to_unbound_task_predicate
Constructor Details
#initialize(pred) ⇒ Never
Returns a new instance of Never.
429
430
431
432
433
434
435
|
# File 'lib/roby/event_constraints.rb', line 429
def initialize(pred)
if !pred.kind_of?(UnboundTaskPredicate::SingleEvent)
raise ArgumentError, "can only create a Never predicate on top of a SingleEvent"
end
@predicate = pred
end
|
Instance Attribute Details
#predicate ⇒ Object
Returns the value of attribute predicate.
428
429
430
|
# File 'lib/roby/event_constraints.rb', line 428
def predicate
@predicate
end
|
Instance Method Details
437
|
# File 'lib/roby/event_constraints.rb', line 437
def ==(pred); pred.kind_of?(Never) && pred.predicate == predicate end
|
462
463
464
|
# File 'lib/roby/event_constraints.rb', line 462
def code
"(!task_#{predicate.event_name} && task_event_#{predicate.event_name}.unreachable?)"
end
|
#explain_false(task) ⇒ Object
443
444
445
446
447
448
449
450
451
452
|
# File 'lib/roby/event_constraints.rb', line 443
def explain_false(task)
return if evaluate(task)
if predicate.evaluate(task)
predicate.explain_true(task)
elsif !predicate.static?(task)
explanation = predicate.explain_false(task)
explanation.value = true
explanation
end
end
|
#explain_static(task) ⇒ Object
453
454
455
456
457
458
459
|
# File 'lib/roby/event_constraints.rb', line 453
def explain_static(task)
if predicate.evaluate(task)
predicate.explain_true(task)
else
predicate.explain_static(task)
end
end
|
#explain_true(task) ⇒ Object
439
440
441
442
|
# File 'lib/roby/event_constraints.rb', line 439
def explain_true(task)
return if !evaluate(task)
predicate.explain_static(task)
end
|
#required_events ⇒ Object
461
|
# File 'lib/roby/event_constraints.rb', line 461
def required_events; predicate.required_events end
|
#static?(task) ⇒ Boolean
465
466
467
|
# File 'lib/roby/event_constraints.rb', line 465
def static?(task)
evaluate(task) || predicate.static?(task)
end
|
468
|
# File 'lib/roby/event_constraints.rb', line 468
def to_s; "never(#{predicate})" end
|