Package javax.faces.el

Examples of javax.faces.el.PropertyResolver


    }


    private void initializeProperties(FacesContext facesContext, Iterator managedProperties, String targetScope, Object bean)
    {
        PropertyResolver propertyResolver =
            facesContext.getApplication().getPropertyResolver();

        while (managedProperties.hasNext())
        {
            ManagedProperty property = (ManagedProperty) managedProperties.next();
            Object value = null;

            switch (property.getType())
            {
                case ManagedProperty.TYPE_LIST:
                   
                    // JSF 1.1, 5.3.1.3
                    // Call the property getter, if it exists.
                    // If the getter returns null or doesn't exist, create a java.util.ArrayList,
                    // otherwise use the returned Object ...
                    if(PropertyUtils.isReadable(bean, property.getPropertyName()))
                        value = propertyResolver.getValue(bean, property.getPropertyName());
                    value = value == null ? new ArrayList() : value;
                   
                    if (value instanceof List) {
                        initializeList(facesContext, property.getListEntries(), (List) value);

                    } else if (value != null && value.getClass().isArray()) {
                        int length = Array.getLength(value);
                        ArrayList temp = new ArrayList(length);
                        for (int i = 0; i < length; i++) {
                            temp.add(Array.get(value, i));
                        }
                        initializeList(facesContext, property.getListEntries(), temp);
                        value = Array.newInstance(value.getClass().getComponentType(), temp.size());
                        length = temp.size();

                        for (int i = 0; i < length; i++) {
                            Array.set(value, i, temp.get(i));
                        }
                    } else {
                          value = new ArrayList();
                        initializeList(facesContext, property.getListEntries(), (List) value);
                    }

                    break;
                case ManagedProperty.TYPE_MAP:

                    // JSF 1.1, 5.3.1.3
                    // Call the property getter, if it exists.
                    // If the getter returns null or doesn't exist, create a java.util.HashMap,
                    // otherwise use the returned java.util.Map .
                    if(PropertyUtils.isReadable(bean, property.getPropertyName()))
                        value = propertyResolver.getValue(bean, property.getPropertyName());
                    value = value == null ? new HashMap() : value;
                   
                    if (! (value instanceof Map)) {
                        value = new HashMap();
                    }

                    initializeMap(facesContext, property.getMapEntries(), (Map) value);
                    break;
                case ManagedProperty.TYPE_NULL:
                    value = null;
                    break;
                case ManagedProperty.TYPE_VALUE:
                    // check for correct scope of a referenced bean
                    if (! isInValidScope(facesContext, property, targetScope)) {
                        throw new FacesException("Property " + property.getPropertyName() +
                            " references object in a scope with shorter lifetime than the target scope " + targetScope);
                    }
                    value = property.getRuntimeValue(facesContext);
                    break;
            }
            Class propertyClass = null;

            if (property.getPropertyClass() == null)
            {
                propertyClass = propertyResolver
                    .getType(bean, property.getPropertyName());
            }
            else
            {
                propertyClass = ClassUtils
                    .simpleJavaTypeToClass(property.getPropertyClass());
            }
            if(null == propertyClass) {
              throw new IllegalArgumentException("unable to find the type of property " + property.getPropertyName());
            }
            Object coercedValue = ClassUtils.convertToType(value, propertyClass);
            propertyResolver.setValue(
                bean, property.getPropertyName(), coercedValue);
        }
    }
