类com.google.protobuf.compiler.PluginProtos源码实例Demo

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

源代码1 项目: grpc-java-contrib   文件: ProtocPlugin.java
private static PluginProtos.CodeGeneratorResponse generate(
        @Nonnull List<Generator> generators,
        @Nonnull PluginProtos.CodeGeneratorRequest request) {
    checkNotNull(generators, "generators");
    checkArgument(!generators.isEmpty(), "generators.isEmpty()");
    checkNotNull(request, "request");

    // Run each file generator, collecting the output
    Stream<PluginProtos.CodeGeneratorResponse.File> oldWay = generators
            .stream()
            .flatMap(gen -> gen.generate(request));

    Stream<PluginProtos.CodeGeneratorResponse.File> newWay = generators
            .stream()
            .flatMap(gen -> gen.generateFiles(request).stream());

    // Send the files back to protoc
    return PluginProtos.CodeGeneratorResponse
            .newBuilder()
            .addAllFile(Stream.concat(oldWay, newWay).collect(Collectors.toList()))
            .build();
}
 
源代码2 项目: quarkus   文件: MutinyGrpcGenerator.java
@Override
public List<PluginProtos.CodeGeneratorResponse.File> generateFiles(PluginProtos.CodeGeneratorRequest request)
        throws GeneratorException {
    ProtoTypeMap typeMap = ProtoTypeMap.of(request.getProtoFileList());

    List<DescriptorProtos.FileDescriptorProto> protosToGenerate = request.getProtoFileList().stream()
            .filter(protoFile -> request.getFileToGenerateList().contains(protoFile.getName()))
            .collect(Collectors.toList());

    List<ServiceContext> services = findServices(protosToGenerate, typeMap);
    return generateFiles(services);
}
 
源代码3 项目: quarkus   文件: MutinyGrpcGenerator.java
private PluginProtos.CodeGeneratorResponse.File buildFile(ServiceContext context) {
    String content = applyTemplate("MutinyStub.mustache", context);
    return PluginProtos.CodeGeneratorResponse.File
            .newBuilder()
            .setName(absoluteFileName(context))
            .setContent(content)
            .build();
}
 
源代码4 项目: sofa-rpc   文件: AbstractGenerator.java
@Override
public List<PluginProtos.CodeGeneratorResponse.File> generateFiles(PluginProtos.CodeGeneratorRequest request)
        throws GeneratorException {
    final ProtoTypeMap typeMap = ProtoTypeMap.of(request.getProtoFileList());

    List<FileDescriptorProto> protosToGenerate = new ArrayList<>();
    for (FileDescriptorProto protoFile : request.getProtoFileList()) {
        if (request.getFileToGenerateList().contains(protoFile.getName())) {
            protosToGenerate.add(protoFile);
        }
    }

    List<ServiceContext> services = findServices(protosToGenerate, typeMap);
    return generateFiles(services);
}
 
源代码5 项目: sofa-rpc   文件: AbstractGenerator.java
/**
 * generate file
 *
 * @param services
 * @return
 */
private List<PluginProtos.CodeGeneratorResponse.File> generateFiles(List<ServiceContext> services) {
    List<PluginProtos.CodeGeneratorResponse.File> list = new ArrayList<>();
    for (ServiceContext service : services) {
        PluginProtos.CodeGeneratorResponse.File file = buildFile(service);
        list.add(file);
    }
    return list;
}
 
源代码6 项目: sofa-rpc   文件: AbstractGenerator.java
/**
 * 构造文件了
 *
 * @param context
 * @return
 */
private PluginProtos.CodeGeneratorResponse.File buildFile(ServiceContext context) {
    final String mustAcheFile = getClassPrefix() + getClassSuffix() + "Stub.mustache";
    String content = applyTemplate(mustAcheFile, context);
    return PluginProtos.CodeGeneratorResponse.File.newBuilder()
        .setName(constructAbsoluteFileName(context)).setContent(content).build();
}
 
源代码7 项目: reactive-grpc   文件: ReactiveGrpcGenerator.java
@Override
public List<PluginProtos.CodeGeneratorResponse.File> generateFiles(PluginProtos.CodeGeneratorRequest request) throws GeneratorException {
    final ProtoTypeMap typeMap = ProtoTypeMap.of(request.getProtoFileList());

    List<FileDescriptorProto> protosToGenerate = request.getProtoFileList().stream()
            .filter(protoFile -> request.getFileToGenerateList().contains(protoFile.getName()))
            .collect(Collectors.toList());

    List<ServiceContext> services = findServices(protosToGenerate, typeMap);
    return generateFiles(services);
}
 
源代码8 项目: reactive-grpc   文件: ReactiveGrpcGenerator.java
private PluginProtos.CodeGeneratorResponse.File buildFile(ServiceContext context) {
    String content = applyTemplate(getClassPrefix() + "Stub.mustache", context);
    return PluginProtos.CodeGeneratorResponse.File
            .newBuilder()
            .setName(absoluteFileName(context))
            .setContent(content)
            .build();
}
 
