Class ControlArgument

java.lang.Object
com.unboundid.util.args.Argument
com.unboundid.util.args.ControlArgument
All Implemented Interfaces:
Serializable

This class defines an argument that is intended to hold information about one or more LDAP controls. Values for this argument must be in one of the following formats:
  • oid -- The numeric OID for the control. The control will not be critical and will not have a value.
  • oid:criticality -- The numeric OID followed by a colon and the criticality. The control will be critical if the criticality value is any of the following: true, t, yes, y, on, or 1. The control will be non-critical if the criticality value is any of the following: false, f, no, n, off, or 0. No other criticality values will be accepted.
  • oid:criticality:value -- The numeric OID followed by a colon and the criticality, then a colon and then a string that represents the value for the control.
  • oid:criticality::base64value -- The numeric OID followed by a colon and the criticality, then two colons and then a string that represents the base64-encoded value for the control.
See Also:
  • Constructor Details

    • ControlArgument

      public ControlArgument(@Nullable Character shortIdentifier, @Nullable String longIdentifier, @NotNull String description) throws ArgumentException
      Creates a new control argument with the provided information. It will not be required, will be allowed any number of times, will use a default placeholder, and will not have a default value.
      Parameters:
      shortIdentifier - The short identifier for this argument. It may not be null if the long identifier is null.
      longIdentifier - The long identifier for this argument. It may not be null if the short identifier is null.
      description - A human-readable description for this argument. It must not be null.
      Throws:
      ArgumentException - If there is a problem with the definition of this argument.
    • ControlArgument

      public ControlArgument(@Nullable Character shortIdentifier, @Nullable String longIdentifier, boolean isRequired, int maxOccurrences, @Nullable String valuePlaceholder, @NotNull String description) throws ArgumentException
      Creates a new control argument with the provided information. It will not have a default value.
      Parameters:
      shortIdentifier - The short identifier for this argument. It may not be null if the long identifier is null.
      longIdentifier - The long identifier for this argument. It may not be null if the short identifier is null.
      isRequired - Indicates whether this argument is required to be provided.
      maxOccurrences - The maximum number of times this argument may be provided on the command line. A value less than or equal to zero indicates that it may be present any number of times.
      valuePlaceholder - A placeholder to display in usage information to indicate that a value must be provided. It may be null to use a default placeholder that describes the expected syntax for values.
      description - A human-readable description for this argument. It must not be null.
      Throws:
      ArgumentException - If there is a problem with the definition of this argument.
    • ControlArgument

      public ControlArgument(@Nullable Character shortIdentifier, @Nullable String longIdentifier, boolean isRequired, int maxOccurrences, @Nullable String valuePlaceholder, @NotNull String description, @Nullable Control defaultValue) throws ArgumentException
      Creates a new control argument with the provided information.
      Parameters:
      shortIdentifier - The short identifier for this argument. It may not be null if the long identifier is null.
      longIdentifier - The long identifier for this argument. It may not be null if the short identifier is null.
      isRequired - Indicates whether this argument is required to be provided.
      maxOccurrences - The maximum number of times this argument may be provided on the command line. A value less than or equal to zero indicates that it may be present any number of times.
      valuePlaceholder - A placeholder to display in usage information to indicate that a value must be provided. It may be null to use a default placeholder that describes the expected syntax for values.
      description - A human-readable description for this argument. It must not be null.
      defaultValue - The default value to use for this argument if no values were provided. It may be null if there should be no default values.
      Throws:
      ArgumentException - If there is a problem with the definition of this argument.
    • ControlArgument

      public ControlArgument(@Nullable Character shortIdentifier, @Nullable String longIdentifier, boolean isRequired, int maxOccurrences, @Nullable String valuePlaceholder, @NotNull String description, @Nullable List<Control> defaultValues) throws ArgumentException
      Creates a new control argument with the provided information.
      Parameters:
      shortIdentifier - The short identifier for this argument. It may not be null if the long identifier is null.
      longIdentifier - The long identifier for this argument. It may not be null if the short identifier is null.
      isRequired - Indicates whether this argument is required to be provided.
      maxOccurrences - The maximum number of times this argument may be provided on the command line. A value less than or equal to zero indicates that it may be present any number of times.
      valuePlaceholder - A placeholder to display in usage information to indicate that a value must be provided. It may be null to use a default placeholder that describes the expected syntax for values.
      description - A human-readable description for this argument. It must not be null.
      defaultValues - The set of default values to use for this argument if no values were provided.
      Throws:
      ArgumentException - If there is a problem with the definition of this argument.
  • Method Details

    • getDefaultValues

      Retrieves the list of default values for this argument, which will be used if no values were provided.
      Returns:
      The list of default values for this argument, or null if there are no default values.
    • addValueValidator

      Updates this argument to ensure that the provided validator will be invoked for any values provided to this argument. This validator will be invoked after all other validation has been performed for this argument.
      Parameters:
      validator - The argument value validator to be invoked. It must not be null.
    • addValue

      protected void addValue(@NotNull String valueString) throws ArgumentException
      Adds the provided value to the set of values for this argument. This method should only be called by the argument parser.
      Specified by:
      addValue in class Argument
      Parameters:
      valueString - The string representation of the value.
      Throws:
      ArgumentException - If the provided value is not acceptable, if this argument does not accept values, or if this argument already has the maximum allowed number of values.
    • getValue

      Retrieves the value for this argument, or the default value if none was provided. If there are multiple values, then the first will be returned.
      Returns:
      The value for this argument, or the default value if none was provided, or null if there is no value and no default value.
    • getValues

      Retrieves the set of values for this argument, or the default values if none were provided.
      Returns:
      The set of values for this argument, or the default values if none were provided.
    • getValueStringRepresentations

      @NotNull public List<String> getValueStringRepresentations(boolean useDefault)
      Retrieves a list containing the string representations of the values for this argument, if any. The list returned does not necessarily need to include values that will be acceptable to the argument, but it should imply what the values are (e.g., in the case of a boolean argument that doesn't take a value, it may be the string "true" or "false" even if those values are not acceptable to the argument itself).
      Specified by:
      getValueStringRepresentations in class Argument
      Parameters:
      useDefault - Indicates whether to use any configured default value if the argument doesn't have a user-specified value.
      Returns:
      A string representation of the value for this argument, or an empty list if the argument does not have a value.
    • hasDefaultValue

      protected boolean hasDefaultValue()
      Indicates whether this argument has one or more default values that will be used if it is not provided on the command line.
      Specified by:
      hasDefaultValue in class Argument
      Returns:
      true if this argument has one or more default values, or false if not.
    • getDataTypeName

      Retrieves a concise name of the data type with which this argument is associated.
      Specified by:
      getDataTypeName in class Argument
      Returns:
      A concise name of the data type with which this argument is associated.
    • getValueConstraints

      Retrieves a human-readable string with information about any constraints that may be imposed for values of this argument.
      Overrides:
      getValueConstraints in class Argument
      Returns:
      A human-readable string with information about any constraints that may be imposed for values of this argument, or null if there are none.
    • reset

      protected void reset()
      Resets this argument so that it appears in the same form as before it was used to parse arguments. Subclasses that override this method must call super.reset() to ensure that all necessary reset processing is performed.
      Overrides:
      reset in class Argument
    • getCleanCopy

      Creates a copy of this argument that is "clean" and appears as if it has not been used in the course of parsing an argument set. The new argument will have all of the same identifiers and constraints as this parser.
      Specified by:
      getCleanCopy in class Argument
      Returns:
      The "clean" copy of this argument.
    • addToCommandLine

      protected void addToCommandLine(@NotNull List<String> argStrings)
      Updates the provided list to add any strings that should be included on the command line in order to represent this argument's current state.
      Specified by:
      addToCommandLine in class Argument
      Parameters:
      argStrings - The list to update with the string representation of the command-line arguments.
    • toString

      public void toString(@NotNull StringBuilder buffer)
      Appends a string representation of this argument to the provided buffer.
      Specified by:
      toString in class Argument
      Parameters:
      buffer - The buffer to which the information should be appended.