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.



1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
# File 'lib/intermine/query.rb', line 1300

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.



1297
1298
1299
# File 'lib/intermine/query.rb', line 1297

def left
  @left
end

#opObject (readonly)

Returns the value of attribute op.



1297
1298
1299
# File 'lib/intermine/query.rb', line 1297

def op
  @op
end

#parentObject

Returns the value of attribute parent.



1298
1299
1300
# File 'lib/intermine/query.rb', line 1298

def parent
  @parent
end

#rightObject (readonly)

Returns the value of attribute right.



1297
1298
1299
# File 'lib/intermine/query.rb', line 1297

def right
  @right
end

Instance Method Details

#codeObject



1324
1325
1326
# File 'lib/intermine/query.rb', line 1324

def code
    return to_s
end

#to_sObject



1315
1316
1317
1318
1319
1320
1321
1322
# File 'lib/intermine/query.rb', line 1315

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