org.springframework.webflow.executor.jsf
Class FlowPropertyResolver

java.lang.Object
  extended by javax.faces.el.PropertyResolver
      extended by org.springframework.webflow.executor.jsf.FlowPropertyResolver

public class FlowPropertyResolver
extends javax.faces.el.PropertyResolver

Custom property resolve that resolves active flow session scope properties from a thread bound flow execution.

TODO: this class probably needs to delegate to a strategy object pulled out of the appcontext, to provide ability to override and configure, as JSF provides no other way to customize and configure this instance.

Author:
Colin Sampaleanu

Constructor Summary
FlowPropertyResolver(javax.faces.el.PropertyResolver resolverDelegate)
          Create a new PropertyResolver, using the given original PropertyResolver.
 
Method Summary
 java.lang.Class getType(java.lang.Object base, int index)
           
 java.lang.Class getType(java.lang.Object base, java.lang.Object property)
           
 java.lang.Object getValue(java.lang.Object base, int index)
           
 java.lang.Object getValue(java.lang.Object base, java.lang.Object property)
           
protected  org.springframework.web.context.WebApplicationContext getWebApplicationContext(javax.faces.context.FacesContext facesContext)
          Retrieve the web application context to delegate bean name resolution to.
 boolean isReadOnly(java.lang.Object base, int index)
           
 boolean isReadOnly(java.lang.Object base, java.lang.Object property)
           
 void setValue(java.lang.Object base, int index, java.lang.Object value)
           
 void setValue(java.lang.Object base, java.lang.Object property, java.lang.Object value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowPropertyResolver

public FlowPropertyResolver(javax.faces.el.PropertyResolver resolverDelegate)
Create a new PropertyResolver, using the given original PropertyResolver.

A JSF implementation will automatically pass its original resolver into the constructor of a configured resolver, provided that there is a corresponding constructor argument.

Parameters:
resolverDelegate - the original VariableResolver
Method Detail

getType

public java.lang.Class getType(java.lang.Object base,
                               int index)
                        throws javax.faces.el.EvaluationException,
                               javax.faces.el.PropertyNotFoundException
Specified by:
getType in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

getType

public java.lang.Class getType(java.lang.Object base,
                               java.lang.Object property)
                        throws javax.faces.el.EvaluationException,
                               javax.faces.el.PropertyNotFoundException
Specified by:
getType in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

getValue

public java.lang.Object getValue(java.lang.Object base,
                                 int index)
                          throws javax.faces.el.EvaluationException,
                                 javax.faces.el.PropertyNotFoundException
Specified by:
getValue in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

getValue

public java.lang.Object getValue(java.lang.Object base,
                                 java.lang.Object property)
                          throws javax.faces.el.EvaluationException,
                                 javax.faces.el.PropertyNotFoundException
Specified by:
getValue in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

isReadOnly

public boolean isReadOnly(java.lang.Object base,
                          int index)
                   throws javax.faces.el.EvaluationException,
                          javax.faces.el.PropertyNotFoundException
Specified by:
isReadOnly in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

isReadOnly

public boolean isReadOnly(java.lang.Object base,
                          java.lang.Object property)
                   throws javax.faces.el.EvaluationException,
                          javax.faces.el.PropertyNotFoundException
Specified by:
isReadOnly in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

setValue

public void setValue(java.lang.Object base,
                     int index,
                     java.lang.Object value)
              throws javax.faces.el.EvaluationException,
                     javax.faces.el.PropertyNotFoundException
Specified by:
setValue in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

setValue

public void setValue(java.lang.Object base,
                     java.lang.Object property,
                     java.lang.Object value)
              throws javax.faces.el.EvaluationException,
                     javax.faces.el.PropertyNotFoundException
Specified by:
setValue in class javax.faces.el.PropertyResolver
Throws:
javax.faces.el.EvaluationException
javax.faces.el.PropertyNotFoundException

getWebApplicationContext

protected org.springframework.web.context.WebApplicationContext getWebApplicationContext(javax.faces.context.FacesContext facesContext)
Retrieve the web application context to delegate bean name resolution to.

Default implementation delegates to FacesContextUtils.

Parameters:
facesContext - the current JSF context
Returns:
the Spring web application context (never null)
See Also:
FacesContextUtils.getRequiredWebApplicationContext(javax.faces.context.FacesContext)


Copyright © 2004-2006. All Rights Reserved.