org.jibx.custom
Class CustomizationCommandLineBase

java.lang.Object
  extended by 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
protected static class CustomizationCommandLineBase.ArgList
          Wrapper class for command line argument list.
 
Field Summary
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
protected CustomizationCommandLineBase(java.lang.String[] lines)
          Constructor.
 
Method Summary
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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.



Project Web Site