public static void writeBooleanArray(boolean[] array, ByteBuffer out) { if (array == null) { writeVInt(-1, out); return; } writeVInt(array.length, out); byte b_true = (byte) 1; byte b_false = (byte) 0; for (int i = 0; i < array.length; i++) { if (array[i]) out.put(b_true); else out.put(b_false); } }
@Override public void serialize(IGTCodeSystem ivalue, ByteBuffer out) { TrimmedCubeCodeSystem value = (TrimmedCubeCodeSystem) ivalue; BytesUtil.writeVInt(value.dependentMetricsMap.size(), out); for (Map.Entry<Integer, Integer> x : value.dependentMetricsMap.entrySet()) { BytesUtil.writeVInt(x.getKey(), out); BytesUtil.writeVInt(x.getValue(), out); } BytesUtil.writeVInt(value.dimEncs.length, out); for (int i = 0; i < value.dimEncs.length; i++) { DimensionEncoding enc = value.dimEncs[i]; writeDimensionEncoding(enc, out); } }
private static void serializeExpression(int flag, TupleExpression expr, ByteBuffer buffer, IFilterCodeSystem<?> cs) { if (flag < 0) { BytesUtil.writeVInt(-1, buffer); } else { int opVal = expr.getOperator().getValue(); BytesUtil.writeVInt(opVal, buffer); expr.serialize(cs, buffer); BytesUtil.writeVInt(flag, buffer); } }
public static void writeAsciiStringArray(String[] strs, ByteBuffer out) { writeVInt(strs.length, out); for (int i = 0; i < strs.length; i++) writeAsciiString(strs[i], out); }
private void serializeGTRecord(GTRecord gtRecord, ByteBuffer out) { BytesUtil.writeVInt(gtRecord.cols.length, out); for (ByteArray col : gtRecord.cols) { col.exportData(out); } }
@Override public void serialize(CoprocessorProjector value, ByteBuffer out) { BytesUtil.writeByteArray(value.groupByMask, out); BytesUtil.writeVInt(value.hasGroupby ? 1 : 0, out); }
private static void serializeFilter(int flag, TupleFilter filter, ByteBuffer buffer, IFilterCodeSystem<?> cs) { if (flag < 0) { BytesUtil.writeVInt(-1, buffer); } else { int opVal = filter.getOperator().getValue(); BytesUtil.writeVInt(opVal, buffer); filter.serialize(cs, buffer); BytesUtil.writeVInt(flag, buffer); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void serialize(IFilterCodeSystem cs, ByteBuffer buffer) { int size = this.constantValues.size(); BytesUtil.writeVInt(size, buffer); for (Object val : this.constantValues) { cs.serialize(val, buffer); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void serialize(IFilterCodeSystem cs, ByteBuffer buffer) { int size = this.dynamicVariables.size(); BytesUtil.writeVInt(size, buffer); for (Map.Entry<String, Object> entry : this.dynamicVariables.entrySet()) { BytesUtil.writeUTFString(entry.getKey(), buffer); cs.serialize(entry.getValue(), buffer); } }
public static void writeDimensionEncoding(DimensionEncoding encoding, ByteBuffer out) { try { if (encoding == null) { BytesUtil.writeVInt(1, out); } else { BytesUtil.writeVInt(0, out); if (encoding instanceof DictionaryDimEnc) { encoding = new TrimmedDimEnc(encoding.getLengthOfEncoding()); } ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(encoding); BytesUtil.writeByteArray(baos.toByteArray(), out); } } catch (IOException e) { throw new RuntimeException(e); } }
@Override public void serialize(CoprocessorRowType o, ByteBuffer out) { int n = o.columns.length; BytesUtil.writeVInt(o.columns.length, out); BytesUtil.writeVInt(o.bodyOffset, out); for (int i = 0; i < n; i++) { BytesUtil.writeAsciiString(o.columns[i].getTable(), out); BytesUtil.writeAsciiString(o.columns[i].getName(), out); BytesUtil.writeAsciiString(o.columns[i].getDatatype(), out); BytesUtil.writeVInt(o.columnSizes[i], out); } }
private void serializeGTRecord(GTRecord gtRecord, ByteBuffer out) { ByteArray[] cols = gtRecord.getInternal(); BytesUtil.writeVInt(cols.length, out); for (ByteArray col : cols) { col.exportData(out); } } }
@Override public void serialize(List<ByteArray> values, ByteBuffer out) { if (values == null) { BytesUtil.writeVInt(0, out); } else { BytesUtil.writeVInt(values.size(), out); for (ByteArray array : values) { if (!out.hasRemaining() || out.remaining() < array.length()) { throw new RuntimeException("BufferOverflow! Please use one higher cardinality column for dimension column when build RAW cube!"); } BytesUtil.writeByteArray(BytesUtil.subarray(array.array(), array.offset(), array.offset() + array.length()), out); } } }
@Override public void serialize(RawScan value, ByteBuffer out) { BytesUtil.writeByteArray(value.startKey, out); BytesUtil.writeByteArray(value.endKey, out); BytesUtil.writeVInt(value.hbaseColumns.size(), out); for (Pair<byte[], byte[]> hbaseColumn : value.hbaseColumns) { BytesUtil.writeByteArray(hbaseColumn.getFirst(), out); BytesUtil.writeByteArray(hbaseColumn.getSecond(), out); } BytesUtil.writeVInt(value.fuzzyKeys.size(), out); for (Pair<byte[], byte[]> fuzzyKey : value.fuzzyKeys) { BytesUtil.writeByteArray(fuzzyKey.getFirst(), out); BytesUtil.writeByteArray(fuzzyKey.getSecond(), out); } BytesUtil.writeVInt(value.hbaseCaching, out); BytesUtil.writeVInt(value.hbaseMaxResultSize, out); }
@Override public void serialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) { BytesUtil.writeVInt(whenList.size(), buffer); for (Pair<TupleFilter, TupleExpression> whenEntry : whenList) { byte[] whenBytes = TupleFilterSerializer.serialize(whenEntry.getFirst(), cs); BytesUtil.writeByteArray(whenBytes, buffer); byte[] thenBytes = TupleExpressionSerializer.serialize(whenEntry.getSecond(), cs); BytesUtil.writeByteArray(thenBytes, buffer); } if (elseExpr != null) { BytesUtil.writeVInt(1, buffer); byte[] elseBytes = TupleExpressionSerializer.serialize(elseExpr, cs); BytesUtil.writeByteArray(elseBytes, buffer); } else { BytesUtil.writeVInt(-1, buffer); } }