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


        assertEquals(TestStateManager.class, stateManager.getClass());
        assertEquals(JspStateManagerImpl.class, ((TestStateManager) stateManager).getDelegate().getClass());

        // PropvertyResolver
        PropertyResolver propertyResolver = application.getPropertyResolver();

        assertEquals(TestPropertyResolver.class, propertyResolver.getClass());
        assertEquals(PropertyResolverImpl.class, ((TestPropertyResolver) propertyResolver).getDelegate().getClass());

        // VariableResolver
        VariableResolver variableResolver = application.getVariableResolver();
View Full Code Here

                    break;
                case ManagedProperty.TYPE_VALUE:
                    value = property.getRuntimeValue(facesContext);
                    break;
            }
            PropertyResolver propertyResolver =
                facesContext.getApplication().getPropertyResolver();
            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

    }

    @Test
    public void testGetPropertyResolver() throws Exception
    {
        PropertyResolver resolver = _mocksControl.createMock(PropertyResolver.class);
        expect(_runtimeConfig.getPropertyResolver()).andReturn(resolver).anyTimes();
        _mocksControl.replay();
        _testImpl.addFromRuntimeConfig(_resolvers);
        _mocksControl.verify();
       
View Full Code Here

    }

    @Test
    public void testGetPropertyResolverChainHead() throws Exception
    {
        PropertyResolver resolver = _mocksControl.createMock(PropertyResolver.class);
        EasyMock.expect(_runtimeConfig.getPropertyResolverChainHead()).andReturn(resolver).anyTimes();
        _mocksControl.replay();
        _testImpl.addFromRuntimeConfig(_resolvers);
        _mocksControl.verify();
       
View Full Code Here

            else
            {
                Object[] baseAndProperty = (Object[]) base_;
                Object base      = baseAndProperty[0];
                Object property  = baseAndProperty[1];
                PropertyResolver propertyResolver =
                    _application.getPropertyResolver();

                Integer index = ELParserHelper.toIndex(base, property);
                if (index == null)
                {
                    Class clazz = propertyResolver.getType(base, property);
                    propertyResolver.setValue(
                        base, property, coerce(newValue, clazz));
                }
                else
                {
                    int indexVal = index.intValue();
                    Class clazz = propertyResolver.getType(base, indexVal);
                    propertyResolver.setValue(
                        base, indexVal, coerce(newValue, clazz));
                }
            }
        }
        catch (IndexOutOfBoundsException e)
View Full Code Here

  {
    if (node == null)
      return null;
     
    FacesContext context      = FacesContext.getCurrentInstance();
    PropertyResolver resolver = context.getApplication().getPropertyResolver();
    String value              = null;
   
    try
    {
      Map<String, String> propMap =
        (Map<String, String>) resolver.getValue(node, _CUSTOM_ATTR_LIST);
       
      // Need to check to see if propMap is null.  If there are
      // no custom properties for this itemNode, there will be
      // no propMap.  See MenuContentHandler._createItemNode().
      if (propMap == null)
View Full Code Here

        if (names.size() < 2) {
            return (base);
        }

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

        // Return the resolved value
        // System.out.println("  result=" + base);
        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 false; // if there is no data in the table then nothing is sortable

      Object data = _model.getRowData();
      try
      {
        PropertyResolver resolver = __getPropertyResolver();
        Object propertyValue = evaluateProperty(resolver, data, property);

        // when the value is null, we don't know if we can sort it.
        // by default let's support sorting of null values, and let the user
        // turn off sorting if necessary:
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.