Class GenerateSchemaFromSource

java.lang.Object
com.unboundid.util.CommandLineTool
com.unboundid.ldap.sdk.persist.GenerateSchemaFromSource
All Implemented Interfaces:
Serializable

This class provides a tool which can be used to generate LDAP attribute type and object class definitions which may be used to store objects created from a specified Java class. The given class must be included in the classpath of the JVM used to invoke the tool, and must be marked with the LDAPObject annotation.
See Also:
  • Constructor Details

    • GenerateSchemaFromSource

      Creates a new instance of this tool.
      Parameters:
      outStream - The output stream to which standard out should be written. It may be null if output should be suppressed.
      errStream - The output stream to which standard error should be written. It may be null if error messages should be suppressed.
  • Method Details

    • main

      public static void main(@NotNull String[] args)
      Parse the provided command line arguments and perform the appropriate processing.
      Parameters:
      args - The command line arguments provided to this program.
    • main

      @NotNull public static ResultCode main(@NotNull String[] args, @Nullable OutputStream outStream, @Nullable OutputStream errStream)
      Parse the provided command line arguments and perform the appropriate processing.
      Parameters:
      args - The command line arguments provided to this program.
      outStream - The output stream to which standard out should be written. It may be null if output should be suppressed.
      errStream - The output stream to which standard error should be written. It may be null if error messages should be suppressed.
      Returns:
      A result code indicating whether the processing was successful.
    • 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.
    • getToolDescription

      Retrieves a human-readable description for this tool. If the description should include multiple paragraphs, then this method should return the text for the first paragraph, and the CommandLineTool.getAdditionalDescriptionParagraphs() method should be used to return the text for the subsequent paragraphs.
      Specified by:
      getToolDescription in class CommandLineTool
      Returns:
      A human-readable description for this tool.
    • getToolVersion

      Retrieves the version string for this tool.
      Overrides:
      getToolVersion in class CommandLineTool
      Returns:
      The version string 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.
    • supportsDebugLogging

      protected boolean supportsDebugLogging()
      Indicates whether this tool supports the ability to generate a debug log file. If this method returns true, then the tool will expose additional arguments that can control debug logging.
      Overrides:
      supportsDebugLogging in class CommandLineTool
      Returns:
      true if this tool supports the ability to generate a debug log file, or false if not.
    • addToolArguments

      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.
    • doToolProcessing

      Performs the core set of processing for this tool.
      Specified by:
      doToolProcessing in class CommandLineTool
      Returns:
      A result code that indicates whether the processing completed successfully.
    • 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.