类com.google.protobuf.GeneratedMessage.ExtendableBuilder源码实例Demo

下面列出了怎么用com.google.protobuf.GeneratedMessage.ExtendableBuilder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: travelguide   文件: AbstractMessage.java
private static void mergeMessageSetExtensionFromBytes(
    ByteString rawBytes,
    ExtensionRegistry.ExtensionInfo extension,
    ExtensionRegistryLite extensionRegistry,
    Message.Builder builder,
    FieldSet<FieldDescriptor> extensions) throws IOException {

  FieldDescriptor field = extension.descriptor;
  boolean hasOriginalValue = hasOriginalMessage(builder, extensions, field);

  if (hasOriginalValue || ExtensionRegistryLite.isEagerlyParseMessageSets()) {
    // If the field already exists, we just parse the field.
    Message value = null;
    if (hasOriginalValue) {
      Message originalMessage =
          getOriginalMessage(builder, extensions, field);
      Message.Builder subBuilder= originalMessage.toBuilder();
      subBuilder.mergeFrom(rawBytes, extensionRegistry);
      value = subBuilder.buildPartial();
    } else {
      value = extension.defaultInstance.getParserForType()
          .parsePartialFrom(rawBytes, extensionRegistry);
    }
    setField(builder, extensions, field, value);
  } else {
    // Use LazyField to load MessageSet lazily.
    LazyField lazyField = new LazyField(
        extension.defaultInstance, extensionRegistry, rawBytes);
    if (builder != null) {
      // TODO(xiangl): it looks like this method can only be invoked by
      // ExtendableBuilder, but I'm not sure. So I double check the type of
      // builder here. It may be useless and need more investigation.
      if (builder instanceof ExtendableBuilder) {
        builder.setField(field, lazyField);
      } else {
        builder.setField(field, lazyField.getValue());
      }
    } else {
      extensions.setField(field, lazyField);
    }
  }
}
 
源代码2 项目: android-chromium   文件: AbstractMessage.java
private static void mergeMessageSetExtensionFromBytes(
    ByteString rawBytes,
    ExtensionRegistry.ExtensionInfo extension,
    ExtensionRegistryLite extensionRegistry,
    Message.Builder builder,
    FieldSet<FieldDescriptor> extensions) throws IOException {

  FieldDescriptor field = extension.descriptor;
  boolean hasOriginalValue = hasOriginalMessage(builder, extensions, field);

  if (hasOriginalValue || ExtensionRegistryLite.isEagerlyParseMessageSets()) {
    // If the field already exists, we just parse the field.
    Message value = null;
    if (hasOriginalValue) {
      Message originalMessage =
          getOriginalMessage(builder, extensions, field);
      Message.Builder subBuilder= originalMessage.toBuilder();
      subBuilder.mergeFrom(rawBytes, extensionRegistry);
      value = subBuilder.buildPartial();
    } else {
      value = extension.defaultInstance.getParserForType()
          .parsePartialFrom(rawBytes, extensionRegistry);
    }
    setField(builder, extensions, field, value);
  } else {
    // Use LazyField to load MessageSet lazily.
    LazyField lazyField = new LazyField(
        extension.defaultInstance, extensionRegistry, rawBytes);
    if (builder != null) {
      // TODO(xiangl): it looks like this method can only be invoked by
      // ExtendableBuilder, but I'm not sure. So I double check the type of
      // builder here. It may be useless and need more investigation.
      if (builder instanceof ExtendableBuilder) {
        builder.setField(field, lazyField);
      } else {
        builder.setField(field, lazyField.getValue());
      }
    } else {
      extensions.setField(field, lazyField);
    }
  }
}
 
源代码3 项目: android-chromium   文件: AbstractMessage.java
private static void mergeMessageSetExtensionFromBytes(
    ByteString rawBytes,
    ExtensionRegistry.ExtensionInfo extension,
    ExtensionRegistryLite extensionRegistry,
    Message.Builder builder,
    FieldSet<FieldDescriptor> extensions) throws IOException {

  FieldDescriptor field = extension.descriptor;
  boolean hasOriginalValue = hasOriginalMessage(builder, extensions, field);

  if (hasOriginalValue || ExtensionRegistryLite.isEagerlyParseMessageSets()) {
    // If the field already exists, we just parse the field.
    Message value = null;
    if (hasOriginalValue) {
      Message originalMessage =
          getOriginalMessage(builder, extensions, field);
      Message.Builder subBuilder= originalMessage.toBuilder();
      subBuilder.mergeFrom(rawBytes, extensionRegistry);
      value = subBuilder.buildPartial();
    } else {
      value = extension.defaultInstance.getParserForType()
          .parsePartialFrom(rawBytes, extensionRegistry);
    }
    setField(builder, extensions, field, value);
  } else {
    // Use LazyField to load MessageSet lazily.
    LazyField lazyField = new LazyField(
        extension.defaultInstance, extensionRegistry, rawBytes);
    if (builder != null) {
      // TODO(xiangl): it looks like this method can only be invoked by
      // ExtendableBuilder, but I'm not sure. So I double check the type of
      // builder here. It may be useless and need more investigation.
      if (builder instanceof ExtendableBuilder) {
        builder.setField(field, lazyField);
      } else {
        builder.setField(field, lazyField.getValue());
      }
    } else {
      extensions.setField(field, lazyField);
    }
  }
}
 
 类所在包
 类方法
 同包方法