Class: InterMine::PathQuery::LogicGroup

Inherits:
LogicNode
  • Object
show all
Defined in:
lib/intermine/query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(left, op, right, parent = nil) ⇒ LogicGroup

Returns a new instance of LogicGroup.



1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
# File 'lib/intermine/query.rb', line 1460

def initialize(left, op, right, parent=nil)
    if !["AND", "OR"].include?(op)
        raise ArgumentError, "#{op} is not a legal logical operator"
    end
    @parent = parent
    @left = left
    @op = op
    @right = right
    [left, right].each do |node|
        if node.is_a?(LogicGroup)
            node.parent = self
        end
    end
end

Instance Attribute Details

#leftObject (readonly)

Returns the value of attribute left.



1457
1458
1459
# File 'lib/intermine/query.rb', line 1457

def left
  @left
end

#opObject (readonly)

Returns the value of attribute op.



1457
1458
1459
# File 'lib/intermine/query.rb', line 1457

def op
  @op
end

#parentObject

Returns the value of attribute parent.



1458
1459
1460
# File 'lib/intermine/query.rb', line 1458

def parent
  @parent
end

#rightObject (readonly)

Returns the value of attribute right.



1457
1458
1459
# File 'lib/intermine/query.rb', line 1457

def right
  @right
end

Instance Method Details

#codeObject



1484
1485
1486
# File 'lib/intermine/query.rb', line 1484

def code
    return to_s
end

#to_sObject



1475
1476
1477
1478
1479
1480
1481
1482
# File 'lib/intermine/query.rb', line 1475

def to_s
    core = [@left.code, @op.downcase, @right.code].join(" ")
    if @parent && @op != @parent.op
        return "(#{core})"
    else
        return core
    end
end