Class: RecordEntity
- Inherits:
-
Object
- Object
- RecordEntity
- Defined in:
- lib/fluent/plugin/datahub/datahub-record-entity.rb
Instance Method Summary collapse
- #add_attribute(name, value) ⇒ Object
- #get_columns_map ⇒ Object
- #get_schema ⇒ Object
- #get_stored_column_values ⇒ Object
-
#initialize(schema) ⇒ RecordEntity
constructor
A new instance of RecordEntity.
- #set(name, value) ⇒ Object
- #set_shard_id(shard_id) ⇒ Object
- #setBigInt(name, value) ⇒ Object
- #setBoolean(name, value) ⇒ Object
- #setDouble(name, value) ⇒ Object
- #setString(name, value) ⇒ Object
- #setTimeStamp(name, value) ⇒ Object
- #to_json(*a) ⇒ Object
Constructor Details
#initialize(schema) ⇒ RecordEntity
Returns a new instance of RecordEntity.
5 6 7 8 9 10 11 12 |
# File 'lib/fluent/plugin/datahub/datahub-record-entity.rb', line 5 def initialize(schema) @columns_map = {} @shard_id = nil @attributes = {} @schema = schema end |
Instance Method Details
#add_attribute(name, value) ⇒ Object
26 27 28 |
# File 'lib/fluent/plugin/datahub/datahub-record-entity.rb', line 26 def add_attribute(name, value) @attributes[name] = value end |
#get_columns_map ⇒ Object
30 31 32 |
# File 'lib/fluent/plugin/datahub/datahub-record-entity.rb', line 30 def get_columns_map return @columns_map end |
#get_schema ⇒ Object
34 35 36 |
# File 'lib/fluent/plugin/datahub/datahub-record-entity.rb', line 34 def get_schema return @schema end |
#get_stored_column_values ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# 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) ⇒ Object
14 15 16 |
# File 'lib/fluent/plugin/datahub/datahub-record-entity.rb', line 14 def set(name, value) @columns_map[name] = value end |
#set_shard_id(shard_id) ⇒ Object
18 19 20 21 22 23 24 |
# 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 |
#setBigInt(name, value) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# 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) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# 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) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# 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) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 |
# 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 |
#to_json(*a) ⇒ Object
128 129 130 131 132 133 134 |
# 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 |