Class BooleanValueArgument

  • All Implemented Interfaces:
    java.io.Serializable

    @Mutable
    @ThreadSafety(level=NOT_THREADSAFE)
    public final class BooleanValueArgument
    extends Argument
    Creates a new argument that is intended to represent Boolean states based on the value provided for this argument. This is similar to the BooleanArgument argument type, except that the Boolean value for this argument must be explicitly specified, whereas the Boolean value for the BooleanArgument class is inferred based on whether the argument was present.

    Arguments of this type must always have exactly one value. Values of "true", "t", "yes", "y", "on", and "1" will be interpreted as representing a Boolean value of true, and values of "false", "f", "no", "n", "off", and "0" will be interpreted as representing a Boolean value of false. No other values will be allowed.
    See Also:
    Serialized Form
    • Constructor Detail

      • BooleanValueArgument

        public BooleanValueArgument​(@Nullable
                                    java.lang.Character shortIdentifier,
                                    @Nullable
                                    java.lang.String longIdentifier,
                                    @NotNull
                                    java.lang.String description)
                             throws ArgumentException
        Creates a new Boolean value argument with the provided information. It will not be required, will use a default value 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.
      • BooleanValueArgument

        public BooleanValueArgument​(@Nullable
                                    java.lang.Character shortIdentifier,
                                    @Nullable
                                    java.lang.String longIdentifier,
                                    boolean isRequired,
                                    @Nullable
                                    java.lang.String valuePlaceholder,
                                    @NotNull
                                    java.lang.String description)
                             throws ArgumentException
        Creates a new Boolean value argument with no 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.
        valuePlaceholder - A placeholder to display in usage information to indicate that a value must be provided. It may be null if a default placeholder should be used.
        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.
      • BooleanValueArgument

        public BooleanValueArgument​(@Nullable
                                    java.lang.Character shortIdentifier,
                                    @Nullable
                                    java.lang.String longIdentifier,
                                    boolean isRequired,
                                    @Nullable
                                    java.lang.String valuePlaceholder,
                                    @NotNull
                                    java.lang.String description,
                                    @Nullable
                                    java.lang.Boolean defaultValue)
                             throws ArgumentException
        Creates a new Boolean value argument with the specified 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.
        valuePlaceholder - A placeholder to display in usage information to indicate that a value must be provided. It may be null if a default placeholder should be used.
        description - A human-readable description for this argument. It must not be null.
        defaultValue - The default value that will be used for this argument if no values are provided. It may be null if there should not be a default value.
        Throws:
        ArgumentException - If there is a problem with the definition of this argument.
    • Method Detail

      • getValueStringRepresentations

        @NotNull
        public java.util.List<java.lang.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.
      • getDefaultValue

        @Nullable
        public java.lang.Boolean getDefaultValue()
        Retrieves the default value for this argument, if defined.
        Returns:
        The default value for this argument, or null if none is defined.
      • getValue

        @Nullable
        public java.lang.Boolean getValue()
        Retrieves the value for this argument, if one was provided.
        Returns:
        The value for this argument. If no value was provided but a default value was defined, then the default value will be returned. If no value was provided and no default value was defined, then null will be returned.
      • addValue

        protected void addValue​(@NotNull
                                java.lang.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.
      • getDataTypeName

        @NotNull
        public java.lang.String 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

        @NotNull
        public java.lang.String 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

        @NotNull
        public BooleanValueArgument 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
                                        java.util.List<java.lang.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
                             java.lang.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.