X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Faddressbook%2Fbeans%2Faddressbook%2FAddressbookWebBean.java;h=c5e0566ac8ba4e1bf6f517abbfa45c2acb8fe873;hb=34654c8de41131dc7b69c37bd313a08557d51da5;hp=7424e6fb2be038c4f395ec5f34b24bc45cb51c46;hpb=a1d2b5fb175a6ea37b3cffbf23126cd2bf9b71fa;p=addressbook-war.git diff --git a/src/java/org/mxchange/addressbook/beans/addressbook/AddressbookWebBean.java b/src/java/org/mxchange/addressbook/beans/addressbook/AddressbookWebBean.java index 7424e6fb..c5e0566a 100644 --- a/src/java/org/mxchange/addressbook/beans/addressbook/AddressbookWebBean.java +++ b/src/java/org/mxchange/addressbook/beans/addressbook/AddressbookWebBean.java @@ -22,6 +22,7 @@ import java.util.Calendar; import java.util.Collections; import java.util.GregorianCalendar; import java.util.List; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import javax.annotation.PostConstruct; @@ -40,7 +41,6 @@ import org.mxchange.addressbook.model.addressbook.Addressbook; import org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote; import org.mxchange.addressbook.model.addressbook.UserAddressbook; import org.mxchange.addressbook.model.addressbook.entry.AddressbookEntry; -import org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook; import org.mxchange.addressbook.model.addressbook.status.AddressbokStatus; import org.mxchange.jusercore.events.login.UserLoggedInEvent; import org.mxchange.jusercore.model.user.User; @@ -54,11 +54,21 @@ import org.mxchange.jusercore.model.user.User; @SessionScoped public class AddressbookWebBean implements AddressbookWebController { + /** + * Map for count of user's shared addresses + */ + private static ConcurrentMap countSharesList; + /** * Serial number */ private static final long serialVersionUID = 185_781_756_712_969L; + /** + * Address book instance + */ + private Addressbook addressbook; + /** * Remote address book bean */ @@ -84,22 +94,12 @@ public class AddressbookWebBean implements AddressbookWebController { */ private User addressbookUser; - /** - * Map for count of user's shared addresses - */ - private static ConcurrentMap countSharesList; - /** * Login controller */ @Inject private UserLoginWebController loginController; - /** - * A list of all user's shared (with others) address books - */ - private List sharedAddressbooks; - /** * A list of all user's address books */ @@ -143,16 +143,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); @@ -173,29 +173,53 @@ 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 + public void afterLoginEvent (final @Observes UserLoggedInEvent event) { + // Is the user logged in? + if (null == 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"); //NOI18N + } else if (!event.getUser().equals(this.loginController.getLoggedInUser())) { + // Not matching + 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 + } + + // Init user's address book list + this.initAddressbookList(); } @Override @@ -228,14 +252,15 @@ public class AddressbookWebBean implements AddressbookWebController { } @Override - public List allShares () { + public List 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 } - return Collections.unmodifiableList(this.sharedAddressbooks); + // Call EJB + return this.addressbookBean.allUsersNotSharing(this.loginController.getLoggedInUser(), this.getAddressbook()); } @Override @@ -256,6 +281,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; @@ -338,9 +373,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; @@ -352,31 +387,31 @@ public class AddressbookWebBean implements AddressbookWebController { } @Override - public void afterLoginEvent (final @Observes UserLoggedInEvent event) { + public boolean isOtherAddressbook () { + // Just call the other method and invert it + return (!this.isOwnAddressbook()); + } + + @Override + public boolean isOwnAddressbook () { // Is the user logged in? - if (null == event) { - // Is null - throw new NullPointerException("event is null"); - } else if (event.getUser() == null) { - // user is null - throw new NullPointerException("event.user is null"); - } else if (!event.getUser().equals(this.loginController.getLoggedInUser())) { - // Not matching - throw new IllegalStateException("event.user and loginController.loggedInUser don't match."); - } else if (!this.loginController.isUserLoggedIn()) { - // Not logged in - throw new FaceletException("This method can only be called as logged-in user."); //NOI18N + if (!this.loginController.isUserLoggedIn()) { + // No, then no own address book + return false; } - // Init user's address book list - this.initAddressbookList(); + // 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.getUsersList(this.loginController.getLoggedInUser()); + this.usersAddressbooks = this.addressbookBean.getUsersAddressbookList(user); } }