org.jibx.schema.codegen.extend
Class DefaultNameConverter

java.lang.Object
  extended by org.jibx.schema.codegen.extend.DefaultNameConverter
All Implemented Interfaces:
NameConverter

public class DefaultNameConverter
extends java.lang.Object
implements NameConverter

Converter for working with Java names.

Author:
Dennis M. Sosnoski

Field Summary
private  boolean m_camelCase
          Camelcase field names flag.
private  java.lang.String m_fieldPrefix
          Prefix used for normal field names (non-null, may be empty).
private  java.lang.String m_fieldSuffix
          Suffix used for normal field names (non-null, may be empty).
private  java.lang.String m_staticPrefix
          Prefix used for static field names (non-null, may be empty).
private  java.lang.String m_staticSuffix
          Suffix used for static field names (non-null, may be empty).
private  java.lang.String[] m_stripPrefixes
          Set of XML name prefixes to be discarded in conversions.
private  java.lang.String[] m_stripSuffixes
          Set of XML name suffixes to be discarded in conversions.
private  boolean m_underscore
          Use underscores in field names flag (as substitute for special characters, and to split words).
private  boolean m_upperInitial
          Uppercase initial letter of field names flag.
private  java.util.ArrayList m_wordList
          Reusable array for words in name.
 
Constructor Summary
DefaultNameConverter()
          Constructor.
DefaultNameConverter(DefaultNameConverter base)
          Copy constructor.
 
Method Summary
private  java.lang.String buildFieldName(java.lang.String base, java.lang.String prefix, java.lang.String suffix)
          Build a field name using supplied prefix and/or suffix.
 java.lang.String depluralize(java.lang.String name)
          Convert potentially plural name to singular form.
 java.lang.String getFieldPrefix()
          Get prefix text for normal field names.
 java.lang.String getFieldSuffix()
          Get suffix text for normal field names.
 java.lang.String getStaticPrefix()
          Get prefix text for static field names.
 java.lang.String getStaticSuffix()
          Get suffix text for static field names.
 java.lang.String[] getStripPrefixes()
          Get the prefixes to be stripped when converting XML names.
 java.lang.String[] getStripSuffixes()
          Get the suffixes to be stripped when converting XML names.
protected static boolean isConversionNeeded(java.lang.String name)
          Check if a name needs to be converted from XML form due to invalid characters or embedded underscores.
 java.lang.String pluralize(java.lang.String name)
          Convert singular name to plural form.
 void setFieldPrefix(java.lang.String pref)
          Set prefix text for normal field names.
 void setFieldSuffix(java.lang.String suff)
          Set suffix text for normal field names.
 void setStaticPrefix(java.lang.String pref)
          Set prefix text for static field names.
 void setStaticSuffix(java.lang.String suff)
          Set suffix text for static field names.
 void setStripPrefixes(java.lang.String[] prefixes)
          Set the prefixes to be stripped when converting XML names.
 void setStripSuffixes(java.lang.String[] suffixes)
          Set the suffixes to be stripped when converting XML names.
 java.lang.String[] splitXMLWords(java.lang.String name)
          Split an XML name into words.
 java.lang.String toBaseName(java.lang.String xname)
          Convert an XML name to a Java value base name.
 java.lang.String toConstantName(java.lang.String text)
          Convert text to constant name.
 java.lang.String toFieldName(java.lang.String base)
          Convert base name to normal field name.
 java.lang.String toIfSetAccessMethodName(java.lang.String prop)
          Convert property name to if set access method name (for value in set of alternatives).
 java.lang.String toJavaClassName(java.lang.String name)
          Convert a base name to a legal Java class name.
 java.lang.String toPropertyName(java.lang.String base)
          Convert base name to property name (used for all method names).
 java.lang.String toReadAccessMethodName(java.lang.String prop)
          Convert property name to read access method name.
 java.lang.String toStaticFieldName(java.lang.String base)
          Convert base name to static field name.
 java.lang.String toTestAccessMethodName(java.lang.String prop)
          Convert property name to write access method name.
 java.lang.String toWriteAccessMethodName(java.lang.String prop)
          Convert property name to write access method name.
 java.lang.String trimXName(java.lang.String xname)
          Trim specified prefixes and/or suffixes from an XML name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_camelCase

