Interface DocServicePlugin


@UnstableApi public interface DocServicePlugin
Generates the ServiceSpecifications of the supported Services.
  • Method Details

    • name

      String name()
      Returns the name of this plugin.
    • supportedServiceTypes

      Set<Class<? extends Service<?,?>>> supportedServiceTypes()
      Returns the Set of the Service types supported by this plugin.
    • generateSpecification

      ServiceSpecification generateSpecification(Set<ServiceConfig> serviceConfigs, DocServiceFilter filter, DescriptiveTypeInfoProvider descriptiveTypeInfoProvider)
      Generates a new ServiceSpecification that provides the information about the supported Services.
      Parameters:
      serviceConfigs - the ServiceConfigs of the Services that are instances of the supportedServiceTypes()
      filter - the DocServiceFilter that checks whether a method will be included while building DocService
      descriptiveTypeInfoProvider - the DescriptiveTypeInfoProvider to create a DescriptiveTypeInfo from a type descriptor.
    • loadDocStrings

      default Map<String,DescriptionInfo> loadDocStrings(Set<ServiceConfig> serviceConfigs)
      Loads the DescriptionInfo that describes services and their methods, enums and their values and that describes services and their methods, enums and their values and structs/exceptions and their fields. The Map returned by this method will contain the documentation strings identified by the key strings that conforms to one of the following formats:
      • "{service name}" - a docstring that describes a service
      • "{service name}/{method name}" - a docstring that describes a service method
      • "{service name}/{method name}/{parameter name}" - a docstring that describes a service method parameter
      • "{type name}" - a docstring that describes an enum, a struct or an exception
      • "{type name}/{field name}" - a docstring that describes a field of an enum, a struct or an exception
    • supportedExampleRequestTypes

      default Set<Class<?>> supportedExampleRequestTypes()
      Returns the Set of the example request types supported by this plugin.
    • guessServiceName

      @Nullable default @Nullable String guessServiceName(Object exampleRequest)
      Guesses the name of the service who handles the specified example request.
      Parameters:
      exampleRequest - the example request object which is an instance of one of the Classes returned by supportedExampleRequestTypes()
      Returns:
      the service name, or null if failed to guess.
    • guessServiceMethodName

      @Nullable default @Nullable String guessServiceMethodName(Object exampleRequest)
      Guesses the name of the service method who handles the specified example request.
      Parameters:
      exampleRequest - the example request object which is an instance of one of the Classes returned by supportedExampleRequestTypes()
      Returns:
      the service method name, or null if failed to guess.
    • serializeExampleRequest

      @Nullable default @Nullable String serializeExampleRequest(String serviceName, String methodName, Object exampleRequest)
      Serializes the specified example request into a string.
      Parameters:
      serviceName - the name of the service
      methodName - the name of the method
      exampleRequest - the example request
      Returns:
      the serialized example, or null if not able to serialize.