import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import org.mxchange.addressbook.manager.contact.AddressbookContactManager;
import org.mxchange.addressbook.manager.contact.ManageableContactAddressbook;
import org.mxchange.addressbook.menu.Menu;
import org.mxchange.jcore.client.BaseClient;
import org.mxchange.jcore.client.Client;
+import org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal;
/**
* A general addressbook client
*/
private final Map<String, Menu> menus;
+ /**
+ * Logger instance
+ */
+ private LoggerBeanLocal logger;
+
/**
* No instances can be created of this class
*/
protected BaseAddressbookClient () {
// Init menu map
this.menus = new HashMap<>(10);
+
+ // Try it
+ try {
+ // Get context
+ Context context = new InitialContext();
+
+ // Lookup logger
+ this.logger = (LoggerBeanLocal) context.lookup("java:global/jcore-logger-ejb/logger!org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal");
+ } catch (final NamingException ex) {
+ // Continue to throw
+ throw new RuntimeException(ex);
+ }
}
/**
*/
protected void initContactManager () throws SQLException {
// Trace message
- this.getLogger().trace("CALLED!"); //NOI18N
+ this.getLogger().logTrace("CALLED!"); //NOI18N
// Debug message
- this.getLogger().debug("Initializing contact manager ..."); //NOI18N
+ this.getLogger().logDebug("Initializing contact manager ..."); //NOI18N
// Init contact manager with console client
// TODO Static initial amount of contacts
this.setManager(manager);
// Debug message
- this.getLogger().debug("Contact manager has been initialized."); //NOI18N
+ this.getLogger().logDebug("Contact manager has been initialized."); //NOI18N
// Trace message
- this.getLogger().trace("EXIT!"); //NOI18N
+ this.getLogger().logTrace("EXIT!"); //NOI18N
}
/**
*/
protected void showMenu (final String menuType) {
// Trace message
- this.getLogger().trace(MessageFormat.format("menuType={0} - CALLED!", menuType)); //NOI18N
+ this.getLogger().logTrace(MessageFormat.format("menuType={0} - CALLED!", menuType)); //NOI18N
// Get menu from type
Menu menu = this.getMenu(menuType);
menu.show(this);
// Trace message
- this.getLogger().trace("EXIT!"); //NOI18N
+ this.getLogger().logTrace("EXIT!"); //NOI18N
+ }
+
+ /**
+ * Getter for logger instance
+ *
+ * @return Logger instance
+ */
+ protected LoggerBeanLocal getLogger () {
+ return this.logger;
+ }
+
+ /**
+ * Logs an exception
+ *
+ * @param throwable Throwable
+ */
+ protected void logException (final Throwable throwable) {
+ // Deligate to logger
+ this.getLogger().logException(throwable);
+ }
+
+ /**
+ * Logs exception and exits program
+ *
+ * @param throwable Throwable
+ */
+ protected void abortProgramWithException (final Throwable throwable) {
+ // Log exception
+ this.logException(throwable);
+
+ // Abort here
+ System.exit(1);
}
}