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.



1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
# File 'lib/intermine/query.rb', line 1435

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.



1432
1433
1434
# File 'lib/intermine/query.rb', line 1432

def left
  @left
end

#opObject (readonly)

Returns the value of attribute op.



1432
1433
1434
# File 'lib/intermine/query.rb', line 1432

def op
  @op
end

#parentObject

Returns the value of attribute parent.



1433
1434
1435
# File 'lib/intermine/query.rb', line 1433

def parent
  @parent
end

#rightObject (readonly)

Returns the value of attribute right.



1432
1433
1434
# File 'lib/intermine/query.rb', line 1432

def right
  @right
end

Instance Method Details

#codeObject



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

def code
    return to_s
end

#to_sObject



1450
1451
1452
1453
1454
1455
1456
1457
# File 'lib/intermine/query.rb', line 1450

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