lsnof − run libbzdev Java code from a scripting language (LS Named Object Factory) provide data about subclasses of NamedObjectFactory. If no arguments are provided, the output describes all factories listed in META−INF/servcies/org.bzdev.obnaming.NamedObjectFactory resources in both libbzdev.jar and code bases provided via the option. Otherwise the output describes only the factories associated with each argument. These classname arguments are regular expressions that match the fully qualified class name of a factory. The character matches all the characters in a class name except ’.’, which separates package names. The character indicates the start of a group and indicates the end of a group. The character indicates alternatives (usually these will be inside groups). As a special case matches any sequence of characters, including ones of length 0, but must appear only at the end of a pattern. All other characters are treated normally. If the argument is literally with no preceding package name, the pattern matches the class name of any class in the unnamed package. If no output format option is provided, the output is plain text. For each factory, the factory name will be listed, followed by a colon. A series of indented entries follows. Each starts with the word followed by a label in parentheses suitable for use by a GUI for giving the parameter a suitable name. The label component is followed by a colon. With additional indentation, a series of values are shown presented by a name, followed by an equal sign, followed by a value. The names are and The defining factory class is the factory that defined a parameter, and may be a superclass of the factory being listed. The type is the type of the parameter’s value. The range (which may be empty) specifies range constraints on the parameter’s value. The key type is the type of the parameter’s key for parameters that have keys. Finally, the description if a textual description of the parameter suitable for use by a GUI for a tool tip. uses the class org.bzdev.util.TemplateProcessor to process templates. The syntax used by the template processor can be found in the javadoc documentation for org.bzdev.util.TemplateProcessor. The key map used by the template processor is defined in the javadoc documentation for the method getTemplateKeyMap in the class org.bzdev.obnaming.NamedObjectFactory with the following additional keys representing colors: and The values for each is a followed by 6 hexadecimal digits to represent a color for use in a CSS style. One additional key, provides the number of characters in each key in the menu providing the factory class names, excluding any trailing characters matching the string "Factory".

