Class VarResolver.Builder

java.lang.Object
org.apache.juneau.commons.svl.VarResolver.Builder
Enclosing class:
VarResolver

public static class VarResolver.Builder extends Object
Builder class.
  • Constructor Details

    • Builder

      protected Builder()
      Constructor.
    • Builder

      protected Builder(VarResolver copyFrom)
      Copy constructor.
      Parameters:
      copyFrom - The bean to copy from. Must not be null.
  • Method Details

    • beanStore

      Returns the bean store used by this builder.
      Returns:
      The bean store used by this builder.
    • bean

      public <T> VarResolver.Builder bean(Class<T> c, T value)
      Adds a bean to the resolved VarResolver's local bean store.

      The bean is stored on this builder and merged into the resolver's local bean store at build() time. The parent bean store passed at construction is not mutated, so beans added here are isolated to VarResolvers built from this builder.

      Type Parameters:
      T - The bean type.
      Parameters:
      c - The bean type.
      value - The bean.
      Returns:
      This object .
    • defaultVars

      Adds the default variables to this builder.

      The default variables are:

      The 11 transformation Vars previously listed here (SwitchVar, IfVar, CoalesceVar, PatternMatchVar, PatternReplaceVar, PatternExtractVar, UpperCaseVar, LowerCaseVar, NotEmptyVar, LenVar, SubstringVar) were deleted in 10.0.0 and replaced by the #{...} script syntax. Use defaultFunctions() to register the built-in catalog.

      Returns:
      This object .
    • vars

      @SafeVarargs public final VarResolver.Builder vars(Class<? extends Var>... values)
      Register new variables with this resolver.
      Parameters:
      values - The variable resolver classes. These classes must subclass from Var and have no-arg constructors.
      Returns:
      This object .
    • vars

      public VarResolver.Builder vars(Var... values)
      Register new variables with this resolver.
      Parameters:
      values - The variable resolver classes. These classes must subclass from Var and have no-arg constructors.
      Returns:
      This object .
    • vars

      public VarResolver.Builder vars(VarList values)
      Register new variables with this resolver.
      Parameters:
      values - The variable resolver classes. These classes must subclass from Var and have no-arg constructors.
      Returns:
      This object .
    • functions

      Register one or more VarFunction instances on this builder.

      Functions registered here win over BeanStore / ServiceLoader / built-in catalog entries with the same name (later-wins-on-collision). Discovery channels merge these registrations with the auto-discovered set at build() time.

      Parameters:
      values - The functions to register.
      Returns:
      This builder.
    • functions

      @SafeVarargs public final VarResolver.Builder functions(Class<? extends VarFunction>... values)
      Register one or more VarFunction classes on this builder. Each class must have a public no-arg constructor; instances are created via the bean store at build() time so dependency injection works the same way it does for Vars.
      Parameters:
      values - The function classes to register.
      Returns:
      This builder.
    • defaultFunctions

      Registers the built-in VarFunction catalog plus any third-party functions discovered via ServiceLoader.load(Class) on VarFunction.

      Registration order is:

      1. Built-in catalog — string, type-conversion, arithmetic, boolean, conditional, regex, encoding, date, random/UUID, and JSON-navigation functions.
      2. Third-party functions from META-INF/services/org.apache.juneau.commons.svl.VarFunction.

      Later registrations win on name collision — third-party ServiceLoader entries override built-ins, and explicit functions(VarFunction...) / functions(Class...) calls override both.

      Returns:
      This builder.
    • build

      public VarResolver build()
      Builds the var resolver.
      Returns:
      A new VarResolver.