public class VTool extends Object implements VToolConfigKeys, VToolFlags, ExitStatusType, ToolsLicense
This replaces LVTool functionality.
Modifier and Type | Field and Description |
---|---|
boolean |
dictionaryPassed |
ALIASKEY, DICTKEY, FOLLOWKEY, FORCEKEY, IGNOREDIRKEY, IGNOREFILEKEY, INCLUDESKEY, PROGRESSKEY, RECURSEKEY, REGEXPKEY, REPORTKEY, SHOWLOGKEY, STYLEKEY, TARGETKEY, VERBOSEKEY
ALIAS, FOLLOW, IGNOREDIR, IGNOREFILE, INCLUDES, LOCAL, PARTIAL, PROGRESS, REGEXP, RPTSTYLE, TARGET, VERBOSE, WHATIS_ALIAS, WHATIS_DICT, WHATIS_FOLLOW, WHATIS_IGNOREDIR, WHATIS_IGNOREFILE, WHATIS_INCLUDES, WHATIS_LOCAL, WHATIS_PARTIAL, WHATIS_PROGRESS, WHATIS_REGEXP, WHATIS_REPORT, WHATIS_RPTSTYLE, WHATIS_TARGET, WHATIS_VERBOSE
ARGNAME, CONFIG, DICT, HELP, LONG, REPORT, SHORT, VERSION, WHATIS_CONFIG, WHATIS_HELP, WHATIS_VERSION
APPLICATION_ERROR, ERRORS_FOUND, SKIPPED_FILES, SUCCESS, SYSTEM_ERROR, WARNINGS_FOUND
LICENSE
Constructor and Description |
---|
VTool()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
List<URL> |
getDictionaries() |
Report |
getReport() |
List<Target> |
getTargets() |
static void |
main(String[] argv)
Implementation to perform automated PDS validation.
|
org.apache.commons.cli.CommandLine |
parseLine(String[] argv)
Parses the VTool command-line.
|
void |
printRptFooter() |
void |
printRptHeader()
Prints report header information such as version of the tool, execution
time, and flag settings.
|
void |
queryCmdLine(org.apache.commons.cli.CommandLine cmd)
Queries the VTool command-line.
|
void |
readConfigFile(URL file)
Reads a configuration file to set the default behaviors for VTool.
|
gov.nasa.pds.tools.dict.Dictionary |
readDictionaries(List dictionary)
Parse the dictionary files.
|
void |
setAlias(boolean a)
Set aliasing flag.
|
void |
setDictionaries(List<String> d)
Set the dictionary file names passed into VTool .
|
void |
setdirsToSkip(List<String> d)
Set the flag to ignore specified directories.
|
void |
setfilesToFind(List<String> e)
Set the patterns flag.
|
void |
setfilesToSkip(List<String> f)
Set the flag to ignore specified files.
|
void |
setFollowPtrs(boolean f)
Set the flag that determines whether to follow pointers found in
a label.
|
void |
setForcePartial(boolean f)
Set the flag that determines whether to validate standalone label.
|
void |
setIncludePaths(List<String> i)
Set the paths to search for files referenced by pointers.
|
void |
setLogFile(File f)
Set the file name for the machine-readable log.
|
void |
setProgress(boolean p)
Set the progress reporting flag.
|
void |
setRecursive(boolean r)
Set the recursive flag.
|
void |
setRptFile(File f)
Set the file for the human-readable report.
|
void |
setRptStyle(String style)
Set the output style for the report.
|
void |
setTargets(List<String> t)
Set the targets flag.
|
void |
setupReport()
Configures the logger appropriately.
|
void |
setVerbose(short v)
Set the verbosity level and above to include in the reporting.
|
void |
showHelp()
Display VTool usage and help information
|
void |
showProgress(URL file)
Prints out the current directory being validated and
represents each file being validated by an asterisk.
|
void |
showVersion()
Show the version and disclaimer notice for VTool.
|
void |
validateLabel(URL url,
gov.nasa.pds.tools.dict.Dictionary dict)
Validate a label file.
|
void |
validateLabels(List<Target> targets)
Validate labels, performing only syntactic validation.
|
void |
validateLabels(List<Target> targets,
gov.nasa.pds.tools.dict.Dictionary dict)
Validate labels, performing both syntactic and semantic validation.
|
public void showVersion() throws IOException
IOException
public void showHelp()
public org.apache.commons.cli.CommandLine parseLine(String[] argv) throws ApplicationException
argv
- arguments given on the command-lineApplicationException
public void queryCmdLine(org.apache.commons.cli.CommandLine cmd) throws ApplicationException, MalformedURLException, SystemException
public void setAlias(boolean a)
a
- 'false' if aliasing should be turned off,
'true' otherwisepublic void setDictionaries(List<String> d) throws ApplicationException
d
- a List object of dictionary filesApplicationException
public void setFollowPtrs(boolean f)
f
- 'true' to follow, 'false' otherwisepublic void setForcePartial(boolean f)
f
- 'true' to enable, 'false' otherwisepublic void setIncludePaths(List<String> i)
Default is to always look first in the same directory as the label, then search specified directories.
i
- List of pathspublic void setdirsToSkip(List<String> d)
d
- a text file containing a list of directories and/or directory
patterns to ignore during validation. The names must be listed one
name per line.public void setfilesToSkip(List<String> f)
f
- a list of files/file patterns to ignore during validation.public void setLogFile(File f)
f
- file name of the logpublic Report getReport()
public void setRptFile(File f)
f
- file namepublic void setRptStyle(String style) throws ApplicationException
style
- 'sum' for a summary report, 'min' for a minimal report,
and 'full' for a full reportApplicationException
public void setProgress(boolean p)
p
- public void setfilesToFind(List<String> e)
e
- a List of patterns to be matched when searching for files to
validate in a directorypublic void setRecursive(boolean r)
r
- 'true' to recursively traverse down a directory and all its
sub-directories, 'false' otherwisepublic void setTargets(List<String> t)
t
- a List of files, URLs, and/or directories to be validatedpublic void setVerbose(short v) throws ApplicationException
v
- '1' for info, '2' for warnings, and '3' for errorsApplicationException
public void readConfigFile(URL file) throws ApplicationException
Flags set on the command-line will override flags set in the configuration file
file
- a file containing keyword/value statementsApplicationException
public void printRptHeader() throws SystemException, IOException
SystemException
IOException
public void setupReport() throws ApplicationException, SystemException
If a log file was specified on the command-line, the log will be written to that file. If the log flag was specified with no file spec, then the log will be written to standard out. Otherwise, the log will be written to memory (ByteArrayOutputStream).
SystemException
ApplicationException
public gov.nasa.pds.tools.dict.Dictionary readDictionaries(List dictionary) throws ApplicationException, URISyntaxException
dictionary
- a list of dictionary URLsApplicationException
URISyntaxException
public void validateLabels(List<Target> targets) throws Exception
targets
- Exception
public void validateLabels(List<Target> targets, gov.nasa.pds.tools.dict.Dictionary dict) throws Exception
targets
- a list of files, directories, and/or URLs.dict
- the dictionary file.Exception
public void validateLabel(URL url, gov.nasa.pds.tools.dict.Dictionary dict) throws ApplicationException, SystemException
url
- The URL of the file to be validateddict
- a Dictionary object needed for semantic validation. If null,
only syntactic validation will be performed.ApplicationException
SystemException
public void showProgress(URL file) throws SystemException
file
- The URL being validatedSystemException
public static void main(String[] argv)
The main calls the following methods (in this order):
To setup the flags and parse the command-line options:
To setup the logger and log the report header information:
To perform validation:
To create the final report:
Reporting is not generated if the log flag was specified with no file spec and the report file flag was not specified
VTool returns an appropriate exit status based on validation results.
argv
- Arguments passed on the command-linepublic void printRptFooter()
Copyright © 2005–2017 Planetary Data System. All rights reserved.