code: public String getSetterMethodName()
    {
  
      if (null == m_setterString)
      {
        if (m_foreignAttr == this)
        {
          return S_FOREIGNATTR_SETTER;
        }
        else if (m_name.equals("*"))
        {
          m_setterString = "addLiteralResultAttribute";
  
          return m_setterString;
        }
  
        StringBuffer outBuf = new StringBuffer();
  
        outBuf.append("set");
  
        if ((m_namespace != null)
                && m_namespace.equals(Constants.S_XMLNAMESPACEURI))
        {
          outBuf.append("Xml");
        }
  
        int n = m_name.length();
  
        for (int i = 0; i < n; i++)
        {
          char c = m_name.charAt(i);
  
          if ('-' == c)
          {
            i++;
  
            c = m_name.charAt(i);
            c = Character.toUpperCase(c);
          }
          else if (0 == i)
          {
            c = Character.toUpperCase(c);
          }
  
          outBuf.append(c);
        }
  
        m_setterString = outBuf.toString();
      }
  
      return m_setterString;
    }
docs: Return a string that should represent the setter method.
  The setter method name will be created algorithmically the
  first time this method is accessed, and then cached for return
  by subsequent invocations of this method.
  
  @return String that should represent the setter method which which
  may be used on objects to set a value that represents this attribute,
  of null if no setter method should be called.