blob: 917637837fc7d411ae266baa3f81448f907bcc98 [file] [log] [blame]
// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package enumproto;
import enumproto.GeneratedEnumProto.Enum;
import enumproto.three.GeneratedEnumProto.EnumThree;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class Enumproto {
private static final byte[] WITH_ALL_FIELDS = new byte[]{6, 8, 42, 16, 2, 24, 3};
private static final byte[] WITH_DEFAULT_FOR_ENUM = new byte[]{2, 8, 42};
public static void main(String... args) throws IOException {
readProtoAndPrintDaEnum(WITH_ALL_FIELDS);
readProtoAndPrintDaEnum(WITH_DEFAULT_FOR_ENUM);
readProtoThreeAndPrintDaEnum(WITH_ALL_FIELDS);
readProtoThreeAndPrintDaEnum(WITH_DEFAULT_FOR_ENUM);
roundTrip(WITH_ALL_FIELDS);
roundTrip(WITH_DEFAULT_FOR_ENUM);
roundTripThree(WITH_ALL_FIELDS);
roundTripThree(WITH_DEFAULT_FOR_ENUM);
}
private static void readProtoAndPrintDaEnum(byte[] bytes) throws IOException {
ByteArrayInputStream input = new ByteArrayInputStream(bytes);
Enum.Builder builder = Enum.newBuilder();
builder.mergeDelimitedFrom(input);
Enum buffer = builder.build();
System.out.println(buffer.getEnum());
}
private static void readProtoThreeAndPrintDaEnum(byte[] bytes) throws IOException {
ByteArrayInputStream input = new ByteArrayInputStream(bytes);
EnumThree.Builder builder = EnumThree.newBuilder();
builder.mergeDelimitedFrom(input);
EnumThree buffer = builder.build();
System.out.println(buffer.getEnum());
}
private static void roundTrip(byte[] bytes) throws IOException {
ByteArrayInputStream input = new ByteArrayInputStream(bytes);
Enum.Builder builder = Enum.newBuilder();
builder.mergeDelimitedFrom(input);
Enum buffer = builder.build();
ByteArrayOutputStream output = new ByteArrayOutputStream();
buffer.writeDelimitedTo(output);
readProtoAndPrintDaEnum(output.toByteArray());
}
private static void roundTripThree(byte[] bytes) throws IOException {
ByteArrayInputStream input = new ByteArrayInputStream(bytes);
EnumThree.Builder builder = EnumThree.newBuilder();
builder.mergeDelimitedFrom(input);
EnumThree buffer = builder.build();
ByteArrayOutputStream output = new ByteArrayOutputStream();
buffer.writeDelimitedTo(output);
readProtoThreeAndPrintDaEnum(output.toByteArray());
}
}