import java.util.List;
import javax.ejb.Remote;
import org.mxchange.addressbook.exceptions.AddressbookNameAlreadyUsedException;
+import org.mxchange.addressbook.exceptions.AddressbookNotFoundException;
+import org.mxchange.addressbook.model.addressbook.entry.AddressbookEntry;
import org.mxchange.jusercore.model.user.User;
/**
@Remote
public interface AddressbookSessionBeanRemote extends Serializable {
+ /**
+ * 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.addressbook.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
+ */
+ public 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);
+
/**
* Some "getter" for a list of address books the logged-in user has created
* <p>
* <p>
* @return List of all address books
*/
- public List<Addressbook> getUsersList(final User loggedInUser);
+ List<Addressbook> getUsersList (final User loggedInUser);
/**
* Creates given address book by persisting it. A User instance must be set,
* <p>
* @return Updated address book instance
* <p>
- * @throws org.mxchange.addressbook.exceptions.AddressbookNameAlreadyUsedException If the address book's name has already been used by the user.
+ * @throws
+ * org.mxchange.addressbook.exceptions.AddressbookNameAlreadyUsedException
+ * If the address book's name has already been used by the user.
+ */
+ Addressbook createAddressbook (final Addressbook addressbook) throws AddressbookNameAlreadyUsedException;
+
+ /**
+ * Checks whether the given address book id is used (means available).
+ * <p>
+ * @param addressbookId Address book id to check
+ * <p>
+ * @return Whether the id is valid
*/
- public Addressbook createAddressbook(final Addressbook addressbook) throws AddressbookNameAlreadyUsedException;
+ boolean isAddressbookIdUsed (final Long addressbookId);
/**
* Checks if the given address book's name is already used by the user.
* <p>
* @return Whether the name has already been used by the user
*/
- public boolean isAddressbookNameUsed(final Addressbook addressbook);
+ boolean isAddressbookNameUsed (final Addressbook addressbook);
}