Package org.jibx.custom
Class CustomizationCommandLineBase
- java.lang.Object
-
- org.jibx.custom.CustomizationCommandLineBase
-
- Direct Known Subclasses:
ClassCustomizationBase
,CodeGenCommandLine
,SchemaCommandLineBase
public abstract class CustomizationCommandLineBase extends java.lang.Object
Command line processor for all types of customizable tools. This just provides the basic handling of a customizations file, target directory, and overrides of values in the customizations root object. TODO: should extend SchemaCommandLinebase- Author:
- Dennis M. Sosnoski
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
CustomizationCommandLineBase.ArgList
Wrapper class for command line argument list.
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]
COMMON_USAGE_LINES
Ordered array of usage lines for parameters at this level.private java.util.List
m_extraArgs
List of specified classes or files.private java.io.File
m_generateDirectory
Target directory for output.private java.lang.String[]
m_usageLines
Complete array of usage lines.private boolean
m_verbose
Verbose output flag.static java.lang.Class[]
STRING_PARAMETER_ARRAY
Array of method parameter classes for single String parameter.static java.lang.Class[]
STRING_UNMARSHALLER_PARAMETER_ARRAY
Array of classes for String and unmarshaller parameters.private static int
USAGE_UNIQUE_CHARS
Number of leading characters in usage lines checked for uniqueness.
-
Constructor Summary
Constructors Modifier Constructor Description protected
CustomizationCommandLineBase(java.lang.String[] lines)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract java.util.Map
applyOverrides(java.util.Map overmap)
Apply map of override values to customizations read from file or created as default.protected boolean
checkParameter(CustomizationCommandLineBase.ArgList alist)
Check extension parameter.protected void
finishParameters(CustomizationCommandLineBase.ArgList alist)
Finish processing of command line parameters.java.util.List
getExtraArgs()
Get extra arguments from command line.java.io.File
getGeneratePath()
Get generate directory.protected java.lang.String[]
getUsageLines()
Get the usage lines describing command line parameters.boolean
isVerbose()
Check if verbose output requested.protected abstract boolean
loadCustomizations(java.lang.String path)
Load the customizations file.protected static java.lang.String[]
mergeUsageLines(java.lang.String[] base, java.lang.String[] adds)
Merge two arrays of strings, returning an ordered array containing all the strings from both provided arrays.abstract void
printUsage()
Print usage information.boolean
processArgs(java.lang.String[] args)
Process command line arguments array.static boolean
putKeyValue(java.lang.String def, java.util.Map map)
Set a key=value definition in a map.protected void
verboseDetails()
Print any extension details.
-
-
-
Field Detail
-
STRING_PARAMETER_ARRAY
public static final java.lang.Class[] STRING_PARAMETER_ARRAY
Array of method parameter classes for single String parameter.
-
STRING_UNMARSHALLER_PARAMETER_ARRAY
public static final java.lang.Class[] STRING_UNMARSHALLER_PARAMETER_ARRAY
Array of classes for String and unmarshaller parameters.
-
USAGE_UNIQUE_CHARS
private static final int USAGE_UNIQUE_CHARS
Number of leading characters in usage lines checked for uniqueness.- See Also:
- Constant Field Values
-
COMMON_USAGE_LINES
private static final java.lang.String[] COMMON_USAGE_LINES
Ordered array of usage lines for parameters at this level.
-
m_usageLines
private final java.lang.String[] m_usageLines
Complete array of usage lines.
-
m_extraArgs
private java.util.List m_extraArgs
List of specified classes or files.
-
m_generateDirectory
private java.io.File m_generateDirectory
Target directory for output.
-
m_verbose
private boolean m_verbose
Verbose output flag.
-
-
Constructor Detail
-
CustomizationCommandLineBase
protected CustomizationCommandLineBase(java.lang.String[] lines)
Constructor. This just merges the usage line defined by subclasses with those at this level, and checks for any duplication (by comparing the first n characters of the lines).- Parameters:
lines
-
-
-
Method Detail
-
processArgs
public boolean processArgs(java.lang.String[] args) throws JiBXException, java.io.IOException
Process command line arguments array.- Parameters:
args
-- Returns:
true
if valid,false
if not- Throws:
JiBXException
java.io.IOException
-
getGeneratePath
public java.io.File getGeneratePath()
Get generate directory.- Returns:
- directory
-
getExtraArgs
public java.util.List getExtraArgs()
Get extra arguments from command line. These extra arguments must follow all parameter flags.- Returns:
- args
-
isVerbose
public boolean isVerbose()
Check if verbose output requested.- Returns:
- verbose
-
putKeyValue
public static boolean putKeyValue(java.lang.String def, java.util.Map map)
Set a key=value definition in a map. This is a command line processing assist method that prints an error message directly if the expected format is not found.- Parameters:
def
-map
-- Returns:
true
if successful,false
if error
-
getUsageLines
protected java.lang.String[] getUsageLines()
Get the usage lines describing command line parameters.- Returns:
- lines
-
mergeUsageLines
protected static java.lang.String[] mergeUsageLines(java.lang.String[] base, java.lang.String[] adds)
Merge two arrays of strings, returning an ordered array containing all the strings from both provided arrays.- Parameters:
base
-adds
-- Returns:
- ordered merged
-
checkParameter
protected boolean checkParameter(CustomizationCommandLineBase.ArgList alist)
Check extension parameter. This method may be overridden by subclasses to process parameters beyond those known to this base class.- Parameters:
alist
- argument list- Returns:
true
if parameter processed,false
if unknown
-
finishParameters
protected void finishParameters(CustomizationCommandLineBase.ArgList alist)
Finish processing of command line parameters. This method may be overridden by subclasses to implement any added processing after all the command line parameters have been handled.- Parameters:
alist
-
-
verboseDetails
protected void verboseDetails()
Print any extension details. This method may be overridden by subclasses to print extension parameter values for verbose output.
-
loadCustomizations
protected abstract boolean loadCustomizations(java.lang.String path) throws JiBXException, java.io.IOException
Load the customizations file. This method must load the specified customizations file, or create a default customizations instance, of the appropriate type.- Parameters:
path
- customization file path,null
if none- Returns:
true
if successful,false
if an error- Throws:
JiBXException
java.io.IOException
-
applyOverrides
protected abstract java.util.Map applyOverrides(java.util.Map overmap)
Apply map of override values to customizations read from file or created as default.- Parameters:
overmap
- override key-value map- Returns:
- map for key/values not recognized
-
printUsage
public abstract void printUsage()
Print usage information.
-
-