private boolean m_camelCase
Camelcase field names flag.


m_fieldPrefix

private java.lang.String m_fieldPrefix
Prefix used for normal field names (non-null, may be empty).


m_fieldSuffix

private java.lang.String m_fieldSuffix
Suffix used for normal field names (non-null, may be empty).


m_staticPrefix

private java.lang.String m_staticPrefix
Prefix used for static field names (non-null, may be empty).


m_staticSuffix

private java.lang.String m_staticSuffix
Suffix used for static field names (non-null, may be empty).


m_underscore

private boolean m_underscore
Use underscores in field names flag (as substitute for special characters, and to split words).


m_upperInitial

private boolean m_upperInitial
Uppercase initial letter of field names flag.


m_stripPrefixes

private java.lang.String[] m_stripPrefixes
Set of XML name prefixes to be discarded in conversions.


m_stripSuffixes

private java.lang.String[] m_stripSuffixes
Set of XML name suffixes to be discarded in conversions.


m_wordList

private java.util.ArrayList m_wordList
Reusable array for words in name.

Constructor Detail

DefaultNameConverter

public DefaultNameConverter()
Constructor.


DefaultNameConverter

public DefaultNameConverter(DefaultNameConverter base)
Copy constructor.

Parameters:
base - instance used to initialize settings
Method Detail

pluralize

public java.lang.String pluralize(java.lang.String name)
Convert singular name to plural form.

Specified by:
pluralize in interface NameConverter
Parameters:
name - base name
Returns:
plural name

depluralize

public java.lang.String depluralize(java.lang.String name)
Convert potentially plural name to singular form.

Specified by:
depluralize in interface NameConverter
Parameters:
name - base name
Returns:
singularized name

getFieldPrefix

public java.lang.String getFieldPrefix()
Get prefix text for normal field names.

Returns:
field prefix (non-null, may be empty)

setFieldPrefix

public void setFieldPrefix(java.lang.String pref)
Set prefix text for normal field names.

Parameters:
pref - field prefix (non-null, may be empty)

getFieldSuffix

public java.lang.String getFieldSuffix()
Get suffix text for normal field names.

Returns:
field suffix (non-null, may be empty)

setFieldSuffix

public void setFieldSuffix(java.lang.String suff)
Set suffix text for normal field names.

Parameters:
suff - field suffix (non-null, may be empty)

getStaticPrefix

public java.lang.String getStaticPrefix()
Get prefix text for static field names.

Returns:
field prefix (non-null, may be empty)

setStaticPrefix

public void setStaticPrefix(java.lang.String pref)
Set prefix text for static field names.

Parameters:
pref - field prefix (non-null, may be empty)

getStaticSuffix

public java.lang.String getStaticSuffix()
Get suffix text for static field names.

Returns:
field suffix (non-null, may be empty)

setStaticSuffix

public void setStaticSuffix(java.lang.String suff)
Set suffix text for static field names.

Parameters:
suff - field suffix (non-null, may be empty)

getStripPrefixes

public java.lang.String[] getStripPrefixes()
Get the prefixes to be stripped when converting XML names.

Returns:
prefixes

setStripPrefixes

public void setStripPrefixes(java.lang.String[] prefixes)
Set the prefixes to be stripped when converting XML names.

Parameters:
prefixes -

getStripSuffixes

public java.lang.String[] getStripSuffixes()
Get the suffixes to be stripped when converting XML names.

Returns:
suffixes

setStripSuffixes

public void setStripSuffixes(java.lang.String[] suffixes)
Set the suffixes to be stripped when converting XML names.

Parameters:
suffixes -

trimXName

public java.lang.String trimXName(java.lang.String xname)
Trim specified prefixes and/or suffixes from an XML name.

Specified by:
trimXName in interface NameConverter
Parameters:
xname - XML name
Returns:
trimmed name, with specified prefixes and/or suffixes removed

splitXMLWords

