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