*/
package org.mxchange.jjobs.converter.fax;
-import java.text.MessageFormat;
+import javax.ejb.EJB;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException;
-import org.mxchange.jphone.phonenumbers.DialableNumber;
import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote;
* <p>
* @author Roland Häder<roland@mxchange.org>
*/
-@FacesConverter (value = "FaxNumberConverter")
-public class JobsFaxNumberConverter implements Converter {
+@FacesConverter ("FaxNumberConverter")
+public class JobsFaxNumberConverter implements Converter<DialableFaxNumber> {
/**
* Phone EJB
*/
- private static PhoneSessionBeanRemote PHONE_BEAN;
+ @EJB(lookup = "java:global/jfinancials-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote")
+ private PhoneSessionBeanRemote phoneBean;
/**
* Default constructor
}
@Override
- public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
+ public DialableFaxNumber getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
// Log message
// @TODO Not possible here: this.loggerBeanLocal.logTrace(MessageFormat.format("{0}.getAsObject: context={1},component={2},submittedValue={3} - CALLED!", this.getClass().getSimpleName(), context, component, submittedValue)); //NOI18N
return null;
}
- // Is the bean there?
- // @TODO Requires this synchronization or is it (sync) confusing the container?
- if (null == JobsFaxNumberConverter.PHONE_BEAN) {
- // Try to get it
- try {
- // Get initial context
- Context initialContext = new InitialContext();
-
- // ... and user controller
- JobsFaxNumberConverter.PHONE_BEAN = (PhoneSessionBeanRemote) initialContext.lookup("java:global/jjobs-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new RuntimeException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
- }
-
// Init instance
DialableFaxNumber faxNumber = null;
// Log message
// @TODO Not possible here: this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject: faxNumberId={1}", this.getClass().getSimpleName(), faxNumberId)); //NOI18N
// Try to get mobile instance from it
- faxNumber = JobsFaxNumberConverter.PHONE_BEAN.findFaxNumberById(faxNumberId);
+ faxNumber = this.phoneBean.findFaxNumberById(faxNumberId);
} catch (final NumberFormatException ex) {
// Throw again
throw new ConverterException(ex);
}
@Override
- public String getAsString (final FacesContext context, final UIComponent component, final Object value) {
+ public String getAsString (final FacesContext context, final UIComponent component, final DialableFaxNumber value) {
// Is the object null?
if ((null == value) || (String.valueOf(value).isEmpty())) {
// Is null
return ""; //NOI18N
- } else if (!(value instanceof DialableNumber)) {
- // Not same interface
- throw new IllegalArgumentException(MessageFormat.format("value[]={0} does not implement DialableNumber.", value.getClass().getSimpleName())); //NOI18N
}
// Return id number
- return String.valueOf(((DialableNumber) value).getPhoneId());
+ return String.valueOf(value.getPhoneId());
}
}