if (prefix != null && name.startsWith(prefix))
if (prefix != null && name.startsWith(prefix) && name.length() > prefix.length() && Character.isUpperCase(name.charAt(prefix.length())))
  public String format(String name, char separator, String prefix, boolean includePrefix)  {    List parsedName = new ArrayList();    if (prefix != null && name.startsWith(prefix))    {      name = name.substring(prefix.length());      if (includePrefix)      {        parsedName = parseName(prefix, '_');      }    }    if (name.length() != 0) parsedName.addAll(parseName(name, '_'));    StringBuffer result = new StringBuffer();    for (Iterator nameIter = parsedName.iterator(); nameIter.hasNext(); )    {      String nameComponent = (String)nameIter.next();      result.append(nameComponent);      if (nameIter.hasNext() && nameComponent.length() > 1)      {        result.append(separator);      }    }    return result.length() == 0 && prefix != null ? prefix : result.toString();  }