Java 类com.google.protobuf.BytesValue 实例源码

项目:protobuf-jaxrs    文件:ProtobufProviderTest.java   
@Test
public void shouldParseCompatibleTypes() throws IOException {
  // Given:
  final StringValue val = StringValue.newBuilder().setValue("test").build();

  // When:
  final byte[] buf;
  try (final ByteArrayOutputStream os = new ByteArrayOutputStream()) {
    provider.writeTo(val, val.getClass(), null, EMPTY_ANNOTATIONS, ProtobufMediaType.MEDIA_TYPE, null, os);
    buf = os.toByteArray();
  }

  // Then:
  assertTrue(provider.isReadable(BytesValue.class, null, EMPTY_ANNOTATIONS, ProtobufMediaType.MEDIA_TYPE));
  assertTrue(provider.isWriteable(BytesValue.class, null, EMPTY_ANNOTATIONS, ProtobufMediaType.MEDIA_TYPE));

  try (final ByteArrayInputStream is = new ByteArrayInputStream(buf)) {
    @SuppressWarnings("unchecked") final Class<Object> clazz = (Class) val.getClass();
    final Object actual = provider.readFrom(clazz, null, EMPTY_ANNOTATIONS, ProtobufMediaType.MEDIA_TYPE, null, is);
    assertEquals(val, actual);
  }
}
项目:curiostack    文件:WellKnownTypeMarshaller.java   
BytesValueMarshaller() {
  super(BytesValue.getDefaultInstance());
}
项目:curiostack    文件:WellKnownTypeMarshaller.java   
@Override
protected final void doMerge(JsonParser parser, int unused, Message.Builder messageBuilder)
    throws IOException {
  BytesValue.Builder b = (BytesValue.Builder) messageBuilder;
  b.setValue(ParseSupport.parseBytes(parser));
}
项目:curiostack    文件:WellKnownTypeMarshaller.java   
@Override
protected final void doWrite(BytesValue message, JsonGenerator gen) throws IOException {
  SerializeSupport.printBytes(message.getValue(), gen);
}
项目:curiostack    文件:MessageMarshallerTest.java   
@Test
public void anyFields() throws Exception {
  TestAllTypes content = TestAllTypes.newBuilder().setOptionalInt32(1234).build();
  TestAny message = TestAny.newBuilder().setAnyValue(Any.pack(content)).build();
  assertMatchesUpstream(message, TestAllTypes.getDefaultInstance());

  TestAny messageWithDefaultAnyValue =
      TestAny.newBuilder().setAnyValue(Any.getDefaultInstance()).build();
  assertMatchesUpstream(messageWithDefaultAnyValue);

  // Well-known types have a special formatting when embedded in Any.
  //
  // 1. Any in Any.
  Any anyMessage = Any.pack(Any.pack(content));
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 2. Wrappers in Any.
  anyMessage = Any.pack(Int32Value.newBuilder().setValue(12345).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(UInt32Value.newBuilder().setValue(12345).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(Int64Value.newBuilder().setValue(12345).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(UInt64Value.newBuilder().setValue(12345).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(FloatValue.newBuilder().setValue(12345).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(DoubleValue.newBuilder().setValue(12345).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(BoolValue.newBuilder().setValue(true).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage = Any.pack(StringValue.newBuilder().setValue("Hello").build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
  anyMessage =
      Any.pack(BytesValue.newBuilder().setValue(ByteString.copyFrom(new byte[] {1, 2})).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 3. Timestamp in Any.
  anyMessage = Any.pack(Timestamps.parse("1969-12-31T23:59:59Z"));
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 4. Duration in Any
  anyMessage = Any.pack(Durations.parse("12345.10s"));
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 5. FieldMask in Any
  anyMessage = Any.pack(FieldMaskUtil.fromString("foo.bar,baz"));
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 6. Struct in Any
  Struct.Builder structBuilder = Struct.newBuilder();
  structBuilder.putFields("number", Value.newBuilder().setNumberValue(1.125).build());
  anyMessage = Any.pack(structBuilder.build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 7. Value (number type) in Any
  Value.Builder valueBuilder = Value.newBuilder();
  valueBuilder.setNumberValue(1);
  anyMessage = Any.pack(valueBuilder.build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());

  // 8. Value (null type) in Any
  anyMessage = Any.pack(Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build());
  assertMatchesUpstream(anyMessage, TestAllTypes.getDefaultInstance());
}
项目:protobuf-jaxrs    文件:ProtobufJacksonProviderTest.java   
@Test
public void shouldNotReadIncompatibleMessages() {
  assertFalse(provider.isReadable(String.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
  assertFalse(provider.isReadable(String.class, null, EMPTY_ANNOTATIONS, MediaType.APPLICATION_JSON_TYPE));
  assertFalse(provider.isReadable(BytesValue.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
}
项目:protobuf-jaxrs    文件:ProtobufJacksonProviderTest.java   
@Test
public void shouldNotWriteIncompatibleMessages() {
  assertFalse(provider.isWriteable(String.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
  assertFalse(provider.isWriteable(String.class, null, EMPTY_ANNOTATIONS, MediaType.APPLICATION_JSON_TYPE));
  assertFalse(provider.isWriteable(BytesValue.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
}
项目:protobuf-jaxrs    文件:ProtobufProviderTest.java   
@Test
public void shouldNotReadIncompatibleMessages() {
  assertFalse(provider.isReadable(String.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
  assertFalse(provider.isReadable(String.class, null, EMPTY_ANNOTATIONS, ProtobufMediaType.MEDIA_TYPE));
  assertFalse(provider.isReadable(BytesValue.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
}
项目:protobuf-jaxrs    文件:ProtobufProviderTest.java   
@Test
public void shouldNotWriteIncompatibleMessages() {
  assertFalse(provider.isWriteable(String.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
  assertFalse(provider.isWriteable(String.class, null, EMPTY_ANNOTATIONS, ProtobufMediaType.MEDIA_TYPE));
  assertFalse(provider.isWriteable(BytesValue.class, null, EMPTY_ANNOTATIONS, MediaType.TEXT_PLAIN_TYPE));
}
项目:api-compiler    文件:DescriptorNormalization.java   
/**
 * Convert a protocol buffer field value to {@link Any} with the below rule:
 * <ul>
 *    <li> If the field is a primitive type and can be mapped to a wrapper message type
 *    defined in //tech/type/proto/wrappers.proto, its value is boxed into a wrapper
 *     and goes to Any.value, the type name of the wrapper goes to Any.type_url.
 *    <li> If the field is already a message, its type name goes to Any.type_url,
 *    its value directly goes to Any.value
 *    <li> If the field is an enum value, the name of the enum value is boxed into
 *    tech.type.String and put into Any.value, and tech.type.String goes to Any.type_url.
 */
private static Any toAnyType(FieldDescriptor.Type protobufType, Object value) {
  Any.Builder builder = Any.newBuilder();
  java.lang.String typeFullName;
  Message wrapperMessage;
  switch (protobufType) {
    case MESSAGE:
      wrapperMessage = (Message) value;
      typeFullName = wrapperMessage.getDescriptorForType().getFullName();
      break;
    case ENUM:
      // NOTE: Erasing the enum type to the String wrapper is currently intentional, to avoid
      // the need to add an enum wrapper type.  This may change in the future.
      typeFullName = StringValue.getDescriptor().getFullName();
      wrapperMessage =
          StringValue.newBuilder().setValue(((EnumValueDescriptor) value).getName()).build();
      break;
    case BOOL:
      typeFullName = BoolValue.getDescriptor().getFullName();
      wrapperMessage = BoolValue.newBuilder().setValue((Boolean) value).build();
      break;
    case DOUBLE:
      typeFullName = DoubleValue.getDescriptor().getFullName();
      wrapperMessage = DoubleValue.newBuilder().setValue((java.lang.Double) value).build();
      break;
    case FLOAT:
      typeFullName = FloatValue.getDescriptor().getFullName();
      wrapperMessage = FloatValue.newBuilder().setValue((java.lang.Float) value).build();
      break;
    case STRING:
      typeFullName = StringValue.getDescriptor().getFullName();
      wrapperMessage = StringValue.newBuilder().setValue((java.lang.String) value).build();
      break;
    case SINT32:
    case SFIXED32:
    case INT32:
      typeFullName = Int32Value.getDescriptor().getFullName();
      wrapperMessage = Int32Value.newBuilder().setValue((Integer) value).build();
      break;
    case SINT64:
    case SFIXED64:
    case INT64:
      typeFullName = Int64Value.getDescriptor().getFullName();
      wrapperMessage = Int64Value.newBuilder().setValue((Long) value).build();
      break;
    case UINT32:
    case FIXED32:
      typeFullName = UInt32Value.getDescriptor().getFullName();
      wrapperMessage = UInt32Value.newBuilder().setValue((Integer) value).build();
      break;
    case UINT64:
    case FIXED64:
      typeFullName = UInt64Value.getDescriptor().getFullName();
      wrapperMessage = UInt64Value.newBuilder().setValue((Long) value).build();
      break;
    case BYTES:
      typeFullName = BytesValue.getDescriptor().getFullName();
      wrapperMessage = BytesValue.newBuilder().setValue(ByteString.copyFrom((byte[]) value))
          .build();
      break;
    default:
      throw new IllegalArgumentException("Type " + protobufType.name()
          + " cannot be converted to Any type.");
  }
  return builder.setTypeUrl(TYPE_SERVICE_BASE_URL + "/" + typeFullName)
      .setValue(wrapperMessage.toByteString()).build();
}
项目:core-java    文件:FieldShould.java   
@Test
public void return_byte_string_msg_field_class_by_descriptor() {
    assertReturnsFieldClass(ByteString.class, BytesValue.getDescriptor());
}