@Override public RevObject read(@Nullable ObjectId id, byte[] data, int offset, int length) throws IOException { final int type = data[offset] & 0xFF; if (RevObject.TYPE.TREE.ordinal() == type) { final int size = Ints.fromBytes(data[offset + 1], data[offset + 2], data[offset + 3], data[offset + 4]); offset += 1 + Integer.BYTES;// skip size header length -= 1 + Integer.BYTES; Preconditions.checkState(size == length, "expected %s, got %s", size, length); return FormatCommonV2_3.INSTANCE.readTree(id, data, offset, length); } return super.read(id, new ByteArrayInputStream(data, offset, length)); }
@Override public RevObject read(@Nullable ObjectId id, byte[] data, int offset, int length) throws IOException { final int type = data[offset] & 0xFF; if (RevObject.TYPE.TREE.ordinal() == type) { final int size = Ints.fromBytes(data[offset + 1], data[offset + 2], data[offset + 3], data[offset + 4]); offset += 1 + Integer.BYTES;// skip size header length -= 1 + Integer.BYTES; Preconditions.checkState(size == length, "expected %s, got %s", size, length); return FormatCommonV2_3.INSTANCE.readTree(id, data, offset, length); } return super.read(id, new ByteArrayInputStream(data, offset, length)); }
public static void encode(DataOutput out, RevTree tree) throws IOException { // object type out.write(RevObject.TYPE.TREE.ordinal()); final long totalSize = tree.size(); final int totalSubtrees = tree.numTrees(); Varint.writeUnsignedVarLong(totalSize, out); Varint.writeUnsignedVarInt(totalSubtrees, out); }
@SuppressWarnings("unchecked") private <T extends RevObject> Serializer<T> serializer(TYPE type) { Serializer<? extends RevObject> serializer = serializers[type.ordinal()]; return (Serializer<T>) serializer; }
public static void encode(DataOutput out, RevTree tree) throws IOException { // object type out.write(RevObject.TYPE.TREE.ordinal()); final long totalSize = tree.size(); final int totalSubtrees = tree.numTrees(); Varint.writeUnsignedVarLong(totalSize, out); Varint.writeUnsignedVarInt(totalSubtrees, out); }
@SuppressWarnings("unchecked") private <T extends RevObject> Serializer<T> serializer(TYPE type) { Serializer<? extends RevObject> serializer = serializers[type.ordinal()]; return (Serializer<T>) serializer; }
protected DataStreamRevObjectSerializerV2(FormatCommonV2 format) { Preconditions.checkNotNull(format); this.format = format; serializers[TYPE.COMMIT.ordinal()] = new CommitSerializer(format); serializers[TYPE.FEATURE.ordinal()] = new FeatureSerializer(format); serializers[TYPE.FEATURETYPE.ordinal()] = new FeatureTypeSerializer(format); serializers[TYPE.TAG.ordinal()] = new TagSerializer(format); serializers[TYPE.TREE.ordinal()] = new TreeSerializer(format); }
protected DataStreamSerializationFactoryV2(FormatCommonV2 format) { Preconditions.checkNotNull(format); this.format = format; serializers[TYPE.COMMIT.ordinal()] = new CommitSerializer(format); serializers[TYPE.FEATURE.ordinal()] = new FeatureSerializer(format); serializers[TYPE.FEATURETYPE.ordinal()] = new FeatureTypeSerializer(format); serializers[TYPE.TAG.ordinal()] = new TagSerializer(format); serializers[TYPE.TREE.ordinal()] = new TreeSerializer(format); }