Table of Contents
Default program behavior can be configured in one or more files that
the command line merely overrides. JSAP provides a
registerDefaultSource(DefaultSource) method to
support this. At the time of this writing, the only concrete
implementation of DefaultSource is
PropertyDefaultSource, which reads files in
java.util.Properties format.
Multiple DefaultSources may be registered
with a JSAP. When a default value is sought, the
DefaultSources are checked in the order in which
they were registered. The first default value encountered by
JSAP is used.
PropertyDefaultSource reads default values
from text files consisting of zero or more lines of
"key=value"-type assignments. Property names may be parameter
IDs, long flags, or short flags for the parameters they address.
JSAP interprets them in that order (ID, then long
flag, then short flag).
When you create a PropertyDefaultSource,
you can tell it not to throw Exceptions. This
allows you to specify a number of possible locations for files that
don't have to exist.
A typical order in which to register PropertyDefaultSources
is:
.yourprogramname in
the user's home directory (obtained via System
properties)
/etc/yourprogramname.conf
on *nix systems
$YOURPROGRAM_HOME/yourprogramname.conf
if your program makes use of an environment variable to point to its
home directory
If you have any suggestions for a search order example for Windows or Mac, please let me know.
PropertyDefaultSource has not yet been
tested with QualifiedSwitches; odds are it
won't work as you expect.