Class: VORuby::ADQL::AggregateFunction

Inherits:
FunctionType show all
Defined in:
lib/voruby/adql/adql.rb,
lib/voruby/adql/transforms.rb

Overview

Represents an aggregate function.

Instance Attribute Summary collapse

Attributes inherited from ScalarExpression

#value

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ScalarExpression

#is_scalar?

Constructor Details

#initialize(name, arg, allow = nil) ⇒ AggregateFunction

Returns a new instance of AggregateFunction.



649
650
651
652
653
# File 'lib/voruby/adql/adql.rb', line 649

def initialize(name, arg, allow=nil)
	self.name = name
	self.arg = arg
	self.allow = allow
end

Instance Attribute Details

#allowObject

Returns the value of attribute allow.



647
648
649
# File 'lib/voruby/adql/adql.rb', line 647

def allow
  @allow
end

#argObject

Returns the value of attribute arg.



647
648
649
# File 'lib/voruby/adql/adql.rb', line 647

def arg
  @arg
end

#nameObject

Returns the value of attribute name.



647
648
649
# File 'lib/voruby/adql/adql.rb', line 647

def name
  @name
end

Class Method Details

.from_xml(node) ⇒ Object



679
680
681
682
683
684
685
686
687
688
689
# File 'lib/voruby/adql/adql.rb', line 679

def self.from_xml(node)
 name = AggregateFunctionName.from_xml(node)
 arg_node = REXML::XPath.first(node, 'Arg')
   arg = Arg.from_xml(arg_node)
   allow_node = REXML::XPath.first(node, 'Allow')
   allow = nil
   if allow_node
     allow = Allow.from_xml(allow_node)
   end
   return AggregateFunction.new(name, arg, allow)
end

Instance Method Details

#to_adqlsObject



143
144
145
146
147
148
149
# File 'lib/voruby/adql/transforms.rb', line 143

def to_adqls
  if self.allow
  "#{self.name.to_adqls}(#{self.allow.to_adqls} #{self.arg.to_adqls})"
 else
  "#{self.name.to_adqls}(#{self.arg.to_adqls})" 
 end
end

#to_sObject



675
676
677
# File 'lib/voruby/adql/adql.rb', line 675

def to_s
  "{name=#{self.name},arg=#{self.arg},allow=#{self.allow}}"
end