View Full Code Here


    }


    private void initializeProperties(FacesContext facesContext, Iterator managedProperties, String targetScope, Object bean)
    {
        PropertyResolver propertyResolver =
            facesContext.getApplication().getPropertyResolver();

        while (managedProperties.hasNext())
        {
            ManagedProperty property = (ManagedProperty) managedProperties.next();
            Object value = null;

            switch (property.getType())
            {
                case ManagedProperty.TYPE_LIST:
                   
                    // JSF 1.1, 5.3.1.3
                    // Call the property getter, if it exists.
                    // If the getter returns null or doesn't exist, create a java.util.ArrayList,
                    // otherwise use the returned Object ...
                    if(PropertyUtils.isReadable(bean, property.getPropertyName()))
                        value = propertyResolver.getValue(bean, property.getPropertyName());
                    value = value == null ? new ArrayList() : value;
                   
                    if (value instanceof List) {
                        initializeList(facesContext, property.getListEntries(), (List) value);

                    } else if (value != null && value.getClass().isArray()) {
                        int length = Array.getLength(value);
                        ArrayList temp = new ArrayList(length);
                        for (int i = 0; i < length; i++) {
                            temp.add(Array.get(value, i));
                        }
                        initializeList(facesContext, property.getListEntries(), temp);
                        value = Array.newInstance(value.getClass().getComponentType(), temp.size());
                        length = temp.size();

                        for (int i = 0; i < length; i++) {
                            Array.set(value, i, temp.get(i));
                        }
                    } else {
                          value = new ArrayList();
                        initializeList(facesContext, property.getListEntries(), (List) value);
                    }

                    break;
                case ManagedProperty.TYPE_MAP:

                    // JSF 1.1, 5.3.1.3
                    // Call the property getter, if it exists.
                    // If the getter returns null or doesn't exist, create a java.util.HashMap,
                    // otherwise use the returned java.util.Map .
                    if(PropertyUtils.isReadable(bean, property.getPropertyName()))
                        value = propertyResolver.getValue(bean, property.getPropertyName());
                    value = value == null ? new HashMap() : value;
                   
                    if (! (value instanceof Map)) {
                        value = new HashMap();
                    }

                    initializeMap(facesContext, property.getMapEntries(), (Map) value);
                    break;
                case ManagedProperty.TYPE_NULL:
                    value = null;
                    break;
                case ManagedProperty.TYPE_VALUE:
                    // check for correct scope of a referenced bean
                    if (! isInValidScope(facesContext, property, targetScope)) {
                        throw new FacesException("Property " + property.getPropertyName() +
                            " references object in a scope with shorter lifetime than the target scope " + targetScope);
                    }
                    value = property.getRuntimeValue(facesContext);
                    break;
            }
            Class propertyClass = null;

            if (property.getPropertyClass() == null)
            {
                propertyClass = propertyResolver
                    .getType(bean, property.getPropertyName());
            }
            else
            {
                propertyClass = ClassUtils
                    .simpleJavaTypeToClass(property.getPropertyClass());
            }
            if(null == propertyClass) {
              throw new IllegalArgumentException("unable to find the type of property " + property.getPropertyName());
            }
            Object coercedValue = null;
            try
            {
                coercedValue = (value == null) ? null : Coercions
                        .coerce(value, propertyClass, COERCION_LOGGER);
            }
            catch (ELException e)
            {
                String message = "Cannot coerce "
                        + value.getClass().getName() + " to "
                        + propertyClass.getName();
                log.error(message, e);
                throw new FacesException(message, e);
            }             
            propertyResolver.setValue(
                bean, property.getPropertyName(), coercedValue);
        }
    }
View Full Code Here

    protected String detectActiveJsfVersion()
    {
        //In JSF 1.2+ this artifact isn't wrapped by custom implementations (because it's deprecated)
        //-> usually it's the version of the implementation
       
        @SuppressWarnings({"deprecation"})
        PropertyResolver anyJsfClass = FacesContext.getCurrentInstance().getApplication().getPropertyResolver();

        if(anyJsfClass == null)
        {
            return null;
        }

        String version = ClassUtils.getJarVersion(anyJsfClass.getClass());

        String description = "Used JSF implementation: ";

        if(anyJsfClass.getClass().getName().startsWith("org.apache.myfaces"))
        {
            return description + "MyFaces Core v" + version;
        }
        else if(anyJsfClass.getClass().getName().startsWith("com.sun.faces"))
        {
            return description + "Mojarra v" + version;
        }
        return null;
    }
