com.google.protobuf.DescriptorProtos.DescriptorProto#Builder ( )源码实例Demo

下面列出了com.google.protobuf.DescriptorProtos.DescriptorProto#Builder ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: api-compiler   文件: BuilderVisitor.java
@Accepts
protected void accept(DescriptorProto.Builder message) {
  MessageNodeInfo messageInfo =
      (MessageNodeInfo) pushParent(BuilderVisitorNodeInfo.create(message, currentFile));

  visitRepeated(DescriptorProto.FIELD_FIELD_NUMBER);
  visitRepeated(DescriptorProto.NESTED_TYPE_FIELD_NUMBER);
  visitRepeated(DescriptorProto.ENUM_TYPE_FIELD_NUMBER);
  visitRepeated(DescriptorProto.EXTENSION_FIELD_NUMBER);

  visit(message.getOptionsBuilder());

  popExpectedParent(message);
}
 
源代码2 项目: api-compiler   文件: FileNodeInfo.java
public void processAddedFields(DescriptorProto.Builder message, Iterable<FieldLocation> fields) {
  if (manageSourceCodeInfo) {
    ProtoPathWrapper messagePath = pathFromElement(message);
    if (messagePath == null) {
      throw new RuntimeException(
          String.format(
              "Internal error - couldn't find path for proto message %s",
              ProtoHelpers.getName(message)));
    }
    ProtoPathWrapper fieldsPath =
        ProtoHelpers.buildPath(messagePath, DescriptorProto.FIELD_FIELD_NUMBER);
    ProtoPathTree<SourceCodeInfo.Location> fieldsPathTree =
        pathToLocation.getSubtree(fieldsPath, true);
    for (FieldLocation field : fields) {
      Integer fieldIndex = fieldsPathTree.size();
      if (fieldIndex > 0
          && (fieldsPathTree.firstKey() != 0 || fieldsPathTree.lastKey() != (fieldIndex - 1))) {
        throw new RuntimeException(
            String.format(
                "BuilderVisitor internal error - non-contiguous field indexes found [%d..%d]\n",
                fieldsPathTree.firstKey(), fieldsPathTree.lastKey()));
      }
      fieldsPathTree.addDataElement(
          new ProtoPathWrapper(fieldIndex), // relative path of field within this message
          field.location());
      elementToOriginalPath.put(
          field.fieldDescriptor(), ProtoHelpers.buildPath(fieldsPath, fieldIndex));
    }
  }
}
 
源代码3 项目: api-compiler   文件: MessageNodeInfo.java
private void processAddedFields(FileNodeInfo currentFile) {
  if (!toBeAddedFields().isEmpty()) {
    DescriptorProto.Builder message = (DescriptorProto.Builder) node();

    if (currentFile != null) {
      currentFile.processAddedFields(message, toBeAddedFields());
    }

    for (FieldLocation fieldInfo : toBeAddedFields()) {
      message.addField(fieldInfo.fieldDescriptor());
    }
  }
}
 
源代码4 项目: api-compiler   文件: BuilderVisitorNodeInfo.java
public static BuilderVisitorNodeInfo create(
    DescriptorProto.Builder node, FileNodeInfo parentFile) {
  return new MessageNodeInfo(node, parentFile);
}