Class Base64Tool


  • @ThreadSafety(level=NOT_THREADSAFE)
    public final class Base64Tool
    extends CommandLineTool
    This class provides a tool that can be used to perform base64 encoding and decoding from the command line. It provides two subcommands: encode and decode. Each of those subcommands offers the following arguments:
    • "--data {data}" -- specifies the data to be encoded or decoded.
    • "--inputFile {data}" -- specifies the path to a file containing the data to be encoded or decoded.
    • "--outputFile {data}" -- specifies the path to a file to which the encoded or decoded data should be written.
    The "--data" and "--inputFile" arguments are mutually exclusive, and if neither is provided, the data to encode will be read from standard input. If the "--outputFile" argument is not provided, then the result will be written to standard output.
    • Constructor Detail

      • Base64Tool

        public Base64Tool​(@Nullable
                          java.io.OutputStream out,
                          @Nullable
                          java.io.OutputStream err)
        Creates a new instance of this tool with the provided information. Standard input will not be available.
        Parameters:
        out - The output stream to which standard out should be written. It may be null if standard output should be suppressed.
        err - The output stream to which standard error should be written. It may be null if standard error should be suppressed.
      • Base64Tool

        public Base64Tool​(@Nullable
                          java.io.InputStream in,
                          @Nullable
                          java.io.OutputStream out,
                          @Nullable
                          java.io.OutputStream err)
        Creates a new instance of this tool with the provided information.
        Parameters:
        in - The input stream to use for standard input. It may be null if no standard input is needed.
        out - The output stream to which standard out should be written. It may be null if standard output should be suppressed.
        err - The output stream to which standard error should be written. It may be null if standard error should be suppressed.
    • Method Detail

      • main

        public static void main​(@NotNull
                                java.lang.String... args)
        Runs the tool with the provided set of arguments.
        Parameters:
        args - The command line arguments provided to this program.
      • main

        @NotNull
        public static ResultCode main​(@Nullable
                                      java.io.InputStream in,
                                      @Nullable
                                      java.io.OutputStream out,
                                      @Nullable
                                      java.io.OutputStream err,
                                      @NotNull
                                      java.lang.String... args)
        Runs the tool with the provided information.
        Parameters:
        in - The input stream to use for standard input. It may be null if no standard input is needed.
        out - The output stream to which standard out should be written. It may be null if standard output should be suppressed.
        err - The output stream to which standard error should be written. It may be null if standard error should be suppressed.
        args - The command line arguments provided to this program.
        Returns:
        The result code obtained from running the tool. A result code other than ResultCode.SUCCESS will indicate that an error occurred.
      • getToolName

        @NotNull
        public java.lang.String getToolName()
        Retrieves the name of this tool. It should be the name of the command used to invoke this tool.
        Specified by:
        getToolName in class CommandLineTool
        Returns:
        The name for this tool.
      • supportsInteractiveMode

        public boolean supportsInteractiveMode()
        Indicates whether this tool should provide support for an interactive mode, in which the tool offers a mode in which the arguments can be provided in a text-driven menu rather than requiring them to be given on the command line. If interactive mode is supported, it may be invoked using the "--interactive" argument. Alternately, if interactive mode is supported and defaultsToInteractiveMode() returns true, then interactive mode may be invoked by simply launching the tool without any arguments.
        Overrides:
        supportsInteractiveMode in class CommandLineTool
        Returns:
        true if this tool supports interactive mode, or false if not.
      • defaultsToInteractiveMode

        public boolean defaultsToInteractiveMode()
        Indicates whether this tool defaults to launching in interactive mode if the tool is invoked without any command-line arguments. This will only be used if supportsInteractiveMode() returns true.
        Overrides:
        defaultsToInteractiveMode in class CommandLineTool
        Returns:
        true if this tool defaults to using interactive mode if launched without any command-line arguments, or false if not.
      • supportsPropertiesFile

        public boolean supportsPropertiesFile()
        Indicates whether this tool supports the use of a properties file for specifying default values for arguments that aren't specified on the command line.
        Overrides:
        supportsPropertiesFile in class CommandLineTool
        Returns:
        true if this tool supports the use of a properties file for specifying default values for arguments that aren't specified on the command line, or false if not.
      • supportsOutputFile

        protected boolean supportsOutputFile()
        Indicates whether this tool should provide arguments for redirecting output to a file. If this method returns true, then the tool will offer an "--outputFile" argument that will specify the path to a file to which all standard output and standard error content will be written, and it will also offer a "--teeToStandardOut" argument that can only be used if the "--outputFile" argument is present and will cause all output to be written to both the specified output file and to standard output.
        Overrides:
        supportsOutputFile in class CommandLineTool
        Returns:
        true if this tool should provide arguments for redirecting output to a file, or false if not.
      • addToolArguments

        public void addToolArguments​(@NotNull
                                     ArgumentParser parser)
                              throws ArgumentException
        Adds the command-line arguments supported for use with this tool to the provided argument parser. The tool may need to retain references to the arguments (and/or the argument parser, if trailing arguments are allowed) to it in order to obtain their values for use in later processing.
        Specified by:
        addToolArguments in class CommandLineTool
        Parameters:
        parser - The argument parser to which the arguments are to be added.
        Throws:
        ArgumentException - If a problem occurs while adding any of the tool-specific arguments to the provided argument parser.
      • getExampleUsages

        @NotNull
        public java.util.LinkedHashMap<java.lang.String[],​java.lang.String> getExampleUsages()
        Retrieves a set of information that may be used to generate example usage information. Each element in the returned map should consist of a map between an example set of arguments and a string that describes the behavior of the tool when invoked with that set of arguments.
        Overrides:
        getExampleUsages in class CommandLineTool
        Returns:
        A set of information that may be used to generate example usage information. It may be null or empty if no example usage information is available.