Package org.jibx.schema.codegen.extend
Class DefaultNameConverter
- java.lang.Object
-
- 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
Fields Modifier and Type Field Description private booleanm_camelCaseCamelcase field names flag.private java.lang.Stringm_fieldPrefixPrefix used for normal field names (non-null, may be empty).private java.lang.Stringm_fieldSuffixSuffix used for normal field names (non-null, may be empty).private java.lang.Stringm_staticPrefixPrefix used for static field names (non-null, may be empty).private java.lang.Stringm_staticSuffixSuffix used for static field names (non-null, may be empty).private java.lang.String[]m_stripPrefixesSet of XML name prefixes to be discarded in conversions.private java.lang.String[]m_stripSuffixesSet of XML name suffixes to be discarded in conversions.private booleanm_underscoreUse underscores in field names flag (as substitute for special characters, and to split words).private booleanm_upperInitialUppercase initial letter of field names flag.private java.util.ArrayListm_wordListReusable array for words in name.
-
Constructor Summary
Constructors Constructor Description DefaultNameConverter()Constructor.DefaultNameConverter(DefaultNameConverter base)Copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringbuildFieldName(java.lang.String base, java.lang.String prefix, java.lang.String suffix)Build a field name using supplied prefix and/or suffix.java.lang.Stringdepluralize(java.lang.String name)Convert potentially plural name to singular form.java.lang.StringgetFieldPrefix()Get prefix text for normal field names.java.lang.StringgetFieldSuffix()Get suffix text for normal field names.java.lang.StringgetStaticPrefix()Get prefix text for static field names.java.lang.StringgetStaticSuffix()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 booleanisConversionNeeded(java.lang.String name)Check if a name needs to be converted from XML form due to invalid characters or embedded underscores.java.lang.Stringpluralize(java.lang.String name)Convert singular name to plural form.voidsetFieldPrefix(java.lang.String pref)Set prefix text for normal field names.voidsetFieldSuffix(java.lang.String suff)Set suffix text for normal field names.voidsetStaticPrefix(java.lang.String pref)Set prefix text for static field names.voidsetStaticSuffix(java.lang.String suff)Set suffix text for static field names.voidsetStripPrefixes(java.lang.String[] prefixes)Set the prefixes to be stripped when converting XML names.voidsetStripSuffixes(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.StringtoBaseName(java.lang.String xname)Convert an XML name to a Java value base name.java.lang.StringtoConstantName(java.lang.String text)Convert text to constant name.java.lang.StringtoFieldName(java.lang.String base)Convert base name to normal field name.java.lang.StringtoIfSetAccessMethodName(java.lang.String prop)Convert property name to if set access method name (for value in set of alternatives).java.lang.StringtoJavaClassName(java.lang.String name)Convert a base name to a legal Java class name.java.lang.StringtoPropertyName(java.lang.String base)Convert base name to property name (used for all method names).java.lang.StringtoReadAccessMethodName(java.lang.String prop)Convert property name to read access method name.java.lang.StringtoStaticFieldName(java.lang.String base)Convert base name to static field name.java.lang.StringtoTestAccessMethodName(java.lang.String prop)Convert property name to write access method name.java.lang.StringtoWriteAccessMethodName(java.lang.String prop)Convert property name to write access method name.java.lang.StringtrimXName(java.lang.String xname)Trim specified prefixes and/or suffixes from an XML name.
-
-
-
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:
pluralizein interfaceNameConverter- 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:
depluralizein interfaceNameConverter- 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:
trimXNamein interfaceNameConverter- 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:
splitXMLWordsin interfaceNameConverter- 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:
trueif invalid name,falseif 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 injava.lang, to avoid conflicts with the import handling in generated code.- Specified by:
toJavaClassNamein interfaceNameConverter- 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:
toBaseNamein interfaceNameConverter- 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:
toConstantNamein interfaceNameConverter- 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 nameprefix- text to be added at start of namesuffix- 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:
toFieldNamein interfaceNameConverter- 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:
toStaticFieldNamein interfaceNameConverter- 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:
toPropertyNamein interfaceNameConverter- 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:
toReadAccessMethodNamein interfaceNameConverter- 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:
toWriteAccessMethodNamein interfaceNameConverter- 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:
toTestAccessMethodNamein interfaceNameConverter- 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:
toIfSetAccessMethodNamein interfaceNameConverter- Parameters:
prop- property name in initial-upper camelcase form- Returns:
- if set access method name
-
-