Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package javax.faces.component;
 
 

supported filters: package and protection.

 
 
  class MessageFactory {
 
     private static final String MOJARRA_RESOURCE_BASENAME =
         "com.sun.faces.resources.Messages";
 
     private MessageFactory() {
     }

    

Parameters:
severity set a custom severity
See also:
getMessage(java.lang.String,java.lang.Object[])
 
      static FacesMessage getMessage(String messageId,
                                                 FacesMessage.Severity severity,
                                                 Object... params) {
         FacesMessage message = getMessage(messageIdparams);
         message.setSeverity(severity);
         return message;
     }


    

Parameters:
severity set a custom severity
See also:
getMessage(java.util.Locale,java.lang.String,java.lang.Object[])
 
      static FacesMessage getMessage(Locale locale,
                                                 String messageId,
                                                 FacesMessage.Severity severity,
                                                 Object... params) {
         FacesMessage message = getMessage(localemessageIdparams);
         message.setSeverity(severity);
         return message;
     }


    
     static FacesMessage getMessage(FacesContext context,
                                                String messageId,
                                                FacesMessage.Severity severity,
                                                Object... params) {
        FacesMessage message = getMessage(contextmessageIdparams);
        message.setSeverity(severity);
        return message;
    }

   
    

This version of getMessage() is used for localizing implementation specific messages.

Parameters:
messageId - the key of the message in the resource bundle
params - substittion parameters
Returns:
a localized FacesMessage with the severity of FacesMessage.SEVERITY_ERROR
      static FacesMessage getMessage(String messageId
                                                 Object... params) {
        Locale locale = null;
        FacesContext context = FacesContext.getCurrentInstance();
        // context.getViewRoot() may not have been initialized at this point.
        if (context != null && context.getViewRoot() != null) {
            locale = context.getViewRoot().getLocale();
            if (locale == null) {
                locale = Locale.getDefault();
            }
        } else {
            locale = Locale.getDefault();
        }
        
        return getMessage(localemessageIdparams);
    }

     

Creates and returns a FacesMessage for the specified Locale.

Parameters:
locale - the target Locale
messageId - the key of the message in the resource bundle
params - substittion parameters
Returns:
a localized FacesMessage with the severity of FacesMessage.SEVERITY_ERROR
      static FacesMessage getMessage(Locale locale
                                                 String messageId
                                                 Object... params) {       
        String summary = null;
        String detail = null;       
        ResourceBundle bundle;
        String bundleName;
        // see if we have a user-provided bundle
        Application app = getApplication();
	Class appClass = app.getClass();
        if (null != (bundleName = app.getMessageBundle())) {
            if (null != 
                (bundle = 
                    ResourceBundle.getBundle(bundleNamelocale,
				     getCurrentLoader(appClass)))) {
                // see if we have a hit
                try {
                    summary = bundle.getString(messageId);
                    detail = bundle.getString(messageId + "_detail");
                }
                catch (MissingResourceException e) {
                    // ignore
                }
            }
        }
    
        // we couldn't find a summary in the user-provided bundle
        if (null == summary) {
            // see if we have a summary in the app provided bundle
            bundle = ResourceBundle.getBundle(.
                                              locale,
                                              getCurrentLoader(appClass));
            if (null == bundle) {
                throw new NullPointerException();
            }
            // see if we have a hit
            try {
                summary = bundle.getString(messageId);
                detail = bundle.getString(messageId + "_detail");
            } catch (MissingResourceException e) {
                // ignore
            }
        }
        // no hit found in the standard javax.faces.Messages bundle.
        // check the Mojarra resources
        if (summary == null) {
            // see if we have a summary in the app provided bundle
            bundle = ResourceBundle.getBundle(,
                                              locale,
                                              getCurrentLoader(appClass));
            if (null == bundle) {
                throw new NullPointerException();
            }
            // see if we have a hit
            try {
                summary = bundle.getString(messageId);
            } catch (MissingResourceException e) {
                return null;
            }
        }
        // At this point, we have a summary and a bundle.     
        FacesMessage ret = new BindingFacesMessage(localesummarydetailparams);
        return (ret);
    }


    

Creates and returns a FacesMessage for the specified Locale.

Parameters:
context - the FacesContext for the current request
messageId - the key of the message in the resource bundle
params - substittion parameters
Returns:
a localized FacesMessage with the severity of FacesMessage.SEVERITY_ERROR
     static FacesMessage getMessage(FacesContext context
                                                String messageId,
                                                Object... params) {
                                                
        if (context == null || messageId == null ) {
            throw new NullPointerException(" context " 
                + context 
                + " messageId " 
                + messageId);
        }
        Locale locale;
        // viewRoot may not have been initialized at this point.
        if (context.getViewRoot() != null) {
            locale = context.getViewRoot().getLocale();
        } else {
            locale = Locale.getDefault();
        }
        
        if (null == locale) {
            throw new NullPointerException(" locale is null ");
        }
        
        FacesMessage message = getMessage(localemessageIdparams);
        if (message != null) {
            return message;
        }
        locale = Locale.getDefault();
        return (getMessage(localemessageIdparams));
    }  
                       

    

Returns the label property from the specified component.

Parameters:
context - the FacesContext for the current request
component - the component of interest
Returns:
the label, if any, of the component
     static Object getLabel(FacesContext context
                                        UIComponent component) {
                                        
        Object o = component.getAttributes().get("label");
        if (o == null || (o instanceof String && ((Stringo).length() == 0)) {
            o = component.getValueExpression("label");
        }
        // Use the "clientId" if there was no label specified.
        if (o == null) {
            o = component.getClientId(context);
        }
        return o;
    }
    protected static Application getApplication() {
        FacesContext context = FacesContext.getCurrentInstance();
        if (context != null) {
            return (FacesContext.getCurrentInstance().getApplication());
        }
        ApplicationFactory afactory = (ApplicationFactory)
            FactoryFinder.getFactory(.);
        return (afactory.getApplication());
    }
    protected static ClassLoader getCurrentLoader(Class fallbackClass) {
        ClassLoader loader =
            Thread.currentThread().getContextClassLoader();
        if (loader == null) {
            loader = fallbackClass.getClassLoader();
        }
        return loader;
    }

    
This class overrides FacesMessage to provide the evaluation of binding expressions in addition to Strings. It is often the case, that a binding expression may reference a localized property value that would be used as a substitution parameter in the message. For example: #{bundle.userLabel} "bundle" may not be available until the page is rendered. The "late" binding evaluation in getSummary and getDetail allow the expression to be evaluated when that property is available.
    static class BindingFacesMessage extends FacesMessage {
        BindingFacesMessage(
            Locale locale,
            String messageFormat,
            String detailMessageFormat,
            // array of parameters, both Strings and ValueBindings
            Object[] parameters) {
            super(messageFormatdetailMessageFormat);
            this. = locale;
            this. = parameters;
            if (parameters != null) {
                 = new Object[parameters.length];
            }
        }
        public String getSummary() {
            String pattern = super.getSummary();
            resolveBindings();
            return getFormattedString(pattern);
        }
        public String getDetail() {
            String pattern = super.getDetail();
            resolveBindings();
            return getFormattedString(pattern);
        }
        private void resolveBindings() {
            FacesContext context = null;
            if ( != null) {
                for (int i = 0; i < .i++) {
                    Object o = [i];
                    if (o instanceof ValueBinding) {
                        if (context == null) {
                            context = FacesContext.getCurrentInstance();
                        }
                        o = ((ValueBindingo).getValue(context);
                    }
                    if (o instanceof ValueExpression) {
                        if (context == null) {
                            context = FacesContext.getCurrentInstance();
                        }
                        o = ((ValueExpressiono).getValue(context.getELContext());
                    }
                    // to avoid 'null' appearing in message
                    if (o == null) {
                        o = "";
                    }
                    [i] = o;
                }
            }
        }
        private String getFormattedString(String msgtextObject[] params) {
            String localizedStr = null;
                                                                                
            if (params == null || msgtext == null ) {
                return msgtext;
            }
            StringBuffer b = new StringBuffer(100);
            MessageFormat mf = new MessageFormat(msgtext);
            if ( != null) {
                mf.setLocale();
                b.append(mf.format(params));
                localizedStr = b.toString();
            }
            return localizedStr;
        }
        private Locale locale;
        private Object[] parameters;
        private Object[] resolvedParameters;
    }
    
// end of class MessageFactory
New to GrepCode? Check out our FAQ X