class RecordEntity
Public Class Methods
new(schema)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 5 def initialize(schema) @columns_map = {} @shard_id = nil @attributes = {} @schema = schema end
Public Instance Methods
add_attribute(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 26 def add_attribute(name, value) @attributes[name] = value end
get_columns_map()
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 30 def get_columns_map return @columns_map end
get_schema()
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 34 def get_schema return @schema end
get_stored_column_values()
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 113 def get_stored_column_values data = [] fields = @schema.get_fields for i in 0...fields.size field = fields[i] name = field.get_name if @columns_map[name] == nil data.push(@columns_map[name]) elsif data.push(@columns_map[name].to_s) end end return data end
set(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 14 def set(name, value) @columns_map[name] = value end
setBigInt(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 39 def setBigInt(name, value) if value == nil set(name, value) elsif value.is_a?Integer set(name, value) elsif value.is_a?String and value.to_i.to_s == value set(name, value.to_i) else raise "value show be Integer, name:" + name.to_s + " value:" + value.to_s end end
setBoolean(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 67 def setBoolean(name, value) if value == nil set(name, value) elsif value.is_a?String if value == "true" set(name, true) elsif value == "false" set(name, false) else raise "value must be true or false, name:" + name.to_s + " value:" + value.to_s end elsif value != false and value != true raise "value must be bool or string[true,false], name:" + name.to_s + " value:" + value.to_s end set(name, value) end
setDouble(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 51 def setDouble(name, value) if value == nil set(name, value) elsif value.is_a?Float set(name, value) elsif value.is_a?String begin set(name, Float(value)) rescue raise "value show be Float, name:" + name.to_s + " value:" + value.to_s end else raise "value show be Float, name:" + name.to_s + " value:" + value.to_s end end
setString(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 96 def setString(name, value) if value == nil set(name, value) elsif value.is_a?String and value.length < $STRING_MAX_LENGTH if @schema.get_encoding == nil set(name, value) else # puts "encoding:" + @schema.get_encoding.to_s value.force_encoding(@schema.get_encoding) set(name, value) # puts value end else raise "value show be String and len < " + $STRING_MAX_LENGTH.to_s + ", name:" + name.to_s + " value:" + value.to_s end end
setTimeStamp(name, value)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 84 def setTimeStamp(name, value) if value == nil set(name, value) elsif value.is_a?Integer set(name, value) elsif value.is_a?String and value.to_i.to_s == value set(name, value.to_i) else raise "value should be Integer, name:" + name.to_s + " value:" + value.to_s end end
set_shard_id(shard_id)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 18 def set_shard_id(shard_id) if shard_id.is_a?String @shard_id = shard_id else raise "shard_id must be String type!" end end
to_json(*a)
click to toggle source
# File lib/fluent/plugin/datahub/datahub-record-entity.rb, line 128 def to_json(*a) { "Data" => get_stored_column_values, "ShardId" => @shard_id, "Attributes" => @attributes }.to_json(*a) end