class Roby::EventConstraints::UnboundTaskPredicate::Or

Representation of UnboundPredicateSupport#or and UnboundTaskPredicate#or

See documentation from UnboundTaskPredicate

Public Instance Methods

code() click to toggle source
# File lib/roby/event_constraints.rb, line 594
def code
    "(#{predicates[0].code}) || (#{predicates[1].code})"
end
explain_static(task) click to toggle source
# File lib/roby/event_constraints.rb, line 624
def explain_static(task)
    static0 = predicates[0].static?(task)
    static1 = predicates[1].static?(task)
    if static0 && static1
        super(task)
    elsif static0 && predicates[0].evaluate(task)
        predicates[0].explain_static(task)
    elsif static1 && predicates[1].evaluate(task)
        predicates[1].explain_static(task)
    end
end
or(pred) click to toggle source
# File lib/roby/event_constraints.rb, line 598
def or(pred)
    pred = pred.to_unbound_task_predicate
    if pred.kind_of?(Or)
        # Only add predicates in +pred+ that are not already in
        # +self+
        result = self
        pred.each_atomic_predicate do |predicate|
            result = result.or(predicate)
        end
        result
    elsif has_atomic_predicate?(pred)
        # Do not add +pred+ if it is already included in +self+
        self
    else
        super
    end
end
static?(task) click to toggle source
# File lib/roby/event_constraints.rb, line 616
def static?(task)
    static0 = predicates[0].static?(task)
    static1 = predicates[1].static?(task)
    static0 && static1 ||
        (static0 && predicates[0].evaluate(task) ||
         static1 && predicates[1].evaluate(task))
end
to_s() click to toggle source
# File lib/roby/event_constraints.rb, line 635
def to_s; "(#{predicates[0]}) || (#{predicates[1]})" end