public RosterItem createRosterItem(JID user, boolean push, boolean persistent)
            throws UserAlreadyExistsException, SharedGroupException {
        return createRosterItem(user, null, null, push, persistent);
    }
Create a new item to the roster. Roster items may not be created that contain the same user
address as an existing item.

@param user       The item to add to the roster.
@param push       True if the new item must be pushed to the user.
@param persistent True if the new roster item should be persisted to the DB.
@return the roster item
@throws UserAlreadyExistsException if the user is already in the roster
@throws SharedGroupException if the group is a shared group
xmppserver/src/main/java/org/jivesoftware/openfire/roster/Roster.java