Class DefaultNameConverter

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

public class DefaultNameConverter extends Object implements NameConverter
Converter for working with Java names.
Author:
Dennis M. Sosnoski
  • Field Details

    • m_camelCase

      private boolean m_camelCase
      Camelcase field names flag.
    • m_fieldPrefix

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

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

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

      private 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 String[] m_stripPrefixes
      Set of XML name prefixes to be discarded in conversions.
    • m_stripSuffixes

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

      private ArrayList m_wordList
      Reusable array for words in name.
  • Constructor Details

    • DefaultNameConverter

      public DefaultNameConverter()
      Constructor.
    • DefaultNameConverter

      public DefaultNameConverter(DefaultNameConverter base)
      Copy constructor.
      Parameters:
      base - instance used to initialize settings
  • Method Details

    • pluralize

      public String pluralize(String name)
      Convert singular name to plural form.
      Specified by:
      pluralize in interface NameConverter
      Parameters:
      name - base name
      Returns:
      plural name
    • depluralize

      public String depluralize(String name)
      Convert potentially plural name to singular form.
      Specified by:
      depluralize in interface NameConverter
      Parameters:
      name - base name
      Returns:
      singularized name
    • getFieldPrefix

      public String getFieldPrefix()
      Get prefix text for normal field names.
      Returns:
      field prefix (non-null, may be empty)
    • setFieldPrefix

      public void setFieldPrefix(String pref)
      Set prefix text for normal field names.
      Parameters:
      pref - field prefix (non-null, may be empty)
    • getFieldSuffix

      public String getFieldSuffix()
      Get suffix text for normal field names.
      Returns:
      field suffix (non-null, may be empty)
    • setFieldSuffix

      public void setFieldSuffix(String suff)
      Set suffix text for normal field names.
      Parameters:
      suff - field suffix (non-null, may be empty)
    • getStaticPrefix

      public String getStaticPrefix()
      Get prefix text for static field names.
      Returns:
      field prefix (non-null, may be empty)
    • setStaticPrefix

      public void setStaticPrefix(String pref)
      Set prefix text for static field names.
      Parameters:
      pref - field prefix (non-null, may be empty)
    • getStaticSuffix

      public String getStaticSuffix()
      Get suffix text for static field names.
      Returns:
      field suffix (non-null, may be empty)
    • setStaticSuffix

      public void setStaticSuffix(String suff)
      Set suffix text for static field names.
      Parameters:
      suff - field suffix (non-null, may be empty)
    • getStripPrefixes

      public String[] getStripPrefixes()
      Get the prefixes to be stripped when converting XML names.
      Returns:
      prefixes
    • setStripPrefixes

      public void setStripPrefixes(String[] prefixes)
      Set the prefixes to be stripped when converting XML names.
      Parameters:
      prefixes -
    • getStripSuffixes

      public String[] getStripSuffixes()
      Get the suffixes to be stripped when converting XML names.
      Returns:
      suffixes
    • setStripSuffixes

      public void setStripSuffixes(String[] suffixes)
      Set the suffixes to be stripped when converting XML names.
      Parameters:
      suffixes -
    • trimXName

      public String trimXName(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 String[] splitXMLWords(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(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 String toJavaClassName(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 String toBaseName(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 String toConstantName(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 String buildFieldName(String base, String prefix, 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 String toFieldName(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 String toStaticFieldName(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 String toPropertyName(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 String toReadAccessMethodName(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 String toWriteAccessMethodName(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 String toTestAccessMethodName(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 String toIfSetAccessMethodName(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