]> git.mxchange.org Git - pizzaservice-war.git/blobdiff - src/java/org/mxchange/pizzaapplication/converter/mobileprovider/PizzaMobileProviderConverter.java
Please cherry-pick:
[pizzaservice-war.git] / src / java / org / mxchange / pizzaapplication / converter / mobileprovider / PizzaMobileProviderConverter.java
index 602e4641487b56b3b84916bc4ca31814297696c1..3f88e36120f29c23a9668309910d3d11df965bc3 100644 (file)
@@ -36,21 +36,21 @@ import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBe
  * @author Roland Häder<roland@mxchange.org>
  */
 @FacesConverter (value = "MobileProviderConverter")
-public class PizzaMobileProviderConverter implements Converter {
+public class PizzaMobileProviderConverter implements Converter<MobileProvider> {
 
        /**
         * Mobile provider bean
         */
-       private MobileProviderSingletonBeanRemote mobileRemoteBean;
+       private static MobileProviderSingletonBeanRemote MOBILE_PROVIDER_BEAN;
 
        /**
-        * Initialization of this converter
+        * Default constructor
         */
        public PizzaMobileProviderConverter () {
        }
 
        @Override
-       public Object getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
+       public MobileProvider getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
                // Is the value null or empty?
                if ((null == submittedValue) || (submittedValue.trim().isEmpty())) {
                        // Warning message
@@ -60,25 +60,24 @@ public class PizzaMobileProviderConverter implements Converter {
                        return null;
                }
 
-               synchronized (this) {
-                       // Is the EJB instanciated?
-                       if (null == this.mobileRemoteBean) {
-                               // Try to get it
-                               try {
-                                       // Get initial context
-                                       Context initialContext = new InitialContext();
-
-                                       /// and mobile provider controller
-                                       this.mobileRemoteBean = (MobileProviderSingletonBeanRemote) initialContext.lookup("java:global/pizzaservice-ejb/mobileprovider!org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote"); //NOI18N
-                               } catch (final NamingException ex) {
-                                       // Continue to throw it
-                                       throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
-                               }
+               // Is the bean there?
+               // @TODO Requires this synchronization or is it (sync) confusing the container?
+               if (null == PizzaMobileProviderConverter.MOBILE_PROVIDER_BEAN) {
+                       // Try to get it
+                       try {
+                               // Get initial context
+                               Context initialContext = new InitialContext();
+
+                               /// and mobile provider controller
+                               PizzaMobileProviderConverter.MOBILE_PROVIDER_BEAN = (MobileProviderSingletonBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/mobileprovider!org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote"); //NOI18N
+                       } catch (final NamingException ex) {
+                               // Continue to throw it
+                               throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
                        }
                }
 
                // Get full list
-               List<MobileProvider> providerList = this.mobileRemoteBean.allMobileProvider();
+               List<MobileProvider> providerList = PizzaMobileProviderConverter.MOBILE_PROVIDER_BEAN.allMobileProvider();
 
                // Init value
                MobileProvider provider = null;
@@ -110,18 +109,15 @@ public class PizzaMobileProviderConverter implements Converter {
        }
 
        @Override
-       public String getAsString (final FacesContext context, final UIComponent component, final Object value) {
+       public String getAsString (final FacesContext context, final UIComponent component, final MobileProvider value) {
                // Is the object null?
-               if ((null == value) || ((String.valueOf(value)).isEmpty())) {
+               if ((null == value) || (String.valueOf(value).isEmpty())) {
                        // Is null
                        return ""; //NOI18N
-               } else if (!(value instanceof MobileProvider)) {
-                       // Not same interface
-                       throw new IllegalArgumentException(MessageFormat.format("value {0} does not implement MobileProvider.", value)); //NOI18N
                }
 
-               // Return category id
-               return String.valueOf(((MobileProvider) value).getProviderId());
+               // Return id number
+               return String.valueOf(value.getProviderId());
        }
 
 }