Package com.google.protobuf.Descriptors

Examples of com.google.protobuf.Descriptors.OneofDescriptor


  public void testOneofDescriptor() throws Exception {
    Descriptor messageType = TestAllTypes.getDescriptor();
    FieldDescriptor field =
        messageType.findFieldByName("oneof_nested_message");
    OneofDescriptor oneofDescriptor = field.getContainingOneof();
    assertNotNull(oneofDescriptor);
    assertSame(oneofDescriptor, messageType.getOneofs().get(0));
    assertEquals("oneof_field", oneofDescriptor.getName());

    assertEquals(4, oneofDescriptor.getFieldCount());
    assertSame(oneofDescriptor.getField(1), field);
  }
View Full Code Here


  }

  public void testDynamicOneofMessage() throws Exception {
    DynamicMessage.Builder builder =
        DynamicMessage.newBuilder(TestAllTypes.getDescriptor());
    OneofDescriptor oneof = TestAllTypes.getDescriptor().getOneofs().get(0);
    assertFalse(builder.hasOneof(oneof));
    assertSame(null, builder.getOneofFieldDescriptor(oneof));

    reflectionTester.setAllFieldsViaReflection(builder);
    assertTrue(builder.hasOneof(oneof));
    FieldDescriptor field = oneof.getField(3);
    assertSame(field, builder.getOneofFieldDescriptor(oneof));

    DynamicMessage message = builder.buildPartial();
    assertTrue(message.hasOneof(oneof));

    DynamicMessage.Builder mergedBuilder =
        DynamicMessage.newBuilder(TestAllTypes.getDescriptor());
    FieldDescriptor mergedField = oneof.getField(0);
    mergedBuilder.setField(mergedField, 123);
    assertTrue(mergedBuilder.hasField(mergedField));
    mergedBuilder.mergeFrom(message);
    assertTrue(mergedBuilder.hasField(field));
    assertFalse(mergedBuilder.hasField(mergedField));
View Full Code Here

  public void testOneofDescriptor() throws Exception {
    Descriptor messageType = TestAllTypes.getDescriptor();
    FieldDescriptor field =
        messageType.findFieldByName("oneof_nested_message");
    OneofDescriptor oneofDescriptor = field.getContainingOneof();
    assertNotNull(oneofDescriptor);
    assertSame(oneofDescriptor, messageType.getOneofs().get(0));
    assertEquals("oneof_field", oneofDescriptor.getName());

    assertEquals(4, oneofDescriptor.getFieldCount());
    assertSame(oneofDescriptor.getField(1), field);
  }
View Full Code Here

  }

  public void testDynamicOneofMessage() throws Exception {
    DynamicMessage.Builder builder =
        DynamicMessage.newBuilder(TestAllTypes.getDescriptor());
    OneofDescriptor oneof = TestAllTypes.getDescriptor().getOneofs().get(0);
    assertFalse(builder.hasOneof(oneof));
    assertSame(null, builder.getOneofFieldDescriptor(oneof));

    reflectionTester.setAllFieldsViaReflection(builder);
    assertTrue(builder.hasOneof(oneof));
    FieldDescriptor field = oneof.getField(3);
    assertSame(field, builder.getOneofFieldDescriptor(oneof));

    DynamicMessage message = builder.buildPartial();
    assertTrue(message.hasOneof(oneof));

    DynamicMessage.Builder mergedBuilder =
        DynamicMessage.newBuilder(TestAllTypes.getDescriptor());
    FieldDescriptor mergedField = oneof.getField(0);
    mergedBuilder.setField(mergedField, 123);
    assertTrue(mergedBuilder.hasField(mergedField));
    mergedBuilder.mergeFrom(message);
    assertTrue(mergedBuilder.hasField(field));
    assertFalse(mergedBuilder.hasField(mergedField));
View Full Code Here

      // because of some internal features we support. Should figure it out
      // and move this check to a more appropriate place.
      if (field.getType() == FieldDescriptor.Type.ENUM) {
        ensureEnumValueDescriptor(field, value);
      }
      OneofDescriptor oneofDescriptor = field.getContainingOneof();
      if (oneofDescriptor != null) {
        int index = oneofDescriptor.getIndex();
        FieldDescriptor oldField = oneofCases[index];
        if ((oldField != null) && (oldField != field)) {
          fields.clearField(oldField);
        }
        oneofCases[index] = field;
View Full Code Here

    }

    public Builder clearField(FieldDescriptor field) {
      verifyContainingType(field);
      ensureIsMutable();
      OneofDescriptor oneofDescriptor = field.getContainingOneof();
      if (oneofDescriptor != null) {
        int index = oneofDescriptor.getIndex();
        if (oneofCases[index] == field) {
          oneofCases[index] = null;
        }
      }
      fields.clearField(field);
View Full Code Here

      verifyContainingType(field);
      ensureIsMutable();
      if (field.getType() == FieldDescriptor.Type.ENUM) {
        verifyEnumType(field, value);
      }
      OneofDescriptor oneofDescriptor = field.getContainingOneof();
      if (oneofDescriptor != null) {
        int index = oneofDescriptor.getIndex();
        FieldDescriptor oldField = oneofCases[index];
        if ((oldField != null) && (oldField != field)) {
          fields.clearField(oldField);
        }
        oneofCases[index] = field;
View Full Code Here

    }

    public Builder clearField(FieldDescriptor field) {
      verifyContainingType(field);
      ensureIsMutable();
      OneofDescriptor oneofDescriptor = field.getContainingOneof();
      if (oneofDescriptor != null) {
        int index = oneofDescriptor.getIndex();
        if (oneofCases[index] == field) {
          oneofCases[index] = null;
        }
      }
      fields.clearField(field);
View Full Code Here

TOP

Related Classes of com.google.protobuf.Descriptors.OneofDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.