+
+ @Override
+ public User getAddressbookUser () {
+ return this.addressbookUser;
+ }
+
+ @Override
+ public void setAddressbookUser (final User addressbookUser) {
+ this.addressbookUser = addressbookUser;
+ }
+
+ @Override
+ public boolean hasCreatedAddressbooks () {
+ // Is the user logged in?
+ if (!this.loginController.isUserLoggedIn()) {
+ // Not logged in
+ throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
+ }
+
+ // Check if the list is filled
+ return (!this.usersAddressbooks.isEmpty());
+ }
+
+ @PostConstruct
+ public void init () {
+ // Init list
+ this.usersAddressbooks = new ArrayList<>(0);
+
+ // Is the user logged-in?
+ if (this.loginController.isUserLoggedIn()) {
+ // Initialize list
+ this.initAddressbookList();
+ }
+
+ // TODO Initialize list from bean with just one call
+ //this.addressbookBean.getUserCountMap()
+ }
+
+ @Override
+ public boolean isAddressbookNameUsed (final String addressbookName) {
+ // Is it zero size?
+ if (null == addressbookName) {
+ // Is null
+ throw new NullPointerException("addressbookName is null"); //NOI18N
+ } else if (this.usersAddressbooks.isEmpty()) {
+ // Not found!
+ return false;
+ }
+
+ // Default is not found
+ boolean isFound = false;
+
+ // Check all entries
+ for (final Addressbook book : this.usersAddressbooks) {
+ // Is the name same?
+ if (book.getAddressbookName().equals(addressbookName)) {
+ // Found a match
+ isFound = true;
+ break;
+ }
+ }
+
+ // Return status
+ return isFound;
+ }
+
+ @Override
+ public boolean isOtherAddressbook () {
+ // Just call the other method and invert it
+ return (!this.isOwnAddressbook());
+ }
+
+ @Override
+ public boolean isOwnAddressbook () {
+ // Is the user logged in?
+ if (!this.loginController.isUserLoggedIn()) {
+ // No, then no own address book
+ return false;
+ }
+
+ // Is same user?
+ return Objects.equals(this.getAddressbookUser(), this.loginController.getLoggedInUser());
+ }
+
+ /**
+ * Initializes the user user's address book list
+ */
+ private void initAddressbookList () {
+ // Get user instance
+ User user = this.loginController.getLoggedInUser();
+
+ // Fill list with entries
+ this.usersAddressbooks = this.addressbookBean.getUsersAddressbookList(user);
+ }