源代码9 项目: grpc-java-contrib   文件: DumpGenerator.java
@Override
public List<PluginProtos.CodeGeneratorResponse.File> generateFiles(PluginProtos.CodeGeneratorRequest request) throws GeneratorException {
    try {
        return Arrays.asList(
                makeFile("descriptor_dump", request.toByteArray()),
                makeFile("descriptor_dump.json", JsonFormat.printer().print(request))
        );
    } catch (InvalidProtocolBufferException e) {
        throw new GeneratorException(e.getMessage());
    }
}
 
源代码10 项目: grpc-java-contrib   文件: Jdk8Generator.java
@Override
public List<PluginProtos.CodeGeneratorResponse.File> generateFiles(PluginProtos.CodeGeneratorRequest request) throws GeneratorException {
    final ProtoTypeMap protoTypeMap = ProtoTypeMap.of(request.getProtoFileList());
    List<PluginProtos.CodeGeneratorResponse.File> files = new ArrayList<>();

    for (DescriptorProtos.FileDescriptorProto protoFile : request.getProtoFileList()) {
        if (request.getFileToGenerateList().contains(protoFile.getName())) {
            for (ServiceContext ctx : extractContext(protoTypeMap, protoFile)) {
                files.add(buildFile(ctx));
            }
        }
    }

    return files;
}
 
源代码11 项目: grpc-java-contrib   文件: Generator.java
/**
 * Creates a protobuf file message from a given name and content.
 * @param fileName The name of the file to generate.
 * @param fileContent The content of the generated file.
 * @return The protobuf file.
 */
protected PluginProtos.CodeGeneratorResponse.File makeFile(String fileName, String fileContent) {
    return PluginProtos.CodeGeneratorResponse.File
            .newBuilder()
            .setName(fileName)
            .setContent(fileContent)
            .build();
}
 
源代码12 项目: grpc-java-contrib   文件: Generator.java
/**
 * Creates a protobuf file message from a given name and content.
 * @param fileName The name of the file to generate.
 * @param fileContent The content of the generated file.
 * @return The protobuf file.
 */
protected PluginProtos.CodeGeneratorResponse.File makeFile(String fileName, byte[] fileContent) {
    return PluginProtos.CodeGeneratorResponse.File
            .newBuilder()
            .setName(fileName)
            .setContentBytes(ByteString.copyFrom(fileContent))
            .build();
}
 
源代码13 项目: grpc-java-contrib   文件: ProtoTypeMapTest.java
@BeforeClass
public static void buildProtoTypeMap() throws IOException {
    // Dump file generated during the maven generate-test-sources phase
    final String dumpPath = "target/generated-test-sources/protobuf/dump/descriptor_dump";

    byte[] generatorRequestBytes = ByteStreams.toByteArray(new FileInputStream(new File(dumpPath)));
    PluginProtos.CodeGeneratorRequest request = PluginProtos.CodeGeneratorRequest.parseFrom(
            generatorRequestBytes, ExtensionRegistry.newInstance());
    List<DescriptorProtos.FileDescriptorProto> fileProtos = request.getProtoFileList();
    protoTypeMap =  ProtoTypeMap.of(fileProtos);
}
 
源代码14 项目: quarkus   文件: MutinyGrpcGenerator.java
private List<PluginProtos.CodeGeneratorResponse.File> generateFiles(List<ServiceContext> services) {
    return services.stream()
            .map(this::buildFile)
            .collect(Collectors.toList());
}
 
源代码15 项目: reactive-grpc   文件: ReactiveGrpcGenerator.java
private List<PluginProtos.CodeGeneratorResponse.File> generateFiles(List<ServiceContext> services) {
    return services.stream()
            .map(this::buildFile)
            .collect(Collectors.toList());
}
 
源代码16 项目: grpc-java-contrib   文件: Jdk8Generator.java
private PluginProtos.CodeGeneratorResponse.File buildFile(ServiceContext context) {
    return makeFile(absoluteFileName(context), applyTemplate("Jdk8Stub.mustache", context));
}
 
源代码17 项目: grpc-java-contrib   文件: Generator.java
/**
 * Processes a generator request into a set of files to output.
 *
 * @deprecated use {@link #generateFiles(PluginProtos.CodeGeneratorRequest)} and return a List instead of a Stream.
 * @param request The raw generator request from protoc.
 * @return The completed files to write out.
 */
@Deprecated()
public Stream<PluginProtos.CodeGeneratorResponse.File> generate(PluginProtos.CodeGeneratorRequest request) throws GeneratorException {
    return Stream.empty();
}
 
源代码18 项目: grpc-java-contrib   文件: Generator.java
/**
 * Processes a generator request into a set of files to output.
 *
 * @param request The raw generator request from protoc.
 * @return The completed files to write out.
 */
public List<PluginProtos.CodeGeneratorResponse.File> generateFiles(PluginProtos.CodeGeneratorRequest request) throws GeneratorException {
    return Collections.emptyList();
}
 
 类所在包
 类方法
 同包方法