Class: Norikra::Query::ASTStreamNode

Inherits:
ASTNode
  • Object
show all
Defined in:
lib/norikra/query/ast.rb

Overview

streamExpression, subSelectFilterExpr

Direct Known Subclasses

ASTStreamEventNode, ASTStreamPatternNode

Instance Attribute Summary

Attributes inherited from ASTNode

#children, #name, #tree

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ASTNode

#chain, #child, #find, #has_a?, #initialize, #listup, #to_a

Constructor Details

This class inherits a constructor from Norikra::Query::ASTNode

Class Method Details

.generate(name, children, tree) ⇒ Object



1328
1329
1330
1331
1332
1333
1334
1335
1336
# File 'lib/norikra/query/ast.rb', line 1328

def self.generate(name, children, tree)
  if children.first.name == 'eventFilterExpression'
    ASTStreamEventNode.new(name, children, tree)
  elsif children.first.name == 'patternInclusionExpression'
    ASTStreamPatternNode.new(name, children, tree)
  else
    raise "unexpected stream node type! report to norikra developer!: #{children.map(&:name).join(',')}"
  end
end

Instance Method Details

#aliasesObject

Raises:

  • (NotImplementedError)


1347
1348
1349
1350
# File 'lib/norikra/query/ast.rb', line 1347

def aliases
  # [ [ "ALIAS_NAME", "TARGET_NAME" ], ... ]
  raise NotImplementedError, "ASTStreamNode#aliases MUST be overridden by subclass"
end

#fields(default_target = nil, known_targets_aliases = []) ⇒ Object

Raises:

  • (NotImplementedError)


1352
1353
1354
# File 'lib/norikra/query/ast.rb', line 1352

def fields(default_target=nil, known_targets_aliases=[])
  raise NotImplementedError, "ASTStreamNode#fields MUST be overridden by subclass"
end

#nodetype?(*sym) ⇒ Boolean

Returns:

  • (Boolean)


1338
1339
1340
# File 'lib/norikra/query/ast.rb', line 1338

def nodetype?(*sym)
  sym.include?(:stream)
end

#targetsObject

Raises:

  • (NotImplementedError)


1342
1343
1344
1345
# File 'lib/norikra/query/ast.rb', line 1342

def targets
  # ["TARGET_NAME"]
  raise NotImplementedError, "ASTStreamNode#targets MUST be overridden by subclass"
end