## org.springframework.context.expression
Class EnvironmentAccessor

    java.lang.Object
      org.springframework.context.expression.EnvironmentAccessor

All Implemented Interfaces:
  PropertyAccessor

    public class EnvironmentAccessor

extends Object
implements PropertyAccessor

Read-only EL property accessor that knows how to retrieve keys of a Spring `Environment` instance.

Since:
  3.1
Author:
  Chris Beams

Constructor Summary
`EnvironmentAccessor()`

Method Summary
`boolean` `canRead(EvaluationContext context, Object target, String name)` Can read any `Environment`, thus always returns true.
`boolean` `canWrite(EvaluationContext context, Object target, String name)` Read only.
`Class<?>[]` `getSpecificTargetClasses()` Return an array of classes for which this resolver should be called.
`TypedValue` `read(EvaluationContext context, Object target, String name)` Access the given target object by resolving the given property name against the given target environment.
`void` `write(EvaluationContext context, Object target, String name, Object newValue)` Read only.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### EnvironmentAccessor

    public EnvironmentAccessor()

Method Detail

### getSpecificTargetClasses

    public Class<?>[] getSpecificTargetClasses()

  Description copied from interface: `PropertyAccessor`
  Return an array of classes for which this resolver should be called. Returning null indicates this is a general resolver that can be called in an attempt to resolve a property on any type.

  Specified by:
    `getSpecificTargetClasses` in interface `PropertyAccessor`
  Returns:
    an array of classes that this resolver is suitable for (or null if a general resolver)

### canRead

    public boolean canRead(EvaluationContext context,
                           Object target,
                           String name)
                    throws AccessException

  Can read any `Environment`, thus always returns true.

  Specified by:
    `canRead` in interface `PropertyAccessor`
  Parameters:
    `context` - the evaluation context in which the access is being attempted
    `target` - the target object upon which the property is being accessed
    `name` - the name of the property being accessed
  Returns:
    true
  Throws:
    `AccessException` - if there is any problem determining whether the property can be read

### read

    public TypedValue read(EvaluationContext context,
                           Object target,
                           String name)
                    throws AccessException

  Access the given target object by resolving the given property name against the given target environment.

  Specified by:
    `read` in interface `PropertyAccessor`
  Parameters:
    `context` - the evaluation context in which the access is being attempted
    `target` - the target object upon which the property is being accessed
    `name` - the name of the property being accessed
  Returns:
    a TypedValue object wrapping the property value read and a type descriptor for it
  Throws:
    `AccessException` - if there is any problem accessing the property value

### canWrite

    public boolean canWrite(EvaluationContext context,
                            Object target,
                            String name)
                     throws AccessException

  Read only.

  Specified by:
    `canWrite` in interface `PropertyAccessor`
  Parameters:
    `context` - the evaluation context in which the access is being attempted
    `target` - the target object upon which the property is being accessed
    `name` - the name of the property being accessed
  Returns:
    false
  Throws:
    `AccessException` - if there is any problem determining whether the property can be written to

### write

    public void write(EvaluationContext context,
                      Object target,
                      String name,
                      Object newValue)
               throws AccessException

  Read only. No-op.

  Specified by:
    `write` in interface `PropertyAccessor`
  Parameters:
    `context` - the evaluation context in which the access is being attempted
    `target` - the target object upon which the property is being accessed
    `name` - the name of the property being accessed
    `newValue` - the new value for the property
  Throws:
    `AccessException` - if there is any problem writing to the property value