Class: Norikra::Query::ASTStreamEventNode
- Inherits:
-
ASTStreamNode
- Object
- ASTNode
- ASTStreamNode
- Norikra::Query::ASTStreamEventNode
- Defined in:
- lib/norikra/query/ast.rb
Constant Summary collapse
- NON_ALIAS_NODES =
[“streamExpression”,
["eventFilterExpression", ["classIdentifier", ["escapableStr", "FraudWarningEvent"]]], ".", ["viewExpression", "win", ":", "keepall", "(", ")"], "AS", "fraud"],
[“regularJoin”,
",", ["streamExpression", ["eventFilterExpression", ["classIdentifier", ["escapableStr", "PINChangeEvent"]], "(", ["expressionList", ["expression", EXPRESSION...]], ")"], ".", ["viewExpression", "win", ":", "time", "(", ["expressionWithTimeList", ["expressionWithTimeInclLast", ["expressionWithTime", ["timePeriod", ["secondPart", ["numberconstant", ["number", "20"]], "sec"]]]]], ")"]]]],
['eventFilterExpression','viewExpression','.','unidirectional','retain-union','retain-intersection']
Instance Attribute Summary
Attributes inherited from ASTNode
Instance Method Summary collapse
- #aliases ⇒ Object
- #fields(default_target = nil, known_targets_aliases = []) ⇒ Object
- #targets ⇒ Object
Methods inherited from ASTStreamNode
Methods inherited from ASTNode
#chain, #child, #find, #has_a?, #initialize, #listup, #nodetype?, #to_a
Constructor Details
This class inherits a constructor from Norikra::Query::ASTNode
Instance Method Details
#aliases ⇒ Object
1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 |
# File 'lib/norikra/query/ast.rb', line 1415 def aliases alias_nodes = children.select{|n| not NON_ALIAS_NODES.include?(n.name) } if alias_nodes.size == 2 if alias_nodes[0].name =~ /^as$/i [ [ alias_nodes[1].name, self.targets.first ] ] else raise "unexpected FROM clause (non-AS for alias pattern): #{alias_nodes.map(&:name).join(',')}" end elsif alias_nodes.size == 0 [] else # 1 or 3 or more raise "unexpected FROM clause (non-AS for alias pattern): #{alias_nodes.map(&:name).join(',')}" end end |
#fields(default_target = nil, known_targets_aliases = []) ⇒ Object
1430 1431 1432 1433 |
# File 'lib/norikra/query/ast.rb', line 1430 def fields(default_target=nil, known_targets_aliases=[]) this_target = self.targets.first self.listup(:prop).map{|p| p.fields(this_target, known_targets_aliases)}.reduce(&:+) || [] end |
#targets ⇒ Object
1411 1412 1413 |
# File 'lib/norikra/query/ast.rb', line 1411 def targets [ self.find('eventFilterExpression').find('classIdentifier').find('escapableStr').child.name ] end |