code: public Set<String> getAccountAttributes() throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException  {
          if (info == null) {
              getRegistrationInfo();
          }
          Map<String, String> attributes = info.getAttributes();
          if (attributes != null) {
              return Collections.unmodifiableSet(attributes.keySet());
          } else {
              return Collections.emptySet();
          }
      }
docs: Returns an unmodifiable collection of the names of the required account attributes.
  All attributes must be set when creating new accounts. The standard set of possible
  attributes are as follows: <ul>
  <li>name -- the user's name.
  <li>first -- the user's first name.
  <li>last -- the user's last name.
  <li>email -- the user's email address.
  <li>city -- the user's city.
  <li>state -- the user's state.
  <li>zip -- the user's ZIP code.
  <li>phone -- the user's phone number.
  <li>url -- the user's website.
  <li>date -- the date the registration took place.
  <li>misc -- other miscellaneous information to associate with the account.
  <li>text -- textual information to associate with the account.
  <li>remove -- empty flag to remove account.
  </ul><p>
  
  Typically, servers require no attributes when creating new accounts, or just
  the user's email address.
  
  @return the required account attributes.
  @throws XMPPErrorException
  @throws NoResponseException
  @throws NotConnectedException
  @throws InterruptedException