/** Verifies that the oneof is an oneof of this message. */
private void verifyOneofContainingType(OneofDescriptor oneof) {
if (oneof.getContainingType() != type) {
throw new IllegalArgumentException(
"OneofDescriptor does not match message type.");
}
}
java类com.google.protobuf.Descriptors.OneofDescriptor的实例源码
DynamicMessage.java 文件源码
项目:protobuffer
阅读 21
收藏 0
点赞 0
评论 0
GeneratedMessage.java 文件源码
项目:protobuffer
阅读 18
收藏 0
点赞 0
评论 0
/** Get the OneofAccessor for a particular oneof. */
private OneofAccessor getOneof(final OneofDescriptor oneof) {
if (oneof.getContainingType() != descriptor) {
throw new IllegalArgumentException(
"OneofDescriptor does not match message type.");
}
return oneofs[oneof.getIndex()];
}
DynamicMessage.java 文件源码
项目:protobuffer
阅读 23
收藏 0
点赞 0
评论 0
public boolean hasOneof(OneofDescriptor oneof) {
verifyOneofContainingType(oneof);
FieldDescriptor field = oneofCases[oneof.getIndex()];
if (field == null) {
return false;
}
return true;
}
DynamicMessage.java 文件源码
项目:protobuffer
阅读 21
收藏 0
点赞 0
评论 0
/** Verifies that the oneof is an oneof of this message. */
private void verifyOneofContainingType(OneofDescriptor oneof) {
if (oneof.getContainingType() != type) {
throw new IllegalArgumentException(
"OneofDescriptor does not match message type.");
}
}
DynamicMessage.java 文件源码
项目:protobuffer
阅读 19
收藏 0
点赞 0
评论 0
public boolean hasOneof(OneofDescriptor oneof) {
verifyOneofContainingType(oneof);
FieldDescriptor field = oneofCases[oneof.getIndex()];
if (field == null) {
return false;
}
return true;
}
DynamicMessage.java 文件源码
项目:protobuffer
阅读 18
收藏 0
点赞 0
评论 0
public Builder clearOneof(OneofDescriptor oneof) {
verifyOneofContainingType(oneof);
FieldDescriptor field = oneofCases[oneof.getIndex()];
if (field != null) {
clearField(field);
}
return this;
}
DynamicMessage.java 文件源码
项目:protobuffer
阅读 15
收藏 0
点赞 0
评论 0
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);
return this;
}
DynamicMessage.java 文件源码
项目:protobuffer
阅读 15
收藏 0
点赞 0
评论 0
/** Verifies that the oneof is an oneof of this message. */
private void verifyOneofContainingType(OneofDescriptor oneof) {
if (oneof.getContainingType() != type) {
throw new IllegalArgumentException(
"OneofDescriptor does not match message type.");
}
}
GeneratedMessage.java 文件源码
项目:protobuffer
阅读 19
收藏 0
点赞 0
评论 0
/** Get the OneofAccessor for a particular oneof. */
private OneofAccessor getOneof(final OneofDescriptor oneof) {
if (oneof.getContainingType() != descriptor) {
throw new IllegalArgumentException(
"OneofDescriptor does not match message type.");
}
return oneofs[oneof.getIndex()];
}
DynamicMessageTest.java 文件源码
项目:vsminecraft
阅读 19
收藏 0
点赞 0
评论 0
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));
builder.clearOneof(oneof);
assertSame(null, builder.getOneofFieldDescriptor(oneof));
message = builder.build();
assertSame(null, message.getOneofFieldDescriptor(oneof));
}