+ /**
+ * Retrieves a list of all users this user is not sharing the given address
+ * book with.
+ * <p>
+ * @param user User instance
+ * @param addressbook Address book instance
+ * <p>
+ * @return List of users
+ */
+ List<User> allUsersNotSharing (final User user, final Addressbook addressbook);
+
+ /**
+ * Count all shared address books by given user
+ * <p>
+ * @param user User instance
+ * <p>
+ * @return Count of all user's shared address books
+ */
+ Integer countAllUserSharedAddressbooks (final User user);
+
+ /**
+ * Some getter for an address book instance from given id number. If the
+ * address book is not found, an exception is thrown.
+ * <p>
+ * @param addressbookId Id number for address book instance
+ * <p>
+ * @return Address book instance
+ * <p>
+ * @throws org.mxchange.jaddressbookcore.exceptions.AddressbookNotFoundException
+ * If the address book cannot be found by given id number
+ * @throws NullPointerException If addressbookId is null
+ * @throws IllegalArgumentException If the id number is below 1
+ */
+ Addressbook getAddressbookById (final Long addressbookId) throws AddressbookNotFoundException;
+
+ /**
+ * Returns a list of all entries of given address book, whether the assigned
+ * user is the "owner" or "sharer" of the entry.
+ * <p>
+ * @param addressbook Address book instance
+ * <p>
+ * @return List of all entries
+ */
+ List<AddressbookEntry> allEntries (final Addressbook addressbook);
+