Class Bootstrap.BuilderBase<BUILDER extends Bootstrap.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends Bootstrap>

java.lang.Object
io.helidon.inject.api.Bootstrap.BuilderBase<BUILDER,PROTOTYPE>
Type Parameters:
BUILDER - type of the builder extending this abstract builder
PROTOTYPE - type of the prototype interface that would be built by Prototype.Builder.buildPrototype()
All Implemented Interfaces:
Prototype.Builder<BUILDER,PROTOTYPE>, Prototype.ConfiguredBuilder<BUILDER,PROTOTYPE>
Direct Known Subclasses:
Bootstrap.Builder
Enclosing interface:
Bootstrap

public abstract static class Bootstrap.BuilderBase<BUILDER extends Bootstrap.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends Bootstrap> extends Object implements Prototype.ConfiguredBuilder<BUILDER,PROTOTYPE>
Fluent API builder base for Bootstrap.
  • Constructor Details

    • BuilderBase

      protected BuilderBase()
      Protected to support extensibility.
  • Method Details

    • from

      public BUILDER from(Bootstrap prototype)
      Update this builder from an existing prototype instance.
      Parameters:
      prototype - existing prototype to update this builder from
      Returns:
      updated builder instance
    • from

      public BUILDER from(Bootstrap.BuilderBase<?,?> builder)
      Update this builder from an existing prototype builder instance.
      Parameters:
      builder - existing builder prototype to update this builder from
      Returns:
      updated builder instance
    • config

      public BUILDER config(Config config)
      Config to use.
      Specified by:
      config in interface Prototype.ConfiguredBuilder<BUILDER extends Bootstrap.BuilderBase<BUILDER,PROTOTYPE>,PROTOTYPE extends Bootstrap>
      Parameters:
      config - configuration instance used to obtain values to update this builder
      Returns:
      updated builder instance
    • clearLimitRuntimePhase

      public BUILDER clearLimitRuntimePhase()
      Clear existing value of this property.
      Returns:
      updated builder instance
      See Also:
    • limitRuntimePhase

      public BUILDER limitRuntimePhase(Phase limitRuntimePhase)
      In certain conditions Injection services should be initialized but not started (i.e., avoiding calls to PostConstruct etc.). This can be used in special cases where the normal Injection startup should limit lifecycle up to a given phase. Normally one should not use this feature - it is mainly used in Injection tooling (e.g., the injection maven-plugin).
      Parameters:
      limitRuntimePhase - the phase to stop at during lifecycle
      Returns:
      updated builder instance
      See Also:
    • config

      public Optional<Config> config()
      Provides the base primordial bootstrap configuration to the InjectionServicesProvider. The provider will then bootstrap InjectionServices using this bootstrap instance. then default values will be used accordingly.
      Returns:
      the config
    • limitRuntimePhase

      public Optional<Phase> limitRuntimePhase()
      In certain conditions Injection services should be initialized but not started (i.e., avoiding calls to PostConstruct etc.). This can be used in special cases where the normal Injection startup should limit lifecycle up to a given phase. Normally one should not use this feature - it is mainly used in Injection tooling (e.g., the injection maven-plugin).
      Returns:
      the limit runtime phase
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • preBuildPrototype

      protected void preBuildPrototype()
      Handles providers and decorators.
    • validatePrototype

      protected void validatePrototype()
      Validates required properties.