- removed export of basic company data, one day, an other approach rather than
"single entity" export will maybe come
Signed-off-by: Roland Häder <roland@mxchange.org>
import javax.inject.Named;
import org.mxchange.jcontactsbusiness.events.basicdata.added.AdminAddedBusinessBasicDataEvent;
import org.mxchange.jcontactsbusiness.events.basicdata.added.ObservableAdminAddedBusinessBasicDataEvent;
import javax.inject.Named;
import org.mxchange.jcontactsbusiness.events.basicdata.added.AdminAddedBusinessBasicDataEvent;
import org.mxchange.jcontactsbusiness.events.basicdata.added.ObservableAdminAddedBusinessBasicDataEvent;
-import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicCompanyDataAlreadyAddedException;
import org.mxchange.jcontactsbusiness.model.basicdata.AdminBasicCompanyDataSessionBeanRemote;
import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
import org.mxchange.jcontactsbusiness.model.basicdata.CompanyBasicData;
import org.mxchange.jcontactsbusiness.model.basicdata.AdminBasicCompanyDataSessionBeanRemote;
import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
import org.mxchange.jcontactsbusiness.model.basicdata.CompanyBasicData;
// Fire event
this.businessDataAddedEvent.fire(new AdminAddedBusinessBasicDataEvent(updatedBasicData));
// Fire event
this.businessDataAddedEvent.fire(new AdminAddedBusinessBasicDataEvent(updatedBasicData));
- } catch (final BusinessDataAlreadyAddedException e) {
+ } catch (final BasicCompanyDataAlreadyAddedException e) {
// Does already exist
throw new FacesException(e);
}
// Does already exist
throw new FacesException(e);
}
import fish.payara.cdi.jsr107.impl.NamedCache;
import java.text.MessageFormat;
import fish.payara.cdi.jsr107.impl.NamedCache;
import java.text.MessageFormat;
-import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
/**
* A list of all selectable contacts
*/
/**
* A list of all selectable contacts
*/
- private List<Contact> selectableContacts;
+ @Inject
+ @NamedCache (cacheName = "selectableContactsCache")
+ private Cache<Long, Contact> selectableContactsCache;
this.uniqueAddContact(event.getAddedContact());
// Add to selectable contacts
this.uniqueAddContact(event.getAddedContact());
// Add to selectable contacts
- this.selectableContacts.add(event.getAddedContact());
+ this.selectableContactsCache.put(event.getAddedContact().getContactId(), event.getAddedContact());
}
// Remove contact from list available contacts list
}
// Remove contact from list available contacts list
- this.selectableContacts.remove(event.getLinkedUser().getUserContact());
+ this.selectableContactsCache.remove(event.getLinkedUser().getUserContact().getContactId());
// Clear all data
this.clear();
// Clear all data
this.clear();
*/
@PostConstruct
public void init () {
*/
@PostConstruct
public void init () {
- // Get all contacts
- final List<Contact> selectable = new LinkedList<>();
-
// Is cache there?
if (!this.contactsCache.iterator().hasNext()) {
// Get whole list
// Is cache there?
if (!this.contactsCache.iterator().hasNext()) {
// Get whole list
- List<Contact> list = this.contactBean.allContacts();
+ final List<Contact> contacts = this.contactBean.allContacts();
- for (final Iterator<Contact> iterator = list.iterator(); iterator.hasNext();) {
- // Get next element
- final Contact next = iterator.next();
-
+ for (final Contact contact : contacts) {
- this.contactsCache.put(next.getContactId(), next);
- this.emailAddressCache.put(next.getContactId(), next.getContactEmailAddress());
- selectable.add(next);
+ this.contactsCache.put(contact.getContactId(), contact);
+ this.emailAddressCache.put(contact.getContactId(), contact.getContactEmailAddress());
+ } else if (this.selectableContactsCache.iterator().hasNext()) {
+ // Has already entries, avoid executing below code
+ return;
- List<User> allUsers = this.userController.allUsers();
+ final List<User> allUsers = this.userController.allUsers();
- // Get iterator
- Iterator<Contact> iterator = selectable.iterator();
+ // Get iterator from contacts cache
+ final Iterator<Cache.Entry<Long, Contact>> iterator = this.contactsCache.iterator();
+ // Loop through all contacts
while (iterator.hasNext()) {
// Get next element
while (iterator.hasNext()) {
// Get next element
- Contact next = iterator.next();
-
- // Get iterator
- Iterator<User> userIterator = allUsers.iterator();
+ final Cache.Entry<Long, Contact> next = iterator.next();
- // Loop through all users
- while (userIterator.hasNext()) {
- // Get user instance
- User nextUser = userIterator.next();
+ // Default is not found
+ boolean isFound = false;
- // Is contact same?
- if (Objects.equals(next, nextUser.getUserContact())) {
- // Found same
- iterator.remove();
+ // User list is not empty, check each entry, if contact is found
+ for (final User user : allUsers) {
+ // Is the contact the same?
+ if (Objects.equals(user.getUserContact(), next.getValue())) {
+ // Found one
+ isFound = true;
- // Set contact list
- this.selectableContacts = selectable;
+ // Is contact not found?
+ if (!isFound) {
+ // Add it as selectable
+ this.selectableContactsCache.put(next.getKey(), next.getValue());
+ }
+ }
* @return A list of all selectable contacts
*/
public List<Contact> selectableContacts () {
* @return A list of all selectable contacts
*/
public List<Contact> selectableContacts () {
- return Collections.unmodifiableList(this.selectableContacts);
+ // Init list
+ final List<Contact> selectableContacts = new LinkedList<>();
+
+ // Get iterator from cache
+ final Iterator<Cache.Entry<Long, Contact>> iterator = this.contactsCache.iterator();
+
+ // Loop through all contacts
+ while (iterator.hasNext()) {
+ // Get next element
+ final Cache.Entry<Long, Contact> next = iterator.next();
+
+ // Add entry's value to list
+ selectableContacts.add(next.getValue());
+ }
+
+ // Return list
+ return selectableContacts;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataNotFoundException;
+import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicCompanyDataNotFoundException;
import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote;
import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote;
import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
} catch (final NumberFormatException ex) {
// Throw again
throw new ConverterException(ex);
} catch (final NumberFormatException ex) {
// Throw again
throw new ConverterException(ex);
- } catch (final BusinessDataNotFoundException ex) {
+ } catch (final BasicCompanyDataNotFoundException ex) {
// Debug message
// @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject(): Exception: {1} - Returning null ...", this.getClass().getSimpleName(), ex)); //NOI18N
}
// Debug message
// @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject(): Exception: {1} - Returning null ...", this.getClass().getSimpleName(), ex)); //NOI18N
}
ADMIN_MENU_BUSINESS_CONTACTS_TITLE=Geschaeftliche Kontakte
LINK_ADMIN_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE=Listet Stammdaten auf
ADMIN_MENU_BUSINESS_CONTACTS_TITLE=Geschaeftliche Kontakte
LINK_ADMIN_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE=Listet Stammdaten auf
-LINK_ADMIN_EXPORT_BASIC_COMPANY_DATA=Stammdaten exportieren
-LINK_ADMIN_EXPORT_BASIC_COMPANY_DATA_TITLE=Exportiert Stammdaten
PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
#@TODO Please fix German umlauts!
CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Auflisten von Stammdaten
PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Stammdaten auflisten
#@TODO Please fix German umlauts!
CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Auflisten von Stammdaten
ADMIN_MENU_BUSINESS_CONTACTS_TITLE=Business contacts
LINK_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE=Lists basic company data
ADMIN_MENU_BUSINESS_CONTACTS_TITLE=Business contacts
LINK_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE=Lists basic company data
-LINK_ADMIN_EXPORT_BASIC_COMPANY_DATA=Export basic company data
-LINK_ADMIN_EXPORT_BASIC_COMPANY_DATA_TITLE=Exports basic company data
PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Lists basic company data
ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=There are currently no basic company data in database.
PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Lists basic company data
ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=There are currently no basic company data in database.
<from-outcome>admin_list_basic_company_data</from-outcome>
<to-view-id>/admin/basic_company_data/admin_basic_company_data_list.xhtml</to-view-id>
</navigation-case>
<from-outcome>admin_list_basic_company_data</from-outcome>
<to-view-id>/admin/basic_company_data/admin_basic_company_data_list.xhtml</to-view-id>
</navigation-case>
- <navigation-case>
- <from-outcome>admin_export_basic_company_data</from-outcome>
- <to-view-id>/admin/basic_company_data/admin_basic_company_data_export.xhtml</to-view-id>
- </navigation-case>
<navigation-case>
<from-outcome>admin_list_branch_offices</from-outcome>
<to-view-id>/admin/branch_offices/admin_branch_offices_list.xhtml</to-view-id>
<navigation-case>
<from-outcome>admin_list_branch_offices</from-outcome>
<to-view-id>/admin/branch_offices/admin_branch_offices_list.xhtml</to-view-id>
<ul>
<li><h:link title="#{msg.LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE}" outcome="admin_list_basic_company_data" value="#{msg.LINK_ADMIN_LIST_BASIC_COMPANY_DATA}" /></li>
<ul>
<li><h:link title="#{msg.LINK_ADMIN_LIST_BASIC_COMPANY_DATA_TITLE}" outcome="admin_list_basic_company_data" value="#{msg.LINK_ADMIN_LIST_BASIC_COMPANY_DATA}" /></li>
- <li><h:link title="#{msg.LINK_ADMIN_EXPORT_BASIC_COMPANY_DATA_TITLE}" outcome="admin_export_basic_company_data" value="#{msg.LINK_ADMIN_EXPORT_BASIC_COMPANY_DATA}" /></li>
<li><h:link title="#{msg.LINK_ADMIN_LIST_BRANCH_OFFICES_TITLE}" outcome="admin_list_branch_offices" value="#{msg.LINK_ADMIN_LIST_BRANCH_OFFICES}" /></li>
</ul>
</ui:fragment>
<li><h:link title="#{msg.LINK_ADMIN_LIST_BRANCH_OFFICES_TITLE}" outcome="admin_list_branch_offices" value="#{msg.LINK_ADMIN_LIST_BRANCH_OFFICES}" /></li>
</ul>
</ui:fragment>