Package org.jibx.schema.codegen.extend
Class DefaultNameConverter
java.lang.Object
org.jibx.schema.codegen.extend.DefaultNameConverter
- All Implemented Interfaces:
NameConverter
Converter for working with Java names.
- Author:
- Dennis M. Sosnoski
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Camelcase field names flag.private String
Prefix used for normal field names (non-null
, may be empty).private String
Suffix used for normal field names (non-null
, may be empty).private String
Prefix used for static field names (non-null
, may be empty).private String
Suffix used for static field names (non-null
, may be empty).private String[]
Set of XML name prefixes to be discarded in conversions.private String[]
Set of XML name suffixes to be discarded in conversions.private boolean
Use underscores in field names flag (as substitute for special characters, and to split words).private boolean
Uppercase initial letter of field names flag.private ArrayList
Reusable array for words in name. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionprivate String
buildFieldName
(String base, String prefix, String suffix) Build a field name using supplied prefix and/or suffix.depluralize
(String name) Convert potentially plural name to singular form.Get prefix text for normal field names.Get suffix text for normal field names.Get prefix text for static field names.Get suffix text for static field names.String[]
Get the prefixes to be stripped when converting XML names.String[]
Get the suffixes to be stripped when converting XML names.protected static boolean
isConversionNeeded
(String name) Check if a name needs to be converted from XML form due to invalid characters or embedded underscores.Convert singular name to plural form.void
setFieldPrefix
(String pref) Set prefix text for normal field names.void
setFieldSuffix
(String suff) Set suffix text for normal field names.void
setStaticPrefix
(String pref) Set prefix text for static field names.void
setStaticSuffix
(String suff) Set suffix text for static field names.void
setStripPrefixes
(String[] prefixes) Set the prefixes to be stripped when converting XML names.void
setStripSuffixes
(String[] suffixes) Set the suffixes to be stripped when converting XML names.String[]
splitXMLWords
(String name) Split an XML name into words.toBaseName
(String xname) Convert an XML name to a Java value base name.toConstantName
(String text) Convert text to constant name.toFieldName
(String base) Convert base name to normal field name.Convert property name to if set access method name (for value in set of alternatives).toJavaClassName
(String name) Convert a base name to a legal Java class name.toPropertyName
(String base) Convert base name to property name (used for all method names).toReadAccessMethodName
(String prop) Convert property name to read access method name.toStaticFieldName
(String base) Convert base name to static field name.toTestAccessMethodName
(String prop) Convert property name to write access method name.Convert property name to write access method name.Trim specified prefixes and/or suffixes from an XML name.
-
Field Details
-
m_camelCase
private boolean m_camelCaseCamelcase field names flag. -
m_fieldPrefix
Prefix used for normal field names (non-null
, may be empty). -
m_fieldSuffix
Suffix used for normal field names (non-null
, may be empty). -
m_staticPrefix
Prefix used for static field names (non-null
, may be empty). -
m_staticSuffix
Suffix used for static field names (non-null
, may be empty). -
m_underscore
private boolean m_underscoreUse underscores in field names flag (as substitute for special characters, and to split words). -
m_upperInitial
private boolean m_upperInitialUppercase initial letter of field names flag. -
m_stripPrefixes
Set of XML name prefixes to be discarded in conversions. -
m_stripSuffixes
Set of XML name suffixes to be discarded in conversions. -
m_wordList
Reusable array for words in name.
-
-
Constructor Details
-
DefaultNameConverter
public DefaultNameConverter()Constructor. -
DefaultNameConverter
Copy constructor.- Parameters:
base
- instance used to initialize settings
-
-
Method Details
-
pluralize
Convert singular name to plural form.- Specified by:
pluralize
in interfaceNameConverter
- Parameters:
name
- base name- Returns:
- plural name
-
depluralize
Convert potentially plural name to singular form.- Specified by:
depluralize
in interfaceNameConverter
- Parameters:
name
- base name- Returns:
- singularized name
-
getFieldPrefix
Get prefix text for normal field names.- Returns:
- field prefix (non-
null
, may be empty)
-
setFieldPrefix
Set prefix text for normal field names.- Parameters:
pref
- field prefix (non-null
, may be empty)
-
getFieldSuffix
Get suffix text for normal field names.- Returns:
- field suffix (non-
null
, may be empty)
-
setFieldSuffix
Set suffix text for normal field names.- Parameters:
suff
- field suffix (non-null
, may be empty)
-
getStaticPrefix
Get prefix text for static field names.- Returns:
- field prefix (non-
null
, may be empty)
-
setStaticPrefix
Set prefix text for static field names.- Parameters:
pref
- field prefix (non-null
, may be empty)
-
getStaticSuffix
Get suffix text for static field names.- Returns:
- field suffix (non-
null
, may be empty)
-
setStaticSuffix
Set suffix text for static field names.- Parameters:
suff
- field suffix (non-null
, may be empty)
-
getStripPrefixes
Get the prefixes to be stripped when converting XML names.- Returns:
- prefixes
-
setStripPrefixes
Set the prefixes to be stripped when converting XML names.- Parameters:
prefixes
-
-
getStripSuffixes
Get the suffixes to be stripped when converting XML names.- Returns:
- suffixes
-
setStripSuffixes
Set the suffixes to be stripped when converting XML names.- Parameters:
suffixes
-
-
trimXName
Trim specified prefixes and/or suffixes from an XML name.- Specified by:
trimXName
in interfaceNameConverter
- Parameters:
xname
- XML name- Returns:
- trimmed name, with specified prefixes and/or suffixes removed
-
splitXMLWords
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 interfaceNameConverter
- Parameters:
name
-- Returns:
- array of words
-
isConversionNeeded
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
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:
toJavaClassName
in interfaceNameConverter
- Parameters:
name
- base name- Returns:
- converted name
-
toBaseName
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 interfaceNameConverter
- Parameters:
xname
- XML name- Returns:
- converted name
-
toConstantName
Convert text to constant name. The returned name is guaranteed not to match a Java keyword.- Specified by:
toConstantName
in interfaceNameConverter
- Parameters:
text
- raw text to be converted- Returns:
- constant name
-
buildFieldName
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
Convert base name to normal field name. The returned name is guaranteed not to match a Java keyword.- Specified by:
toFieldName
in interfaceNameConverter
- Parameters:
base
- normalized camelcase base name- Returns:
- field name
-
toStaticFieldName
Convert base name to static field name. The returned name is guaranteed not to match a Java keyword.- Specified by:
toStaticFieldName
in interfaceNameConverter
- Parameters:
base
- normalized camelcase base name- Returns:
- field name
-
toPropertyName
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 interfaceNameConverter
- Parameters:
base
- normalized camelcase base name- Returns:
- property name in initial-upper camelcase form
-
toReadAccessMethodName
Convert property name to read access method name.- Specified by:
toReadAccessMethodName
in interfaceNameConverter
- Parameters:
prop
- property name in initial-upper camelcase form- Returns:
- read access method name
-
toWriteAccessMethodName
Convert property name to write access method name.- Specified by:
toWriteAccessMethodName
in interfaceNameConverter
- Parameters:
prop
- property name in initial-upper camelcase form- Returns:
- write access method name
-
toTestAccessMethodName
Convert property name to write access method name.- Specified by:
toTestAccessMethodName
in interfaceNameConverter
- Parameters:
prop
- property name in initial-upper camelcase form- Returns:
- write access method name
-
toIfSetAccessMethodName
Convert property name to if set access method name (for value in set of alternatives).- Specified by:
toIfSetAccessMethodName
in interfaceNameConverter
- Parameters:
prop
- property name in initial-upper camelcase form- Returns:
- if set access method name
-