http://git-wip-us.apache.org/repos/asf/arrow/blob/9cab3a2f/js/closure-compiler-scripts/Schema_generated.js
----------------------------------------------------------------------
diff --git a/js/closure-compiler-scripts/Schema_generated.js 
b/js/closure-compiler-scripts/Schema_generated.js
new file mode 100644
index 0000000..5b76443
--- /dev/null
+++ b/js/closure-compiler-scripts/Schema_generated.js
@@ -0,0 +1,2231 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+goog.module("module$targets$es5$cls$format$Schema_generated");
+goog.module.declareLegacyNamespace();
+
+/**
+ * @const
+ * @namespace
+ */
+var org = org || {};
+
+/**
+ * @const
+ * @namespace
+ */
+org.apache = org.apache || {};
+
+/**
+ * @const
+ * @namespace
+ */
+org.apache.arrow = org.apache.arrow || {};
+
+/**
+ * @const
+ * @namespace
+ */
+org.apache.arrow.flatbuf = org.apache.arrow.flatbuf || {};
+
+/**
+ * @enum
+ */
+org.apache.arrow.flatbuf.MetadataVersion = {
+  V1: 0, 0: 'V1',
+  V2: 1, 1: 'V2',
+  V3: 2, 2: 'V3',
+};
+
+/**
+ * @enum
+ */
+org.apache.arrow.flatbuf.UnionMode = {
+  Sparse: 0, 0: 'Sparse',
+  Dense: 1, 1: 'Dense',
+};
+
+/**
+ * @enum
+ */
+org.apache.arrow.flatbuf.Precision = {
+  HALF: 0, 0: 'HALF',
+  SINGLE: 1, 1: 'SINGLE',
+  DOUBLE: 2, 2: 'DOUBLE',
+};
+
+/**
+ * @enum
+ */
+org.apache.arrow.flatbuf.DateUnit = {
+  DAY: 0, 0: 'DAY',
+  MILLISECOND: 1, 1: 'MILLISECOND',
+};
+
+/**
+ * @enum
+ */
+org.apache.arrow.flatbuf.TimeUnit = {
+  SECOND: 0, 0: 'SECOND',
+  MILLISECOND: 1, 1: 'MILLISECOND',
+  MICROSECOND: 2, 2: 'MICROSECOND',
+  NANOSECOND: 3, 3: 'NANOSECOND',
+};
+
+/**
+ * @enum
+ */
+org.apache.arrow.flatbuf.IntervalUnit = {
+  YEAR_MONTH: 0, 0: 'YEAR_MONTH',
+  DAY_TIME: 1, 1: 'DAY_TIME',
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * Top-level Type value, enabling extensible type-specific metadata. We can
+ * add new logical types to Type without breaking backwards compatibility
+ *
+ * @enum
+ */
+org.apache.arrow.flatbuf.Type = {
+  NONE: 0, 0: 'NONE',
+  Null: 1, 1: 'Null',
+  Int: 2, 2: 'Int',
+  FloatingPoint: 3, 3: 'FloatingPoint',
+  Binary: 4, 4: 'Binary',
+  Utf8: 5, 5: 'Utf8',
+  Bool: 6, 6: 'Bool',
+  Decimal: 7, 7: 'Decimal',
+  Date: 8, 8: 'Date',
+  Time: 9, 9: 'Time',
+  Timestamp: 10, 10: 'Timestamp',
+  Interval: 11, 11: 'Interval',
+  List: 12, 12: 'List',
+  Struct_: 13, 13: 'Struct_',
+  Union: 14, 14: 'Union',
+  FixedSizeBinary: 15, 15: 'FixedSizeBinary',
+  FixedSizeList: 16, 16: 'FixedSizeList',
+  Map: 17, 17: 'Map',
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * The possible types of a vector
+ *
+ * @enum
+ */
+org.apache.arrow.flatbuf.VectorType = {
+  /**
+   * used in List type, Dense Union and variable length primitive types 
(String, Binary)
+   */
+  OFFSET: 0, 0: 'OFFSET',
+
+  /**
+   * actual data, either wixed width primitive types in slots or variable 
width delimited by an OFFSET vector
+   */
+  DATA: 1, 1: 'DATA',
+
+  /**
+   * Bit vector indicating if each value is null
+   */
+  VALIDITY: 2, 2: 'VALIDITY',
+
+  /**
+   * Type vector used in Union type
+   */
+  TYPE: 3, 3: 'TYPE',
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * Endianness of the platform producing the data
+ *
+ * @enum
+ */
+org.apache.arrow.flatbuf.Endianness = {
+  Little: 0, 0: 'Little',
+  Big: 1, 1: 'Big',
+};
+
+/**
+ * These are stored in the flatbuffer in the Type union below
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Null = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Null}
+ */
+org.apache.arrow.flatbuf.Null.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Null=} obj
+ * @returns {org.apache.arrow.flatbuf.Null}
+ */
+org.apache.arrow.flatbuf.Null.getRootAsNull = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Null).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Null.startNull = function(builder) {
+  builder.startObject(0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Null.endNull = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * A Struct_ in the flatbuffer metadata is the same as an Arrow Struct
+ * (according to the physical memory layout). We used Struct_ here as
+ * Struct is a reserved word in Flatbuffers
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Struct_ = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Struct_}
+ */
+org.apache.arrow.flatbuf.Struct_.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Struct_=} obj
+ * @returns {org.apache.arrow.flatbuf.Struct_}
+ */
+org.apache.arrow.flatbuf.Struct_.getRootAsStruct_ = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Struct_).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Struct_.startStruct_ = function(builder) {
+  builder.startObject(0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Struct_.endStruct_ = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.List = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.List}
+ */
+org.apache.arrow.flatbuf.List.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.List=} obj
+ * @returns {org.apache.arrow.flatbuf.List}
+ */
+org.apache.arrow.flatbuf.List.getRootAsList = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.List).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.List.startList = function(builder) {
+  builder.startObject(0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.List.endList = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.FixedSizeList = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.FixedSizeList}
+ */
+org.apache.arrow.flatbuf.FixedSizeList.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.FixedSizeList=} obj
+ * @returns {org.apache.arrow.flatbuf.FixedSizeList}
+ */
+org.apache.arrow.flatbuf.FixedSizeList.getRootAsFixedSizeList = function(bb, 
obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.FixedSizeList).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * Number of list items per value
+ *
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.FixedSizeList.prototype.listSize = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.FixedSizeList.startFixedSizeList = function(builder) {
+  builder.startObject(1);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} listSize
+ */
+org.apache.arrow.flatbuf.FixedSizeList.addListSize = function(builder, 
listSize) {
+  builder.addFieldInt32(0, listSize, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.FixedSizeList.endFixedSizeList = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * A Map is a logical nested type that is represented as
+ *
+ * List<entry: Struct<key: K, value: V>>
+ *
+ * In this layout, the keys and values are each respectively contiguous. We do
+ * not constrain the key and value types, so the application is responsible
+ * for ensuring that the keys are hashable and unique. Whether the keys are 
sorted
+ * may be set in the metadata for this field
+ *
+ * In a Field with Map type, the Field has a child Struct field, which then
+ * has two children: key type and the second the value type. The names of the
+ * child fields may be respectively "entry", "key", and "value", but this is
+ * not enforced
+ *
+ * Map
+ *   - child[0] entry: Struct
+ *     - child[0] key: K
+ *     - child[1] value: V
+ *
+ * Neither the "entry" field nor the "key" field may be nullable.
+ *
+ * The metadata is structured so that Arrow systems without special handling
+ * for Map can make Map an alias for List. The "layout" attribute for the Map
+ * field must have the same contents as a List.
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Map = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Map}
+ */
+org.apache.arrow.flatbuf.Map.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Map=} obj
+ * @returns {org.apache.arrow.flatbuf.Map}
+ */
+org.apache.arrow.flatbuf.Map.getRootAsMap = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Map).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * Set to true if the keys within each value are sorted
+ *
+ * @returns {boolean}
+ */
+org.apache.arrow.flatbuf.Map.prototype.keysSorted = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Map.startMap = function(builder) {
+  builder.startObject(1);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {boolean} keysSorted
+ */
+org.apache.arrow.flatbuf.Map.addKeysSorted = function(builder, keysSorted) {
+  builder.addFieldInt8(0, +keysSorted, +false);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Map.endMap = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * A union is a complex type with children in Field
+ * By default ids in the type vector refer to the offsets in the children
+ * optionally typeIds provides an indirection between the child offset and the 
type id
+ * for each child typeIds[offset] is the id used in the type vector
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Union = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Union}
+ */
+org.apache.arrow.flatbuf.Union.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Union=} obj
+ * @returns {org.apache.arrow.flatbuf.Union}
+ */
+org.apache.arrow.flatbuf.Union.getRootAsUnion = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Union).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.UnionMode}
+ */
+org.apache.arrow.flatbuf.Union.prototype.mode = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.UnionMode} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.UnionMode.Sparse;
+};
+
+/**
+ * @param {number} index
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Union.prototype.typeIds = function(index) {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + 
index * 4) : 0;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Union.prototype.typeIdsLength = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @returns {Int32Array}
+ */
+org.apache.arrow.flatbuf.Union.prototype.typeIdsArray = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? new Int32Array(this.bb.bytes().buffer, 
this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), 
this.bb.__vector_len(this.bb_pos + offset)) : null;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Union.startUnion = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.UnionMode} mode
+ */
+org.apache.arrow.flatbuf.Union.addMode = function(builder, mode) {
+  builder.addFieldInt16(0, mode, org.apache.arrow.flatbuf.UnionMode.Sparse);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} typeIdsOffset
+ */
+org.apache.arrow.flatbuf.Union.addTypeIds = function(builder, typeIdsOffset) {
+  builder.addFieldOffset(1, typeIdsOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {Array.<number>} data
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Union.createTypeIdsVector = function(builder, data) {
+  builder.startVector(4, data.length, 4);
+  for (var i = data.length - 1; i >= 0; i--) {
+    builder.addInt32(data[i]);
+  }
+  return builder.endVector();
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} numElems
+ */
+org.apache.arrow.flatbuf.Union.startTypeIdsVector = function(builder, 
numElems) {
+  builder.startVector(4, numElems, 4);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Union.endUnion = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Int = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Int}
+ */
+org.apache.arrow.flatbuf.Int.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Int=} obj
+ * @returns {org.apache.arrow.flatbuf.Int}
+ */
+org.apache.arrow.flatbuf.Int.getRootAsInt = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Int).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Int.prototype.bitWidth = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @returns {boolean}
+ */
+org.apache.arrow.flatbuf.Int.prototype.isSigned = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Int.startInt = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} bitWidth
+ */
+org.apache.arrow.flatbuf.Int.addBitWidth = function(builder, bitWidth) {
+  builder.addFieldInt32(0, bitWidth, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {boolean} isSigned
+ */
+org.apache.arrow.flatbuf.Int.addIsSigned = function(builder, isSigned) {
+  builder.addFieldInt8(1, +isSigned, +false);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Int.endInt = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.FloatingPoint = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.FloatingPoint}
+ */
+org.apache.arrow.flatbuf.FloatingPoint.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.FloatingPoint=} obj
+ * @returns {org.apache.arrow.flatbuf.FloatingPoint}
+ */
+org.apache.arrow.flatbuf.FloatingPoint.getRootAsFloatingPoint = function(bb, 
obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.FloatingPoint).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.Precision}
+ */
+org.apache.arrow.flatbuf.FloatingPoint.prototype.precision = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.Precision} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.Precision.HALF;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.FloatingPoint.startFloatingPoint = function(builder) {
+  builder.startObject(1);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.Precision} precision
+ */
+org.apache.arrow.flatbuf.FloatingPoint.addPrecision = function(builder, 
precision) {
+  builder.addFieldInt16(0, precision, org.apache.arrow.flatbuf.Precision.HALF);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.FloatingPoint.endFloatingPoint = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * Unicode with UTF-8 encoding
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Utf8 = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Utf8}
+ */
+org.apache.arrow.flatbuf.Utf8.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Utf8=} obj
+ * @returns {org.apache.arrow.flatbuf.Utf8}
+ */
+org.apache.arrow.flatbuf.Utf8.getRootAsUtf8 = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Utf8).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Utf8.startUtf8 = function(builder) {
+  builder.startObject(0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Utf8.endUtf8 = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Binary = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Binary}
+ */
+org.apache.arrow.flatbuf.Binary.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Binary=} obj
+ * @returns {org.apache.arrow.flatbuf.Binary}
+ */
+org.apache.arrow.flatbuf.Binary.getRootAsBinary = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Binary).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Binary.startBinary = function(builder) {
+  builder.startObject(0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Binary.endBinary = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.FixedSizeBinary}
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.FixedSizeBinary=} obj
+ * @returns {org.apache.arrow.flatbuf.FixedSizeBinary}
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary.getRootAsFixedSizeBinary = 
function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.FixedSizeBinary).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * Number of bytes per value
+ *
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary.prototype.byteWidth = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary.startFixedSizeBinary = 
function(builder) {
+  builder.startObject(1);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} byteWidth
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary.addByteWidth = function(builder, 
byteWidth) {
+  builder.addFieldInt32(0, byteWidth, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.FixedSizeBinary.endFixedSizeBinary = 
function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Bool = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Bool}
+ */
+org.apache.arrow.flatbuf.Bool.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Bool=} obj
+ * @returns {org.apache.arrow.flatbuf.Bool}
+ */
+org.apache.arrow.flatbuf.Bool.getRootAsBool = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Bool).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Bool.startBool = function(builder) {
+  builder.startObject(0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Bool.endBool = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Decimal = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Decimal}
+ */
+org.apache.arrow.flatbuf.Decimal.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Decimal=} obj
+ * @returns {org.apache.arrow.flatbuf.Decimal}
+ */
+org.apache.arrow.flatbuf.Decimal.getRootAsDecimal = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Decimal).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * Total number of decimal digits
+ *
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Decimal.prototype.precision = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+};
+
+/**
+ * Number of digits after the decimal point "."
+ *
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Decimal.prototype.scale = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Decimal.startDecimal = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} precision
+ */
+org.apache.arrow.flatbuf.Decimal.addPrecision = function(builder, precision) {
+  builder.addFieldInt32(0, precision, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} scale
+ */
+org.apache.arrow.flatbuf.Decimal.addScale = function(builder, scale) {
+  builder.addFieldInt32(1, scale, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Decimal.endDecimal = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * Date is either a 32-bit or 64-bit type representing elapsed time since UNIX
+ * epoch (1970-01-01), stored in either of two units:
+ *
+ * * Milliseconds (64 bits) indicating UNIX time elapsed since the epoch (no
+ *   leap seconds), where the values are evenly divisible by 86400000
+ * * Days (32 bits) since the UNIX epoch
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Date = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Date}
+ */
+org.apache.arrow.flatbuf.Date.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Date=} obj
+ * @returns {org.apache.arrow.flatbuf.Date}
+ */
+org.apache.arrow.flatbuf.Date.getRootAsDate = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Date).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.DateUnit}
+ */
+org.apache.arrow.flatbuf.Date.prototype.unit = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.DateUnit} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.DateUnit.MILLISECOND;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Date.startDate = function(builder) {
+  builder.startObject(1);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.DateUnit} unit
+ */
+org.apache.arrow.flatbuf.Date.addUnit = function(builder, unit) {
+  builder.addFieldInt16(0, unit, 
org.apache.arrow.flatbuf.DateUnit.MILLISECOND);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Date.endDate = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * Time type. The physical storage type depends on the unit
+ * - SECOND and MILLISECOND: 32 bits
+ * - MICROSECOND and NANOSECOND: 64 bits
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Time = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Time}
+ */
+org.apache.arrow.flatbuf.Time.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Time=} obj
+ * @returns {org.apache.arrow.flatbuf.Time}
+ */
+org.apache.arrow.flatbuf.Time.getRootAsTime = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Time).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.TimeUnit}
+ */
+org.apache.arrow.flatbuf.Time.prototype.unit = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.TimeUnit} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Time.prototype.bitWidth = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.readInt32(this.bb_pos + offset) : 32;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Time.startTime = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.TimeUnit} unit
+ */
+org.apache.arrow.flatbuf.Time.addUnit = function(builder, unit) {
+  builder.addFieldInt16(0, unit, 
org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} bitWidth
+ */
+org.apache.arrow.flatbuf.Time.addBitWidth = function(builder, bitWidth) {
+  builder.addFieldInt32(1, bitWidth, 32);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Time.endTime = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * Time elapsed from the Unix epoch, 00:00:00.000 on 1 January 1970, excluding
+ * leap seconds, as a 64-bit integer. Note that UNIX time does not include
+ * leap seconds.
+ *
+ * The Timestamp metadata supports both "time zone naive" and "time zone
+ * aware" timestamps. Read about the timezone attribute for more detail
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Timestamp = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Timestamp}
+ */
+org.apache.arrow.flatbuf.Timestamp.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Timestamp=} obj
+ * @returns {org.apache.arrow.flatbuf.Timestamp}
+ */
+org.apache.arrow.flatbuf.Timestamp.getRootAsTimestamp = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Timestamp).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.TimeUnit}
+ */
+org.apache.arrow.flatbuf.Timestamp.prototype.unit = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.TimeUnit} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.TimeUnit.SECOND;
+};
+
+/**
+ * The time zone is a string indicating the name of a time zone, one of:
+ *
+ * * As used in the Olson time zone database (the "tz database" or
+ *   "tzdata"), such as "America/New_York"
+ * * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30
+ *
+ * Whether a timezone string is present indicates different semantics about
+ * the data:
+ *
+ * * If the time zone is null or equal to an empty string, the data is "time
+ *   zone naive" and shall be displayed *as is* to the user, not localized
+ *   to the locale of the user. This data can be though of as UTC but
+ *   without having "UTC" as the time zone, it is not considered to be
+ *   localized to any time zone
+ *
+ * * If the time zone is set to a valid value, values can be displayed as
+ *   "localized" to that time zone, even though the underlying 64-bit
+ *   integers are identical to the same data stored in UTC. Converting
+ *   between time zones is a metadata-only operation and does not change the
+ *   underlying values
+ *
+ * @param {flatbuffers.Encoding=} optionalEncoding
+ * @returns {string|Uint8Array|null}
+ */
+org.apache.arrow.flatbuf.Timestamp.prototype.timezone = 
function(optionalEncoding) {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : 
null;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Timestamp.startTimestamp = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.TimeUnit} unit
+ */
+org.apache.arrow.flatbuf.Timestamp.addUnit = function(builder, unit) {
+  builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.SECOND);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} timezoneOffset
+ */
+org.apache.arrow.flatbuf.Timestamp.addTimezone = function(builder, 
timezoneOffset) {
+  builder.addFieldOffset(1, timezoneOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Timestamp.endTimestamp = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Interval = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Interval}
+ */
+org.apache.arrow.flatbuf.Interval.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Interval=} obj
+ * @returns {org.apache.arrow.flatbuf.Interval}
+ */
+org.apache.arrow.flatbuf.Interval.getRootAsInterval = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Interval).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.IntervalUnit}
+ */
+org.apache.arrow.flatbuf.Interval.prototype.unit = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.IntervalUnit} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Interval.startInterval = function(builder) {
+  builder.startObject(1);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.IntervalUnit} unit
+ */
+org.apache.arrow.flatbuf.Interval.addUnit = function(builder, unit) {
+  builder.addFieldInt16(0, unit, 
org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Interval.endInterval = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * represents the physical layout of a buffer
+ * buffers have fixed width slots of a given type
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.VectorLayout = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.VectorLayout}
+ */
+org.apache.arrow.flatbuf.VectorLayout.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.VectorLayout=} obj
+ * @returns {org.apache.arrow.flatbuf.VectorLayout}
+ */
+org.apache.arrow.flatbuf.VectorLayout.getRootAsVectorLayout = function(bb, 
obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.VectorLayout).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * the width of a slot in the buffer (typically 1, 8, 16, 32 or 64)
+ *
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.VectorLayout.prototype.bitWidth = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.readInt16(this.bb_pos + offset) : 0;
+};
+
+/**
+ * the purpose of the vector
+ *
+ * @returns {org.apache.arrow.flatbuf.VectorType}
+ */
+org.apache.arrow.flatbuf.VectorLayout.prototype.type = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? /** @type {org.apache.arrow.flatbuf.VectorType} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.VectorType.OFFSET;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.VectorLayout.startVectorLayout = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} bitWidth
+ */
+org.apache.arrow.flatbuf.VectorLayout.addBitWidth = function(builder, 
bitWidth) {
+  builder.addFieldInt16(0, bitWidth, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.VectorType} type
+ */
+org.apache.arrow.flatbuf.VectorLayout.addType = function(builder, type) {
+  builder.addFieldInt16(1, type, org.apache.arrow.flatbuf.VectorType.OFFSET);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.VectorLayout.endVectorLayout = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * user defined key value pairs to add custom metadata to arrow
+ * key namespacing is the responsibility of the user
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.KeyValue = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.KeyValue}
+ */
+org.apache.arrow.flatbuf.KeyValue.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.KeyValue=} obj
+ * @returns {org.apache.arrow.flatbuf.KeyValue}
+ */
+org.apache.arrow.flatbuf.KeyValue.getRootAsKeyValue = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.KeyValue).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Encoding=} optionalEncoding
+ * @returns {string|Uint8Array|null}
+ */
+org.apache.arrow.flatbuf.KeyValue.prototype.key = function(optionalEncoding) {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : 
null;
+};
+
+/**
+ * @param {flatbuffers.Encoding=} optionalEncoding
+ * @returns {string|Uint8Array|null}
+ */
+org.apache.arrow.flatbuf.KeyValue.prototype.value = function(optionalEncoding) 
{
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : 
null;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.KeyValue.startKeyValue = function(builder) {
+  builder.startObject(2);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} keyOffset
+ */
+org.apache.arrow.flatbuf.KeyValue.addKey = function(builder, keyOffset) {
+  builder.addFieldOffset(0, keyOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} valueOffset
+ */
+org.apache.arrow.flatbuf.KeyValue.addValue = function(builder, valueOffset) {
+  builder.addFieldOffset(1, valueOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.KeyValue.endKeyValue = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * Dictionary encoding metadata
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.DictionaryEncoding}
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.prototype.__init = function(i, bb) 
{
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.DictionaryEncoding=} obj
+ * @returns {org.apache.arrow.flatbuf.DictionaryEncoding}
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.getRootAsDictionaryEncoding = 
function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.DictionaryEncoding).__init(bb.readInt32(bb.position()) 
+ bb.position(), bb);
+};
+
+/**
+ * The known dictionary id in the application where this data is used. In
+ * the file or streaming formats, the dictionary ids are found in the
+ * DictionaryBatch messages
+ *
+ * @returns {flatbuffers.Long}
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.prototype.id = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.readInt64(this.bb_pos + offset) : 
this.bb.createLong(0, 0);
+};
+
+/**
+ * The dictionary indices are constrained to be positive integers. If this
+ * field is null, the indices must be signed int32
+ *
+ * @param {org.apache.arrow.flatbuf.Int=} obj
+ * @returns {org.apache.arrow.flatbuf.Int|null}
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.prototype.indexType = 
function(obj) {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.Int).__init(this.bb.__indirect(this.bb_pos + offset), 
this.bb) : null;
+};
+
+/**
+ * By default, dictionaries are not ordered, or the order does not have
+ * semantic meaning. In some statistical, applications, dictionary-encoding
+ * is used to represent ordered categorical data, and we provide a way to
+ * preserve that metadata here
+ *
+ * @returns {boolean}
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.prototype.isOrdered = function() {
+  var offset = this.bb.__offset(this.bb_pos, 8);
+  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.startDictionaryEncoding = 
function(builder) {
+  builder.startObject(3);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Long} id
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.addId = function(builder, id) {
+  builder.addFieldInt64(0, id, builder.createLong(0, 0));
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} indexTypeOffset
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.addIndexType = function(builder, 
indexTypeOffset) {
+  builder.addFieldOffset(1, indexTypeOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {boolean} isOrdered
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.addIsOrdered = function(builder, 
isOrdered) {
+  builder.addFieldInt8(2, +isOrdered, +false);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.DictionaryEncoding.endDictionaryEncoding = 
function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * A field represents a named column in a record / row batch or child of a
+ * nested type.
+ *
+ * - children is only for nested Arrow arrays
+ * - For primitive types, children will have length 0
+ * - nullable should default to true in general
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Field = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Field}
+ */
+org.apache.arrow.flatbuf.Field.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Field=} obj
+ * @returns {org.apache.arrow.flatbuf.Field}
+ */
+org.apache.arrow.flatbuf.Field.getRootAsField = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Field).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * @param {flatbuffers.Encoding=} optionalEncoding
+ * @returns {string|Uint8Array|null}
+ */
+org.apache.arrow.flatbuf.Field.prototype.name = function(optionalEncoding) {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : 
null;
+};
+
+/**
+ * @returns {boolean}
+ */
+org.apache.arrow.flatbuf.Field.prototype.nullable = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
+};
+
+/**
+ * @returns {org.apache.arrow.flatbuf.Type}
+ */
+org.apache.arrow.flatbuf.Field.prototype.typeType = function() {
+  var offset = this.bb.__offset(this.bb_pos, 8);
+  return offset ? /** @type {org.apache.arrow.flatbuf.Type} */ 
(this.bb.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Type.NONE;
+};
+
+/**
+ * @param {flatbuffers.Table} obj
+ * @returns {?flatbuffers.Table}
+ */
+org.apache.arrow.flatbuf.Field.prototype.type = function(obj) {
+  var offset = this.bb.__offset(this.bb_pos, 10);
+  return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
+};
+
+/**
+ * @param {org.apache.arrow.flatbuf.DictionaryEncoding=} obj
+ * @returns {org.apache.arrow.flatbuf.DictionaryEncoding|null}
+ */
+org.apache.arrow.flatbuf.Field.prototype.dictionary = function(obj) {
+  var offset = this.bb.__offset(this.bb_pos, 12);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb.__indirect(this.bb_pos
 + offset), this.bb) : null;
+};
+
+/**
+ * @param {number} index
+ * @param {org.apache.arrow.flatbuf.Field=} obj
+ * @returns {org.apache.arrow.flatbuf.Field}
+ */
+org.apache.arrow.flatbuf.Field.prototype.children = function(index, obj) {
+  var offset = this.bb.__offset(this.bb_pos, 14);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.Field).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos
 + offset) + index * 4), this.bb) : null;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Field.prototype.childrenLength = function() {
+  var offset = this.bb.__offset(this.bb_pos, 14);
+  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+};
+
+/**
+ * layout of buffers produced for this type (as derived from the Type)
+ * does not include children
+ * each recordbatch will return instances of those Buffers.
+ *
+ * @param {number} index
+ * @param {org.apache.arrow.flatbuf.VectorLayout=} obj
+ * @returns {org.apache.arrow.flatbuf.VectorLayout}
+ */
+org.apache.arrow.flatbuf.Field.prototype.layout = function(index, obj) {
+  var offset = this.bb.__offset(this.bb_pos, 16);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.VectorLayout).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos
 + offset) + index * 4), this.bb) : null;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Field.prototype.layoutLength = function() {
+  var offset = this.bb.__offset(this.bb_pos, 16);
+  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {number} index
+ * @param {org.apache.arrow.flatbuf.KeyValue=} obj
+ * @returns {org.apache.arrow.flatbuf.KeyValue}
+ */
+org.apache.arrow.flatbuf.Field.prototype.customMetadata = function(index, obj) 
{
+  var offset = this.bb.__offset(this.bb_pos, 18);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos
 + offset) + index * 4), this.bb) : null;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Field.prototype.customMetadataLength = function() {
+  var offset = this.bb.__offset(this.bb_pos, 18);
+  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Field.startField = function(builder) {
+  builder.startObject(8);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} nameOffset
+ */
+org.apache.arrow.flatbuf.Field.addName = function(builder, nameOffset) {
+  builder.addFieldOffset(0, nameOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {boolean} nullable
+ */
+org.apache.arrow.flatbuf.Field.addNullable = function(builder, nullable) {
+  builder.addFieldInt8(1, +nullable, +false);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.Type} typeType
+ */
+org.apache.arrow.flatbuf.Field.addTypeType = function(builder, typeType) {
+  builder.addFieldInt8(2, typeType, org.apache.arrow.flatbuf.Type.NONE);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} typeOffset
+ */
+org.apache.arrow.flatbuf.Field.addType = function(builder, typeOffset) {
+  builder.addFieldOffset(3, typeOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} dictionaryOffset
+ */
+org.apache.arrow.flatbuf.Field.addDictionary = function(builder, 
dictionaryOffset) {
+  builder.addFieldOffset(4, dictionaryOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} childrenOffset
+ */
+org.apache.arrow.flatbuf.Field.addChildren = function(builder, childrenOffset) 
{
+  builder.addFieldOffset(5, childrenOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {Array.<flatbuffers.Offset>} data
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Field.createChildrenVector = function(builder, data) {
+  builder.startVector(4, data.length, 4);
+  for (var i = data.length - 1; i >= 0; i--) {
+    builder.addOffset(data[i]);
+  }
+  return builder.endVector();
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} numElems
+ */
+org.apache.arrow.flatbuf.Field.startChildrenVector = function(builder, 
numElems) {
+  builder.startVector(4, numElems, 4);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} layoutOffset
+ */
+org.apache.arrow.flatbuf.Field.addLayout = function(builder, layoutOffset) {
+  builder.addFieldOffset(6, layoutOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {Array.<flatbuffers.Offset>} data
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Field.createLayoutVector = function(builder, data) {
+  builder.startVector(4, data.length, 4);
+  for (var i = data.length - 1; i >= 0; i--) {
+    builder.addOffset(data[i]);
+  }
+  return builder.endVector();
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} numElems
+ */
+org.apache.arrow.flatbuf.Field.startLayoutVector = function(builder, numElems) 
{
+  builder.startVector(4, numElems, 4);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} customMetadataOffset
+ */
+org.apache.arrow.flatbuf.Field.addCustomMetadata = function(builder, 
customMetadataOffset) {
+  builder.addFieldOffset(7, customMetadataOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {Array.<flatbuffers.Offset>} data
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Field.createCustomMetadataVector = function(builder, 
data) {
+  builder.startVector(4, data.length, 4);
+  for (var i = data.length - 1; i >= 0; i--) {
+    builder.addOffset(data[i]);
+  }
+  return builder.endVector();
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} numElems
+ */
+org.apache.arrow.flatbuf.Field.startCustomMetadataVector = function(builder, 
numElems) {
+  builder.startVector(4, numElems, 4);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Field.endField = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * A Buffer represents a single contiguous memory segment
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Buffer = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Buffer}
+ */
+org.apache.arrow.flatbuf.Buffer.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * The shared memory page id where this buffer is located. Currently this is
+ * not used
+ *
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Buffer.prototype.page = function() {
+  return this.bb.readInt32(this.bb_pos);
+};
+
+/**
+ * The relative offset into the shared memory page where the bytes for this
+ * buffer starts
+ *
+ * @returns {flatbuffers.Long}
+ */
+org.apache.arrow.flatbuf.Buffer.prototype.offset = function() {
+  return this.bb.readInt64(this.bb_pos + 8);
+};
+
+/**
+ * The absolute length (in bytes) of the memory buffer. The memory is found
+ * from offset (inclusive) to offset + length (non-inclusive).
+ *
+ * @returns {flatbuffers.Long}
+ */
+org.apache.arrow.flatbuf.Buffer.prototype.length = function() {
+  return this.bb.readInt64(this.bb_pos + 16);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} page
+ * @param {flatbuffers.Long} offset
+ * @param {flatbuffers.Long} length
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Buffer.createBuffer = function(builder, page, offset, 
length) {
+  builder.prep(8, 24);
+  builder.writeInt64(length);
+  builder.writeInt64(offset);
+  builder.pad(4);
+  builder.writeInt32(page);
+  return builder.offset();
+};
+
+/**
+ * ----------------------------------------------------------------------
+ * A Schema describes the columns in a row batch
+ *
+ * @constructor
+ */
+org.apache.arrow.flatbuf.Schema = function() {
+  /**
+   * @type {flatbuffers.ByteBuffer}
+   */
+  this.bb = null;
+
+  /**
+   * @type {number}
+   */
+  this.bb_pos = 0;
+};
+
+/**
+ * @param {number} i
+ * @param {flatbuffers.ByteBuffer} bb
+ * @returns {org.apache.arrow.flatbuf.Schema}
+ */
+org.apache.arrow.flatbuf.Schema.prototype.__init = function(i, bb) {
+  this.bb_pos = i;
+  this.bb = bb;
+  return this;
+};
+
+/**
+ * @param {flatbuffers.ByteBuffer} bb
+ * @param {org.apache.arrow.flatbuf.Schema=} obj
+ * @returns {org.apache.arrow.flatbuf.Schema}
+ */
+org.apache.arrow.flatbuf.Schema.getRootAsSchema = function(bb, obj) {
+  return (obj || new 
org.apache.arrow.flatbuf.Schema).__init(bb.readInt32(bb.position()) + 
bb.position(), bb);
+};
+
+/**
+ * endianness of the buffer
+ * it is Little Endian by default
+ * if endianness doesn't match the underlying system then the vectors need to 
be converted
+ *
+ * @returns {org.apache.arrow.flatbuf.Endianness}
+ */
+org.apache.arrow.flatbuf.Schema.prototype.endianness = function() {
+  var offset = this.bb.__offset(this.bb_pos, 4);
+  return offset ? /** @type {org.apache.arrow.flatbuf.Endianness} */ 
(this.bb.readInt16(this.bb_pos + offset)) : 
org.apache.arrow.flatbuf.Endianness.Little;
+};
+
+/**
+ * @param {number} index
+ * @param {org.apache.arrow.flatbuf.Field=} obj
+ * @returns {org.apache.arrow.flatbuf.Field}
+ */
+org.apache.arrow.flatbuf.Schema.prototype.fields = function(index, obj) {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.Field).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos
 + offset) + index * 4), this.bb) : null;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Schema.prototype.fieldsLength = function() {
+  var offset = this.bb.__offset(this.bb_pos, 6);
+  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {number} index
+ * @param {org.apache.arrow.flatbuf.KeyValue=} obj
+ * @returns {org.apache.arrow.flatbuf.KeyValue}
+ */
+org.apache.arrow.flatbuf.Schema.prototype.customMetadata = function(index, 
obj) {
+  var offset = this.bb.__offset(this.bb_pos, 8);
+  return offset ? (obj || new 
org.apache.arrow.flatbuf.KeyValue).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos
 + offset) + index * 4), this.bb) : null;
+};
+
+/**
+ * @returns {number}
+ */
+org.apache.arrow.flatbuf.Schema.prototype.customMetadataLength = function() {
+  var offset = this.bb.__offset(this.bb_pos, 8);
+  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ */
+org.apache.arrow.flatbuf.Schema.startSchema = function(builder) {
+  builder.startObject(3);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {org.apache.arrow.flatbuf.Endianness} endianness
+ */
+org.apache.arrow.flatbuf.Schema.addEndianness = function(builder, endianness) {
+  builder.addFieldInt16(0, endianness, 
org.apache.arrow.flatbuf.Endianness.Little);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} fieldsOffset
+ */
+org.apache.arrow.flatbuf.Schema.addFields = function(builder, fieldsOffset) {
+  builder.addFieldOffset(1, fieldsOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {Array.<flatbuffers.Offset>} data
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Schema.createFieldsVector = function(builder, data) {
+  builder.startVector(4, data.length, 4);
+  for (var i = data.length - 1; i >= 0; i--) {
+    builder.addOffset(data[i]);
+  }
+  return builder.endVector();
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} numElems
+ */
+org.apache.arrow.flatbuf.Schema.startFieldsVector = function(builder, 
numElems) {
+  builder.startVector(4, numElems, 4);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} customMetadataOffset
+ */
+org.apache.arrow.flatbuf.Schema.addCustomMetadata = function(builder, 
customMetadataOffset) {
+  builder.addFieldOffset(2, customMetadataOffset, 0);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {Array.<flatbuffers.Offset>} data
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Schema.createCustomMetadataVector = function(builder, 
data) {
+  builder.startVector(4, data.length, 4);
+  for (var i = data.length - 1; i >= 0; i--) {
+    builder.addOffset(data[i]);
+  }
+  return builder.endVector();
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {number} numElems
+ */
+org.apache.arrow.flatbuf.Schema.startCustomMetadataVector = function(builder, 
numElems) {
+  builder.startVector(4, numElems, 4);
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @returns {flatbuffers.Offset}
+ */
+org.apache.arrow.flatbuf.Schema.endSchema = function(builder) {
+  var offset = builder.endObject();
+  return offset;
+};
+
+/**
+ * @param {flatbuffers.Builder} builder
+ * @param {flatbuffers.Offset} offset
+ */
+org.apache.arrow.flatbuf.Schema.finishSchemaBuffer = function(builder, offset) 
{
+  builder.finish(offset);
+};
+
+// Exports for Node.js and RequireJS
+exports.org = org;

Reply via email to