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

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

源代码1 项目: api-compiler   文件: DescriptorGenerator.java
private FileDescriptorProto generateFile(String name, FileContents contents) {
  FileDescriptorProto.Builder fileBuilder = FileDescriptorProto.newBuilder();
  fileBuilder.setName(name);
  if (!Strings.isNullOrEmpty(contents.packageName)) {
    fileBuilder.setPackage(contents.packageName);
  }
  for (Api api : contents.apis) {
    fileBuilder.addService(generateApi(api));
  }
  for (Type type : contents.types.values()) {
    fileBuilder.addMessageType(generateType(type, contents));
  }
  for (Enum e : contents.enums) {
    fileBuilder.addEnumType(generateEnum(e));
  }
  if (imports.containsKey(name)) {
    for (String imported : imports.get(name)) {
      fileBuilder.addDependency(imported);
    }
  }
  return fileBuilder.build();
}
 
源代码2 项目: metastore   文件: AvroToProtoSchema.java
public ProtoDomain get() {
  rootNamespace = root.path("namespace").asText();

  protoMessageOf(root);

  Map<String, FileDescriptorProto.Builder> fileMap = new HashMap<>();

  messageMap.forEach(
      (fullName, message) -> {
        String packageName =
            fullName.substring(0, fullName.length() - message.getName().length() - 1);
        FileDescriptorProto.Builder fdp = fileMap.get(packageName);
        if (fdp == null) {
          fdp =
              DescriptorProtos.FileDescriptorProto.newBuilder()
                  .setName(packageNameToFileName(packageName))
                  .setPackage(packageName)
                  .setSyntax("proto3");
          fileMap.put(packageName, fdp);
        }
        fdp.addMessageType(message);
      });

  DescriptorProtos.FileDescriptorSet.Builder fds =
      DescriptorProtos.FileDescriptorSet.newBuilder();
  fileMap.forEach(
      (name, fdp) -> {
        Set<String> imports = importMap.get(fdp.getPackage());
        if (imports != null) {
          imports.forEach(im -> fdp.addDependency(im));
        }

        fds.addFile(fdp);
      });
  fds.addFile(Int64Value.getDescriptor().getFile().toProto());

  return ProtoDomain.buildFrom(fds.build());
}
 
源代码3 项目: api-compiler   文件: BuilderVisitor.java
@Accepts
protected void accept(final FileDescriptorProto.Builder file) {
  pushParent(BuilderVisitorNodeInfo.create(file));
  currentFile.setManageSourceCodeInfo(manageSourceCodeInfo);

  visitRepeated(FileDescriptorProto.MESSAGE_TYPE_FIELD_NUMBER);
  visitRepeated(FileDescriptorProto.ENUM_TYPE_FIELD_NUMBER);
  visitRepeated(FileDescriptorProto.EXTENSION_FIELD_NUMBER);
  visitRepeated(FileDescriptorProto.SERVICE_FIELD_NUMBER);

  visit(file.getOptionsBuilder());

  popExpectedParent(file);
}
 
源代码4 项目: api-compiler   文件: FileNodeInfo.java
private void setupPathsForFile(FileDescriptorProto.Builder file) {
  // Populate location map
  if (file.hasSourceCodeInfo() && manageSourceCodeInfo) {
    for (SourceCodeInfo.Location location : file.getSourceCodeInfo().getLocationList()) {
      pathToLocation.addDataElement(new ProtoPathWrapper(location.getPathList()), location);
    }
  } else {
    // Turn off SourceCodeInfo management if there is none.
    manageSourceCodeInfo = false;
  }
}
 
源代码5 项目: api-compiler   文件: FileNodeInfo.java
private void resetPathsForFile(FileDescriptorProto.Builder file) {
  if (modifiedSourceCodeInfo) {
    SourceCodeInfo.Builder sourceCodeInfo = file.getSourceCodeInfoBuilder();
    sourceCodeInfo.clearLocation();

    new LocationInfoUpdater(sourceCodeInfo).visit(pathToLocation);

    modifiedSourceCodeInfo = false;
  }

  elementToOriginalPath.clear();
  pathToLocation.clear();
}
 
源代码6 项目: api-compiler   文件: BuilderVisitor.java
public FileDescriptorProto.Builder getCurrentFile() {
  if (currentFile != null) {
    return (FileDescriptorProto.Builder) currentFile.node();
  }
  return null;
}
 
源代码7 项目: api-compiler   文件: BuilderVisitorNodeInfo.java
public static BuilderVisitorNodeInfo create(FileDescriptorProto.Builder node) {
  return new FileNodeInfo(node);
}