]> git.mxchange.org Git - addressbook-war.git/blobdiff - src/java/org/mxchange/addressbook/beans/addressbook/AddressbookWebBean.java
seperated user init and method invocation
[addressbook-war.git] / src / java / org / mxchange / addressbook / beans / addressbook / AddressbookWebBean.java
index 1c66acdff2feecc17a247aef388b5b1828586864..411449fcbc688688a9d14f0689ab9575b7f8be2d 100644 (file)
@@ -65,6 +65,11 @@ public class AddressbookWebBean implements AddressbookWebController {
         */
        private static final long serialVersionUID = 185_781_756_712_969L;
 
+       /**
+        * Address book instance
+        */
+       private Addressbook addressbook;
+
        /**
         * Remote address book bean
         */
@@ -144,16 +149,16 @@ public class AddressbookWebBean implements AddressbookWebController {
                }
 
                // Create address book instance with name
-               Addressbook addressbook = new UserAddressbook(this.getAddressbookName());
+               Addressbook book = new UserAddressbook(this.getAddressbookName());
 
                // Set default status to UNLOCKED and owner
-               addressbook.setAddressbookStatus(AddressbokStatus.UNLOCKED);
-               addressbook.setAddressbookUser(this.loginController.getLoggedInUser());
-               addressbook.setAddressbookCreated(new GregorianCalendar());
+               book.setAddressbookStatus(AddressbokStatus.UNLOCKED);
+               book.setAddressbookUser(this.loginController.getLoggedInUser());
+               book.setAddressbookCreated(new GregorianCalendar());
 
                try {
                        // Register this address book
-                       Addressbook updatedAddressbook = this.addressbookBean.createAddressbook(addressbook);
+                       Addressbook updatedAddressbook = this.addressbookBean.createAddressbook(book);
 
                        // Remove name
                        this.setAddressbookName(null);
@@ -174,29 +179,32 @@ public class AddressbookWebBean implements AddressbookWebController {
                // event should not be null
                if (null == event) {
                        // Throw NPE
-                       throw new NullPointerException("event is null");
+                       throw new NullPointerException("event is null"); //NOI18N
                } else if (event.getAddressbook() == null) {
                        // Throw NPE again
-                       throw new NullPointerException("event.addressbook is null");
+                       throw new NullPointerException("event.addressbook is null"); //NOI18N
                } else if (event.getAddressbook().getAddressbookId() == null) {
                        // And again a NPE
-                       throw new NullPointerException("event.addressbook.addressbookId is null");
+                       throw new NullPointerException("event.addressbook.addressbookId is null"); //NOI18N
                } else if (event.getAddressbook().getAddressbookId() < 1) {
                        // Invalid id number
-                       throw new IllegalArgumentException("Address book instance " + event.getAddressbook() + " has invalid id number: " + event.getAddressbook().getAddressbookId());
+                       throw new IllegalArgumentException(MessageFormat.format("Address book instance {0} has invalid id number: {1}", event.getAddressbook(), event.getAddressbook().getAddressbookId())); //NOI18N
                } else if (event.getAddressbook().getAddressbookUser() == null) {
                        // One more NPE ...
-                       throw new NullPointerException("event.addressbook.addressbookUser is null");
+                       throw new NullPointerException("event.addressbook.addressbookUser is null"); //NOI18N
                }
 
                // Get address book instance
-               Addressbook addressbook = event.getAddressbook();
+               Addressbook book = event.getAddressbook();
 
                // Set address book data
-               this.setAddressbookId(addressbook.getAddressbookId());
-               this.setAddressbookName(addressbook.getAddressbookName());
-               this.setAddressbookUser(addressbook.getAddressbookUser());
-               this.setAddressbookCreated(addressbook.getAddressbookCreated());
+               this.setAddressbookId(book.getAddressbookId());
+               this.setAddressbookName(book.getAddressbookName());
+               this.setAddressbookUser(book.getAddressbookUser());
+               this.setAddressbookCreated(book.getAddressbookCreated());
+
+               // And instance ...
+               this.setAddressbook(book);
        }
 
        @Override
@@ -204,13 +212,13 @@ public class AddressbookWebBean implements AddressbookWebController {
                // Is the user logged in?
                if (null == event) {
                        // Is null
-                       throw new NullPointerException("event is null");
+                       throw new NullPointerException("event is null"); //NOI18N
                } else if (event.getUser() == null) {
                        // user is null
-                       throw new NullPointerException("event.user is null");
+                       throw new NullPointerException("event.user is null"); //NOI18N
                } else if (!event.getUser().equals(this.loginController.getLoggedInUser())) {
                        // Not matching
-                       throw new IllegalStateException("event.user and loginController.loggedInUser don't match.");
+                       throw new IllegalStateException("event.user and loginController.loggedInUser don't match."); //NOI18N
                } else if (!this.loginController.isUserLoggedIn()) {
                        // Not logged in
                        throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
@@ -260,6 +268,18 @@ public class AddressbookWebBean implements AddressbookWebController {
                return Collections.unmodifiableList(this.sharedAddressbooks);
        }
 
+       @Override
+       public List<User> allUsersNotSharing () {
+               // 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
+               }
+
+               // Call EJB
+               return this.addressbookBean.allUsersNotSharing(this.loginController.getLoggedInUser(), this.getAddressbook());
+       }
+
        @Override
        public Integer countAllUserSharedAddressbooks (final User user) {
                // Is there cache?
@@ -278,6 +298,16 @@ public class AddressbookWebBean implements AddressbookWebController {
                return count;
        }
 
+       @Override
+       public Addressbook getAddressbook () {
+               return this.addressbook;
+       }
+
+       @Override
+       public void setAddressbook (final Addressbook addressbook) {
+               this.addressbook = addressbook;
+       }
+
        @Override
        public Calendar getAddressbookCreated () {
                return this.addressbookCreated;
@@ -360,9 +390,9 @@ public class AddressbookWebBean implements AddressbookWebController {
                boolean isFound = false;
 
                // Check all entries
-               for (final Addressbook addressbook : this.usersAddressbooks) {
+               for (final Addressbook book : this.usersAddressbooks) {
                        // Is the name same?
-                       if (addressbook.getAddressbookName().equals(addressbookName)) {
+                       if (book.getAddressbookName().equals(addressbookName)) {
                                // Found a match
                                isFound = true;
                                break;
@@ -391,11 +421,47 @@ public class AddressbookWebBean implements AddressbookWebController {
                return Objects.equals(this.getAddressbookUser(), this.loginController.getLoggedInUser());
        }
 
+       @Override
+       public String startSharing () {
+               // Check conditions
+               if (!this.loginController.isUserLoggedIn()) {
+                       // No, then throw exception
+                       throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
+               } else if (this.getAddressbookUser() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("this.addressbookUser is null"); //NOI18N
+               } else if (this.getAddressbookUser().getUserId() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("this.addressbookUser.userId is null"); //NOI18N
+               } else if (this.getAddressbookUser().getUserId() < 1) {
+                       // Invalid id number
+                       throw new IllegalStateException(MessageFormat.format("this.addressbookUser.userId={0} is invalid", this.getAddressbookUser().getUserId())); //NOI18N
+               } else if (Objects.equals(this.getAddressbookUser(), this.loginController.getLoggedInUser())) {
+                       // Sharing with yourself!
+                       throw new IllegalStateException("User tries to share with himself."); //NOI18N
+               } else if (this.getAddressbook() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("this.addressbook is null"); //NOI18N
+               } else if (this.getAddressbook().getAddressbookId() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("this.addressbook.addressbookId is null"); //NOI18N
+               } else if (this.getAddressbook().getAddressbookId() < 1) {
+                       // Invalid id number
+                       throw new IllegalArgumentException(MessageFormat.format("this.addressbook.addressbookId={0} is invalid.", this.getAddressbook().getAddressbookId())); //NOI18N
+               }
+
+               // TODO Unfinished
+               return null;
+       }
+
        /**
         * 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.getUsersList(this.loginController.getLoggedInUser());
+               this.usersAddressbooks = this.addressbookBean.getUsersAddressbookList(user);
        }
 }