/** * Create new instance of custom extension provider. */ public CustomExtensionProvider() { super(); registerProperty(ServiceMethod.class, "javaReturnTypeFullName", serviceMethod -> { Message returnType = serviceMethod.getReturnType(); return UserTypeUtil.getCanonicalName(returnType); }); }
private void process(Module module, Service service) { ImmutableServiceDescriptor descriptor = ImmutableServiceDescriptor.builder() .type(NodeType.SERVICE) .name(service.getName()) .canonicalName(service.getCanonicalName()) .description(markdownProcessor.toHtml(service.getComments())) .options(service.getOptions().toMap()) .addAllMethods(service.getMethods().stream() .map(method -> ImmutableServiceMethod.builder() .name(method.getName()) .argTypeId(method.getArgType().getCanonicalName()) .argStream(method.isArgStream()) .returnTypeId(method.getReturnType().getCanonicalName()) .returnStream(method.isReturnStream()) .description(markdownProcessor.toHtml(method.getComments())) .options(method.getOptions().toMap()) .build()) .collect(Collectors.toList())) .build(); String output = "data/type/" + service.getCanonicalName() + ".json"; write(module, output, descriptor); }
private void process(Module module, Service service) { ImmutableServiceDescriptor descriptor = ImmutableServiceDescriptor.builder() .type(NodeType.SERVICE) .name(service.getName()) .canonicalName(service.getCanonicalName()) .description(markdownProcessor.toHtml(service.getComments())) .options(service.getOptions().toMap()) .addAllMethods(service.getMethods().stream() .map(method -> ImmutableServiceMethod.builder() .name(method.getName()) .argTypeId(method.getArgType().getCanonicalName()) .argStream(method.isArgStream()) .returnTypeId(method.getReturnType().getCanonicalName()) .returnStream(method.isReturnStream()) .description(markdownProcessor.toHtml(method.getComments())) .options(method.getOptions().toMap()) .build()) .collect(Collectors.toList())) .build(); String output = "data/type/" + service.getCanonicalName() + ".json"; write(module, output, descriptor); }
/** * Build usage index for given collection of proto files. */ public static UsageIndex build(Collection<Proto> protos) { UsageIndex usageIndex = new UsageIndex(); for (Proto proto : protos) { ProtoWalker.newInstance(proto.getContext()) .onMessage(message -> { for (Field field : message.getFields()) { usageIndex.register(field.getType(), message); } }) .onService(service -> { for (ServiceMethod serviceMethod : service.getMethods()) { usageIndex.register(serviceMethod.getArgType(), service); usageIndex.register(serviceMethod.getReturnType(), service); } }) .walk(); } return usageIndex; }
/** * Build usage index for given collection of proto files. */ public static UsageIndex build(Collection<Proto> protos) { UsageIndex usageIndex = new UsageIndex(); for (Proto proto : protos) { ProtoWalker.newInstance(proto.getContext()) .onMessage(message -> { for (Field field : message.getFields()) { usageIndex.register(field.getType(), message); } }) .onService(service -> { for (ServiceMethod serviceMethod : service.getMethods()) { usageIndex.register(serviceMethod.getArgType(), service); usageIndex.register(serviceMethod.getReturnType(), service); } }) .walk(); } return usageIndex; }