code: public void preApproveAndCreateEntry(BareJid user, String name, String[] groups) throws NotLoggedInException, NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException, FeatureNotSupportedException {
          preApprove(user);
          createItemAndRequestSubscription(user, name, groups);
      }
docs: Creates a new pre-approved roster entry and presence subscription. The server will
  asynchronously update the roster with the subscription status.
  
  @param user   the user. (e.g. johndoe@jabber.org)
  @param name   the nickname of the user.
  @param groups the list of group names the entry will belong to, or <tt>null</tt> if the
  the roster entry won't belong to a group.
  @throws NoResponseException if there was no response from the server.
  @throws XMPPErrorException if an XMPP exception occurs.
  @throws NotLoggedInException if not logged in.
  @throws NotConnectedException
  @throws InterruptedException
  @throws FeatureNotSupportedException if pre-approving is not supported.
  @since 4.2