View Full Code Here

        context.setPropertyResolved(true);
        FacesContext fcontext = (FacesContext) context
                .getContext(FacesContext.class);
        ELContext elContext = fcontext.getELContext();
        PropertyResolver pr = fcontext.getApplication().getPropertyResolver();

        if ((base instanceof List) || base.getClass().isArray())
        {
            Integer index = (Integer) fcontext.getApplication()
                    .getExpressionFactory().coerceToType(property,
                            Integer.class);
            try
            {
                return pr.getType(base, index.intValue());
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
            }
        }
        else
        {
            try
            {
                return pr.getType(base, property);
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
View Full Code Here

        context.setPropertyResolved(true);
        FacesContext fcontext = (FacesContext) context
                .getContext(FacesContext.class);
        ELContext elContext = fcontext.getELContext();
        PropertyResolver pr = fcontext.getApplication().getPropertyResolver();

        if ((base instanceof List) || base.getClass().isArray())
        {
            Integer index = (Integer) fcontext.getApplication()
                    .getExpressionFactory().coerceToType(property,
                            Integer.class);
            try
            {
                return pr.getValue(base, index.intValue());
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
            }
        }
        else
        {
            try
            {
                return pr.getValue(base, property);
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
View Full Code Here

        context.setPropertyResolved(true);
        FacesContext fcontext = (FacesContext) context
                .getContext(FacesContext.class);
        ELContext elContext = fcontext.getELContext();
        PropertyResolver pr = fcontext.getApplication().getPropertyResolver();

        if ((base instanceof List) || base.getClass().isArray())
        {
            Integer index = (Integer) fcontext.getApplication()
                    .getExpressionFactory().coerceToType(property,
                            Integer.class);
            try
            {
                return pr.isReadOnly(base, index.intValue());
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
            }
        }
        else
        {
            try
            {
                return pr.isReadOnly(base, property);
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
View Full Code Here

        context.setPropertyResolved(true);
        FacesContext fcontext = (FacesContext) context
                .getContext(FacesContext.class);
        ELContext elContext = fcontext.getELContext();
        PropertyResolver pr = fcontext.getApplication().getPropertyResolver();

        if ((base instanceof List) || base.getClass().isArray())
        {
            Integer index = (Integer) fcontext.getApplication()
                    .getExpressionFactory().coerceToType(property,
                            Integer.class);
            try
            {
                pr.setValue(base, index.intValue(), value);
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
            }
        }
        else
        {
            try
            {
                pr.setValue(base, property, value);
            }
            catch (EvaluationException e)
            {
                context.setPropertyResolved(false);
                throw new ELException(e);
View Full Code Here

        {
            return (base);
        }

        // Resolve the property names
        PropertyResolver pr = application().getPropertyResolver();
        for (int i = 1; i < names.size(); i++)
        {
            base = pr.getValue(base, (String) names.get(i));
        }

        // Return the resolved value
        return (base);
View Full Code Here

            econtext().getRequestMap().put(name, value);
            return;
        }

        // Resolve the property names
        PropertyResolver pr = application().getPropertyResolver();
        for (int i = 1; i < (names.size() - 1); i++)
        {
            // System.out.println("  property=" + names.get(i));
            base = pr.getValue(base, (String) names.get(i));
        }

        // Update the last property
        pr.setValue(base, (String) names.get(names.size() - 1), value);

    }
View Full Code Here

        {
            return true;
        }

        // Resolve the property names
        PropertyResolver pr = application().getPropertyResolver();
        for (int i = 1; i < names.size() - 1; i++)
        {
            base = pr.getValue(base, (String) names.get(i));
        }

        // Return the read only state of the final property
        return pr.isReadOnly(base, (String) names.get(names.size() - 1));

    }
View Full Code Here

TOP

Related Classes of javax.faces.el.PropertyResolver

Copyright © 2018 www.massapicom. 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.