Class Profile.Parameter<P extends Profile.Parameter<P,T>,T>

java.lang.Object
org.forgerock.opendj.setup.model.Profile.Parameter<P,T>
Type Parameters:
P - The parameter implementation
T - The parameter value concrete class
Direct Known Subclasses:
Profile.DnParameter, Profile.DomainParameter, Profile.EnumParameter, Profile.HostPortParameter, Profile.NumberParameter, Profile.PasswordParameter, Profile.PathParameter, Profile.StringParameter
Enclosing class:
Profile

public abstract class Profile.Parameter<P extends Profile.Parameter<P,T>,T> extends Object
Represents parameters that are defined in parameters.groovy and can be used in the profile.groovy script.

A parameter is defined by:

  • a mandatory variable name (e.g fooBar)
  • an optional property name (e.g FOO_BAR), this property will be used for substituting commons configuration expression in resource files (see Profile.ResourcesManager.applyTemplate(String, String))
  • a default value which will be used if no values are provided for the parameter at runtime
  • a value
  • Method Details

    • defaultValueFromSetupTool

      public final P defaultValueFromSetupTool(String setupConfMethod) throws SetupException
      Indicates that this profile parameter value must be computed using the Profile.SetupConfiguration if no value is available at runtime.

      This is possible when the associated profile is run by the setup tool. It is not possible when the associated profile is run by the setup-profile tool.

      If no value is available at runtime and it is not possible to retrieve the value from the Profile.SetupConfiguration, the parameter default value will be used.

      Parameters:
      setupConfMethod - String representing the method name to be called on the Profile.SetupConfiguration to get this parameter value
      Returns:
      This profile parameter
      Throws:
      SetupException - If no Profile.SetupConfiguration method is available with the provided name
    • defaultValue

      public final P defaultValue(T defaultValue)
      Sets this profile parameter default value.

      If no value is available for the parameter at runtime, default value will be used.

      Parameters:
      defaultValue - The default value to be associated to this parameter
      Returns:
      This profile parameter
    • defaultValue

      public final P defaultValue(String defaultValue) throws SetupException
      Sets this profile parameter default value with the provided string.

      If no value is available for the parameter at runtime, default value will be used.

      Parameters:
      defaultValue - A string representing the default value to be associated to this parameter
      Returns:
      This profile parameter
      Throws:
      SetupException - If the provided string cannot be converted in the parameter object type
    • description

      public final P description(String descriptionMsg)
      Sets this profile parameter description.

      Description will be used by setup tool interactive mode in summaries, hence description content should be concise (e.g Name of the backend used to ...

      Parameters:
      descriptionMsg - A string representing the parameter description message
      Returns:
      This profile parameter
    • help

      public final P help(String helpMsg)
      Sets this profile parameter help.

      Help is printed when user wants to know all parameters associated to a profile (setup --help-profile "profileId"), if not set description will be used.

      Parameters:
      helpMsg - A string representing the parameter help message
      Returns:
      This profile parameter
    • advanced

      public final P advanced()
      Specifies that this profile parameter is advanced.

      Setup interactive mode does not prompt for advanced profile parameter value. As a consequence, advanced parameter must have a default value defined.

      Returns:
      This profile parameter
    • multivalued

      public final P multivalued(String... addAnotherValueMsg)
      Specifies that this profile parameter can accept multiple values.
      Parameters:
      addAnotherValueMsg - Strings representing the paragraphs of the message to be printed to ask if another value must be added for this parameter
      Returns:
      This profile parameter
    • multivalued

      public final P multivalued()
      Specifies that this profile parameter can accept multiple values.
      Returns:
      This profile parameter
    • expressionAllowed

      public P expressionAllowed()
      Specifies that common configuration expressions can be specified for this profile parameter.
      Returns:
      This profile parameter
    • optional

      public final P optional(String... optionalPromptMsg)
      Specifies that this profile parameter is optional.

      Profile framework will not fail if no value has been provided for an optional parameter.

      Parameters:
      optionalPromptMsg - Strings representing the paragraphs of message to ask the user to know whether a value should be provided for this parameter
      Returns:
      This profile parameter
    • optional

      public final P optional()
      Specifies that this profile parameter is optional.

      Profile framework will not fail if no value has been provided for an optional parameter.

      Returns:
      This profile parameter
    • descriptionIfNoValueSet

      public P descriptionIfNoValueSet(String descriptionIfNoValueSetMsg)
      Sets the message to be displayed instead of the parameter description if no value is provided for this parameter.

      Message will be used by setup tool interactive mode in summaries, hence it should be concise.

      Parameters:
      descriptionIfNoValueSetMsg - Strings representing the parameter description message paragraphs
      Returns:
      This profile parameter
    • prompt

      public final P prompt(String... promptForValueMsg)
      Sets this profile parameter prompt message.
      Parameters:
      promptForValueMsg - Strings representing the paragraphs of the message to be printed when resolving this profile parameter value
      Returns:
      This profile parameter
    • property

      public final P property(String property)
      Sets this profile parameter property.
      Parameters:
      property - The property to be associated to this parameter
      Returns:
      This profile parameter
    • parseStringValue

      public abstract T parseStringValue(String strValue) throws com.forgerock.opendj.cli.ArgumentException
      Parses provided string value into this parameter type and returns the typed value.
      Parameters:
      strValue - A string representing the parameter value to be parsed
      Returns:
      The typed value associated to provided string
      Throws:
      com.forgerock.opendj.cli.ArgumentException - If an error occurred while parsing provided string value
    • isAdvanced

      public final boolean isAdvanced()
      Returns whether this profile parameter is advanced.

      the setup interactive mode does not prompt for an advanced profile parameter value.

      Returns:
      true if this profile parameter is advanced, false otherwise
      See Also:
    • isMultivalued

      public final boolean isMultivalued()
      Returns whether this profile parameter is multivalued.
      Returns:
      true if this profile parameter is multivalued, false otherwise
      See Also:
    • isOptional

      public final boolean isOptional()
      Returns whether this profile parameter is optional.
      Returns:
      true if this profile parameter is optional, false otherwise
      See Also:
    • defaultValueCanBeDerivedAtSetup

      public boolean defaultValueCanBeDerivedAtSetup()
      Returns true if the default value of this parameter can be derived from the setup global options.
      Returns:
      true if the default value of this parameter can be derived from the setup global options, false otherwise
      See Also:
    • getDefaultValue

      public final ValueOrExpression<T> getDefaultValue()
      Returns this profile parameter default value.
      Returns:
      This profile parameter default value
    • getDescriptionMsg

      public final LocalizableMessage getDescriptionMsg()
      Returns this profile parameter description.

      If no message has been set for the description to be returned, a generic message is used.

      Returns:
      A LocalizableMessage representing this profile parameter description
    • getDescriptionIfNoValueSetMsg

      public final LocalizableMessage getDescriptionIfNoValueSetMsg()
      Returns this profile parameter description to be used when no value is provided.

      If no message has been set for this particular use case, the profile parameter description is returned.

      Returns:
      A LocalizableMessage representing this profile parameter description when no value is provided
    • getHelpMsg

      public final LocalizableMessage getHelpMsg()
      Returns this profile parameter help message.
      Returns:
      A LocalizableMessage representing this profile parameter help message
    • getPromptForValueMsg

      public final LocalizableMessage getPromptForValueMsg()
      Returns this profile parameter prompt message.
      Returns:
      A LocalizableMessage representing this profile parameter prompt message
    • getOptionalPromptMsg

      public final LocalizableMessage getOptionalPromptMsg()
      Returns prompt message to know whether a value should be provided for this parameter.
      Returns:
      A LocalizableMessage printed when asking if a value should be provided for this parameter
    • getAddAnotherValueMsg

      public LocalizableMessage getAddAnotherValueMsg()
      Returns prompt message to know whether another value should be added for this parameter.
      Returns:
      A LocalizableMessage printed when asking if a value should be added for this parameter
    • getVariableName

      public final String getVariableName()
      Returns this profile parameter variable name.
      Returns:
      A string representing this profile parameter variable name
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • getSyntax

      public final String getSyntax()
      Returns this parameter type.
      Returns:
      A string representing this parameter type
    • getSyntaxWithoutExpression

      public final String getSyntaxWithoutExpression()
      Returns this parameter type.

      The returned string does not mention that this parameter can contain configuration expression.

      Returns:
      A string representing this parameter type
    • getValue

      public final T getValue() throws ExpressionException
      Returns this profile parameter value.

      To be set, resolveValues(ExecutionContext) method must have been called.

      Returns:
      This profile parameter value
      Throws:
      ExpressionException - If the parameter contains an expression
    • getValueOrExpression

      public final Object getValueOrExpression()
      Returns this profile parameter value or expression.

      To be set, resolveValues(ExecutionContext) method must have been called.

      Returns:
      This profile parameter value
    • accept

      public abstract <R, P2, E extends Exception> R accept(Profile.ParameterVisitor<R,P2,E> visitor, P2 p) throws E
      Type Parameters:
      R - The return type of the visitor's methods
      P2 - The type of the additional parameter to this visitor's methods. Use Void for visitors that do not need an additional parameter
      E - The type of the exception thrown by the visitor method if it fails, or NeverThrowsException if the visitor cannot fail
      Parameters:
      visitor - The parameter visitor
      p - Optional additional visitor parameter
      Returns:
      A result as specified by the visitor
      Throws:
      E - If the visitor failed