Class EnumerablePropertySource<T>

  extended by org.springframework.core.env.PropertySource<T>
      extended by org.springframework.core.env.EnumerablePropertySource<T>
Direct Known Subclasses:
MapPropertySource, PortletConfigPropertySource, PortletContextPropertySource, ServletConfigPropertySource, ServletContextPropertySource

public abstract class EnumerablePropertySource<T>
extends PropertySource<T>

A PropertySource implementation capable of interrogating its underlying source object to enumerate all possible property name/value pairs. Exposes the getPropertyNames() method to allow callers to introspect available properties without having to access the underlying source object. This also facilitates a more efficient implementation of containsProperty(String), in that it can call getPropertyNames() and iterate through the returned array rather than attempting a call to PropertySource.getProperty(String) which may be more expensive. Implementations may consider caching the result of getPropertyNames() to fully exploit this performance opportunity. Most framework-provided PropertySource implementations are enumerable; a counter-example would be JndiPropertySource where, due to the nature of JNDI it is not possible to determine all possible property names at any given time; rather it is only possible to try to access a property (via PropertySource.getProperty(String)) in order to evaluate whether it is present or not.

Chris Beams

Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.core.env.PropertySource
Field Summary
protected static String[] EMPTY_NAMES_ARRAY
protected  Log logger
Fields inherited from class org.springframework.core.env.PropertySource
name, source
Constructor Summary
EnumerablePropertySource(String name, T source)
Method Summary
 boolean containsProperty(String name)
          Return whether this PropertySource contains a property with the given name.
abstract  String[] getPropertyNames()
          Return the names of all properties contained by the source object (never null).
Methods inherited from class org.springframework.core.env.PropertySource
equals, getName, getProperty, getSource, hashCode, named, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Field Detail


protected static final String[] EMPTY_NAMES_ARRAY


protected final Log logger
Constructor Detail


public EnumerablePropertySource(String name,
                                T source)
Method Detail


public abstract String[] getPropertyNames()
Return the names of all properties contained by the source object (never null).


public boolean containsProperty(String name)
Return whether this PropertySource contains a property with the given name.

This implementation checks for the presence of the given name within the getPropertyNames() array.

containsProperty in class PropertySource<T>
name - the property to find