Package org.jboss.seam.el

Source Code of org.jboss.seam.el.EL

package org.jboss.seam.el;

import java.util.Locale;

import javax.el.ArrayELResolver;
import javax.el.BeanELResolver;
import javax.el.CompositeELResolver;
import javax.el.ELContext;
import javax.el.ELResolver;
import javax.el.ExpressionFactory;
import javax.el.FunctionMapper;
import javax.el.ListELResolver;
import javax.el.MapELResolver;
import javax.el.ResourceBundleELResolver;
import javax.el.VariableMapper;

import org.jboss.el.ExpressionFactoryImpl;
import org.jboss.el.lang.FunctionMapperImpl;
import org.jboss.el.lang.VariableMapperImpl;

/**
* An instance of JBoss EL.
*
* @author Gavin King
*
*/
public class EL
{
   public static final ELResolver EL_RESOLVER = createELResolver();
   public static final ELContext EL_CONTEXT = createELContext( EL_RESOLVER, new FunctionMapperImpl() );
  
   public static final ExpressionFactory EXPRESSION_FACTORY = new ExpressionFactoryImpl();
  
   private static ELResolver createELResolver()
   {
      CompositeELResolver resolver = new CompositeELResolver();
      resolver.add( new SeamELResolver() );
      resolver.add( new MapELResolver() );
      resolver.add( new ListELResolver() );
      resolver.add( new ArrayELResolver() );
      resolver.add( new ResourceBundleELResolver() );
      resolver.add( new BeanELResolver() );
      return resolver;
   }

   public static ELContext createELContext(final ELResolver resolver, final FunctionMapper functionMapper)
   {
      return new ELContext()
      {
         final VariableMapperImpl variableMapper = new VariableMapperImpl();

         @Override
         public ELResolver getELResolver()
         {
            return resolver;
         }

         @Override
         public FunctionMapper getFunctionMapper()
         {
            return functionMapper;
         }

         @Override
         public VariableMapper getVariableMapper()
         {
            return variableMapper;
         }
        
      };
   }
  
   public static ELContext createELContext(final ELContext context, final ELResolver resolver)
   {
      return new ELContext()
      {

         @Override
         public Locale getLocale()
         {
            return context.getLocale();
         }
        
         @Override
         public void setPropertyResolved(boolean value)
         {
            super.setPropertyResolved(value);
            context.setPropertyResolved(value);
         }
        
         /*@Override
         public boolean isPropertyResolved()
         {
            return super.isPropertyResolved();
         }*/
        
         @Override
         public void putContext(Class clazz, Object object)
         {
            super.putContext(clazz, object);
            context.putContext(clazz, object);
         }
        
         @Override
         public Object getContext(Class clazz)
         {
            return context.getContext(clazz);
         }
        
         @Override
         public void setLocale(Locale locale)
         {
            super.setLocale(locale);
            context.setLocale(locale);
         }
        
         @Override
         public ELResolver getELResolver()
         {
            return resolver;
         }

         @Override
         public FunctionMapper getFunctionMapper()
         {
            return context.getFunctionMapper();
         }

         @Override
         public VariableMapper getVariableMapper()
         {
            return context.getVariableMapper();
         }
        
      };
   }
  
}
TOP

Related Classes of org.jboss.seam.el.EL

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.