public RevFeature build() { ObjectId id = HashObject.hashFeature(values); return new RevFeatureImpl(id, new ArrayList<>(values)); }
@Override public RevFeature readFeature(@Nullable ObjectId id, DataInput in) throws IOException { // <HEADER> // - unsigned varint: number of attributes final int attrCount = readUnsignedVarInt(in); // - unsigned varint: size of <DATA> final int dataSize = readUnsignedVarInt(in); // - unsigned varint[number of attributes]: attribute offsets (starting form zero at // <DATA>, not including the header) final int[] dataOffsets = new int[attrCount]; for (int i = 0; i < attrCount; i++) { dataOffsets[i] = readUnsignedVarInt(in); } // <DATA> byte[] data = new byte[dataSize]; in.readFully(data); LazyRevFeature f = new LazyRevFeature(id, dataOffsets, data, valueEncoder); if (id == null) { id = HashObject.hashFeature(f.values()); f.id = id; } return f; }
@Override public RevFeature readFeature(@Nullable ObjectId id, DataInput in) throws IOException { // <HEADER> // - unsigned varint: number of attributes final int attrCount = readUnsignedVarInt(in); // - unsigned varint: size of <DATA> final int dataSize = readUnsignedVarInt(in); // - unsigned varint[number of attributes]: attribute offsets (starting form zero at // <DATA>, not including the header) final int[] dataOffsets = new int[attrCount]; for (int i = 0; i < attrCount; i++) { dataOffsets[i] = readUnsignedVarInt(in); } // <DATA> byte[] data = new byte[dataSize]; in.readFully(data); LazyRevFeature f = new LazyRevFeature(id, dataOffsets, data, valueEncoder); if (id == null) { id = HashObject.hashFeature(f.values()); f.id = id; } return f; }