These options are shared by all uses of this command. Most of these options indicate where should find binaries (e.g., JAR files or modular JAR files). End of options. Add a common-separated list of module names to any existing list, or create a new list if there is no existing list. This option determines which modules will be visible to By default, all the BZDev library modules are visible and do not have to be added. Defines directories and jar files for the class path (for the option) and for the module path (for the option). may be a URL giving the location of the classes or a path name in the local file system. The character "|" is used as a path separator, with the sequence "||" interpreted as a literal "|", so that for an odd number of "|" characters in a row, only the final one is treated as a path separator. If file name must start with "|", use a "file" URL and encode the "|" as %7C. If the starting sequence of a path component contains a ":" (the first one if there are more than one), and that sequence of characters is syntactically valid at the start of a URL, the path component is treated as a URL. Otherwise it is a file name. This rule implies that Windows file names such as C:mycode.jar will be confused with a URL, so a URL should be used instead. If a file name is not absolute, it is interpreted relative to the current working directory. The directory "..." refers the directory in which the BZDev library’s JAR files resides (on Debian Linux systems, this directory is /usr/share/java, the standard location for Java libraries.) Multiple and options are allowed. For file names, a leading "~" followed by the name separator ("/" for Unix) is expanded to the user´s home directory, a file name consisting of only "~" is replaced with the user´s home directory, a leading "~~" is replaced with "~", and a leading "..." followed by the name separator ("/" for Unix) is replaced by the directory in which the bzdev class library’s JAR file is located. For the case, a component can be any could appear in a Java option, with the exception that a ’|’ has to be escaped. If a codebase has classes in the unnamed package, the option must be used as all code bases on the module path must contain classes in named packages. Prints the java command that would be executed but does not actually execute it. Causes a single-argument option to be used by the java launcher that lsnof invokes. Set the scripting language to While scripting is not used, this option affects the values read when configuration files are processed. Add a colon-separated list of directories or modular JAR files to the module path. This option may appear multiple times. While the path separator is a colon on Linux/Unix systems, it is a semicolon on Windows systems. Unlike the option, a component of the path may not be a URL. Whether to use a option or a option is a matter of style. One might prefer the option when the module path contains directories. Unlike Java, multiple or options may be provided. If so, the paths are combined. Print a stack trace if an error occurs while processing factories. Provides a base URL representing a common URL path for determining relative URLs. This is used in conjunction with the option for cases in which multiple sets of API documentation will be in subdirectories of a common directory. Causes a directory tree whose root is a directory named to be created. This will be similar to the Javadoc tree with a toplevel index.html file and an overview.html file, plus subdirectories for packages containing factories that should be documented. Factory class-names or regular expressions must be provided after the options. This option is intended for generating Javadoc-like documentation for factory parameters. Options indicating the location for Javadoc documentation for code bases should be provided. The option itself provides one such API directory (which must exist before is run and should document the packages for the factories specified as the non-option arguments). For additional API directories, use the or options. TP Indicates that HTML that is generated will have light text on a dark backgound for improved readibility. This option does not affect an externally provided overview as that is merely copied as is. Specifies a Javadoc API directory to which links may be created. Multiple is a ’|’ separated list of URLs. Pairs of ’|’ characters are replaced with single ’|’ characters to allow a ’|’ to appear in a URL. If a URL does not have a protocol, it is assumed to be a file name. Specifies a Javadoc API directory to which links may be created. Multiple whereas package and module information is read from This option is useful for cases in which is not currently accessible. Use the resource referenced by as the overview page that will be displayed when the factory documentation’s index.html file is opened by a browser. The option is used only with the option. If the URL does not start with a protocol followed by a colon, it is assumed to be a file name. In either case, the value that is referenced will be copied into the directory referenced by the option and will not be modified by the option. provides a target name for use in <A> elements. This is used in key maps containing the key which contains HTML code that will generate the name of a factory as a link to the corresponding parameter documentation. Set the character set used for input to The default is This option is useful when templates are read from external files or from resources accessed via a URL and where the content type is not known. The remaining template options are mutually exclusive. The options and specify specific templates explicitly. The rest use a resource bundle to find a template that is the closest match to the current locale. The output will list the class names of factories, the names of the factories’ parameters, and the class in which each parameter is defined. The values are separated by a tab, with each parameter appearing on its own line. The output contains the same fields as those provided by the option, but in HTML format. The output is in HTML format. Just list the factories that were found, one per line. The input template is obtained from a file named The input template is obtained from a resource named The resource must be in a package that a Java module declares to be open. The input template is referenced by a URL For some protocols (.e.g., HTTP) the charset to use is provided as a content type. If this is wrong or missing, the option can be used to set the character set explicitly. List the code bases that were configured, one per line, starting with the code base for the BZDev class library. The code base for the standard Java library is not shown. The code bases shown are those explicitly passed to and options. Assume there is a build directory named BUILD, and that BUILD/bzdev/doc/api is a symbolic link to the BZDev API directory (/usr/share/doc/libbzdev−doc/api on Debian Linux systems), and that a directory named BUILD/roadanim/doc/api has been created by the program. For non-Linux systems, we will assume the documentation for the BZDev class library will be in a subdirectory bzdev/doc/api of some system directory and that the documentation for the org.bzdev.roadanim package (this package is an add-on package with its own JAR file) will be in a subdirectory rdanim/doc/api of the same system directory. To create a set of HTML pages for this case, one can use the following command:
lsnof −−baseURL BUILD \ −−link http://docs.oracle.com/javase/11/docs/api/ \
−−codebase BUILD/librdanim.jar \
−d BUILD/rdanim/doc/api ’org.bzdev.roadanim.*’ The documentation for the standard Java class library will then be obtained from Oracle’s web server, and the documentation for the BZDev class library and the org.bzdev.roadanim package can then be copied into the appropriate subdirectories. The directory name BUILD never appears in a link because the options causes relative URLs and paths to be used. To create documentation for Debian systems, where the standard installation locations are known, one can use the following: lsnof −p BUILD −−add−modules org.bzdev.roadanim \ −−link file:///usr/share/doc/openjdk−11−doc/api/ \
−−link file:///usr/share/doc/libbzdev−doc/api/ \
−d BUILD/api/factories ’org.bzdev.roadanim.*’ Assuming that the Javadoc documentation was created in BUILD/api, the files created can be tested as relative links will be used between the API and factory documentation for the roadanim package itself as the the factories subdirectory is a subdirectory of the corresponding API directory. To find all the factories that are available, use the command lsnof −−codebase ... −p ... −add−modules ... −−list To show documentation for a factory as plain text, use lsnof −−codebase ... −p ... −add−modules ... FACTORY where FACTORY is the fully qualified class name of a factory. Multiple factories can be listed and wildcards can be used as described above: lsnof −p BUILD −−add−modules org.bzdev.roadanim ’org.bzdev.roadanim.*’ will print documentation as plain text for all factories in the package org.bzdev.roadanim. uses the same configuration files as so that factories listed in the configuration file for scrunner will be used by System configuration file that allows a specific Java launcher, class-path entries, and property definitions to be used. The form starting with /etc/opt may be used on some systems (e.g. Solaris). User configuration file that allows a specific Java launcher, class-path entries, and property definitions to be used. Property definitions in this file override those in the system configuration file.