Class Parser

java.lang.Object
com.vaadin.hilla.parser.core.Parser

public final class Parser extends Object
The entrypoint class. It searches for the endpoint classes in the classpath and produces an OpenAPI definition.
  • Constructor Details

    • Parser

      public Parser()
  • Method Details

    • addPlugin

      public @NonNull Parser addPlugin(@NonNull Plugin plugin)
      Adds a parser Plugin.

      Note that the order of the method calls will be maintained during processing.

      Parameters:
      plugin - An instance of the parser plugin.
      Returns:
      this (for method chaining).
    • adjustOpenAPI

      public @NonNull Parser adjustOpenAPI(@NonNull Consumer<io.swagger.v3.oas.models.OpenAPI> action)
      Allows to programmatically change the default OpenAPI definition.
      Parameters:
      action - a consumer lambda that accepts an OpenAPI instance.
      Returns:
      this (for method chaining).
    • classPath

      public @NonNull Parser classPath(@NonNull String... classPathElements)
      Specifies the classpath where the parser will scan for endpoints. Specifying the classpath is required.

      If the classpath is already set, it will be overridden.

      Parameters:
      classPathElements - a list of paths forming the classpath.
      Returns:
      this (for method chaining).
    • classPath

      public @NonNull Parser classPath(@NonNull String[] classPathElements, boolean override)
      Specifies the classpath where the parser will scan for endpoints. Specifying the classpath is required.
      Parameters:
      classPathElements - a list of paths forming the classpath.
      override - specifies if the parser should override the classpath if it is already specified.
      Returns:
      this (for method chaining).
    • classPath

      public @NonNull Parser classPath(@NonNull Collection<String> classPathElements)
      Specifies the classpath where the parser will scan for endpoints. Specifying the classpath is required.

      If the classpath is already set, it will be overridden.

      Parameters:
      classPathElements - a list of paths forming the classpath.
      Returns:
      this (for method chaining).
    • classPath

      public @NonNull Parser classPath(@NonNull Collection<String> classPathElements, boolean override)
      Specifies the classpath where the parser will scan for endpoints. Specifying the classpath is required.
      Parameters:
      classPathElements - a list of paths forming the classpath.
      override - specifies if the parser should override the classpath if it is already specified.
      Returns:
      this (for method chaining).
    • endpointAnnotations

      public @NonNull Parser endpointAnnotations(@NonNull List<Class<? extends Annotation>> annotations)
      Specifies the name of the endpoint annotation by which the parser will search for the endpoints. Only classes with this annotation will be chosen.

      If the annotation name is already set, it will be overridden.

      Parameters:
      annotations - The fully qualified names of the annotations
      Returns:
      this (for method chaining).
    • endpointAnnotations

      public @NonNull Parser endpointAnnotations(@NonNull List<Class<? extends Annotation>> annotations, boolean override)
      Specifies the name of the endpoint annotation by which the parser will search for the endpoints. Only classes with this annotation will be chosen.
      Parameters:
      annotations - The fully qualified names of the annotations
      override - specifies if the parser should override the annotation name if it is already specified.
      Returns:
      this (for method chaining).
    • endpointExposedAnnotations

      public @NonNull Parser endpointExposedAnnotations(@NonNull List<Class<? extends Annotation>> annotations)
      Specifies the name of the `EndpointExposed` annotation by which the parser will detect if the endpoint superclass should be considered as the part of the endpoint. Any superclass in the endpoint's inheritance chain will be skipped if it doesn't have this annotation.

      If the annotation name is already set, it will be overridden.

      Parameters:
      annotations - The fully qualified names of the annotations
      Returns:
      this (for method chaining).
    • endpointExposedAnnotations

      public @NonNull Parser endpointExposedAnnotations(@NonNull List<Class<? extends Annotation>> annotations, boolean override)
      Specifies the name of the `EndpointExposed` annotation by which the parser will detect if the endpoint superclass should be considered as the part of the endpoint. Any superclass in the endpoint's inheritance chain will be skipped if it doesn't have this annotation.
      Parameters:
      annotations - The fully qualified names of the annotations
      override - specifies if the parser should override the annotation name if it is already specified.
      Returns:
      this (for method chaining).
    • execute

      public @NonNull io.swagger.v3.oas.models.OpenAPI execute(List<Class<?>> browserCallables)
      Scans the classpath, blocking until the scan is complete.
      Returns:
      A result OpenAPI object.
    • getConfig

      public @NonNull Parser.Config getConfig()
      Gets the internal configuration object.
      Returns:
      configuration object.
    • openAPISource

      public @NonNull Parser openAPISource(@NonNull String source, @NonNull OpenAPIFileType type)
      Parses the OpenAPI source string with the provided parser and merges the result into the current OpenAPI object. This method is useful if you want to adjust some basic parts of the OpenAPI object like the application title, version, server description or URL.

      If the method is used once, all the changes will be applied to the default OpenAPI object. Called multiple time, this function applies changes one by one in the order of method calls.

      Parameters:
      source - The OpenAPI definition in the JSON or YAML format. You don't have to specify all the fields required by the schema; the result definition will use default fields.
      type - The parser for the OpenAPI definition
      Returns:
      this (for method chaining).
    • plugins

      public @NonNull Parser plugins(@NonNull Plugin... plugins)
      Adds a collection of parser Plugins. If there are plugins already specified, they will be removed before addition.

      Note that the order of the arguments will be maintained during processing.

      Parameters:
      plugins - a collection of parser plugins.
      Returns:
      this (for method chaining).
    • plugins

      public @NonNull Parser plugins(@NonNull Collection<? extends Plugin> plugins)
      Adds a collection of parser Plugins. If there are already specified plugins, they will be removed before addition.

      Note that the order of collection will be maintained during processing.

      Parameters:
      plugins - a collection of parser plugins.
      Returns:
      this (for method chaining).