public java.lang.String[] splitXMLWords(java.lang.String name)
Split an XML name into words. This splits first on the basis of separator characters ('.', '-', and '_') in the name, and secondly based on case (an uppercase character immediately followed by one or more lowercase characters is considered a word, and multiple uppercase characters not followed immediately by a lowercase character are also considered a word). Characters which are not valid as parts of identifiers in Java are dropped from the XML name before it is split, and words starting with initial uppercase characters have the upper case dropped for consistency. Note that this method is not threadsafe.

Specified by:
splitXMLWords in interface NameConverter
Parameters:
name -
Returns:
array of words

isConversionNeeded

protected static boolean isConversionNeeded(java.lang.String name)
Check if a name needs to be converted from XML form due to invalid characters or embedded underscores.

Parameters:
name -
Returns:
true if invalid name, false if valid

toJavaClassName

public java.lang.String toJavaClassName(java.lang.String name)
Convert a base name to a legal Java class name. This implementation avoids using class names from the default import classes in java.lang, to avoid conflicts with the import handling in generated code.

Specified by:
toJavaClassName in interface NameConverter
Parameters:
name - base name
Returns:
converted name

toBaseName

public java.lang.String toBaseName(java.lang.String xname)
Convert an XML name to a Java value base name. The base name is in normalized camelcase form with leading lower case (unless the first word of the name is all uppercase).

Specified by:
toBaseName in interface NameConverter
Parameters:
xname - XML name
Returns:
converted name

toConstantName

public java.lang.String toConstantName(java.lang.String text)
Convert text to constant name. The returned name is guaranteed not to match a Java keyword.

Specified by:
toConstantName in interface NameConverter
Parameters:
text - raw text to be converted
Returns:
constant name

buildFieldName

private java.lang.String buildFieldName(java.lang.String base,
                                        java.lang.String prefix,
                                        java.lang.String suffix)
Build a field name using supplied prefix and/or suffix.

Parameters:
base - normalized camelcase base name
prefix - text to be added at start of name
suffix - text to be added at end of name
Returns:
field name

toFieldName

public java.lang.String toFieldName(java.lang.String base)
Convert base name to normal field name. The returned name is guaranteed not to match a Java keyword.

Specified by:
toFieldName in interface NameConverter
Parameters:
base - normalized camelcase base name
Returns:
field name

toStaticFieldName

public java.lang.String toStaticFieldName(java.lang.String base)
Convert base name to static field name. The returned name is guaranteed not to match a Java keyword.

Specified by:
toStaticFieldName in interface NameConverter
Parameters:
base - normalized camelcase base name
Returns:
field name

toPropertyName

public java.lang.String toPropertyName(java.lang.String base)
Convert base name to property name (used for all method names). The property name is always in initial-upper camelcase form.

Specified by:
toPropertyName in interface NameConverter
Parameters:
base - normalized camelcase base name
Returns:
property name in initial-upper camelcase form

toReadAccessMethodName

public java.lang.String toReadAccessMethodName(java.lang.String prop)
Convert property name to read access method name.

Specified by:
toReadAccessMethodName in interface NameConverter
Parameters:
prop - property name in initial-upper camelcase form
Returns:
read access method name

toWriteAccessMethodName

public java.lang.String toWriteAccessMethodName(java.lang.String prop)
Convert property name to write access method name.

Specified by:
toWriteAccessMethodName in interface NameConverter
Parameters:
prop - property name in initial-upper camelcase form
Returns:
write access method name

toTestAccessMethodName

public java.lang.String toTestAccessMethodName(java.lang.String prop)
Convert property name to write access method name.

Specified by:
toTestAccessMethodName in interface NameConverter
Parameters:
prop - property name in initial-upper camelcase form
Returns:
write access method name

toIfSetAccessMethodName

public java.lang.String toIfSetAccessMethodName(java.lang.String prop)
Convert property name to if set access method name (for value in set of alternatives).

Specified by:
toIfSetAccessMethodName in interface NameConverter
Parameters:
prop - property name in initial-upper camelcase form
Returns:
if set access method name


Project Web Site