org.springframework.core.io.support
Class ResourceArrayPropertyEditor

java.lang.Object
  extended by java.beans.PropertyEditorSupport
      extended by org.springframework.core.io.support.ResourceArrayPropertyEditor
All Implemented Interfaces:
PropertyEditor

public class ResourceArrayPropertyEditor
extends PropertyEditorSupport

Editor for Resource arrays, to automatically convert String location patterns (e.g. "file:C:/my*.txt" or "classpath*:myfile.txt") to Resource array properties. Can also translate a collection or array of location patterns into a merged Resource array.

The path may contain ${...} placeholders, to be resolved as system properties: e.g. ${user.dir}. Unresolvable placeholder are ignored by default.

Delegates to a ResourcePatternResolver, by default using a PathMatchingResourcePatternResolver.

Since:
1.1.2
Author:
Juergen Hoeller
See Also:
Resource, ResourcePatternResolver, PathMatchingResourcePatternResolver, SystemPropertyUtils.resolvePlaceholders(java.lang.String), System.getProperty(String)

Constructor Summary
ResourceArrayPropertyEditor()
          Create a new ResourceArrayPropertyEditor with a default PathMatchingResourcePatternResolver.
ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver)
          Create a new ResourceArrayPropertyEditor with the given ResourcePatternResolver.
ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver, boolean ignoreUnresolvablePlaceholders)
          Create a new ResourceArrayPropertyEditor with the given ResourcePatternResolver.
 
Method Summary
protected  String resolvePath(String path)
          Resolve the given path, replacing placeholders with corresponding system property values if necessary.
 void setAsText(String text)
          Treat the given text as location pattern and convert it to a Resource array.
 void setValue(Object value)
          Treat the given value as collection or array and convert it to a Resource array.
 
Methods inherited from class java.beans.PropertyEditorSupport
addPropertyChangeListener, firePropertyChange, getAsText, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, supportsCustomEditor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceArrayPropertyEditor

public ResourceArrayPropertyEditor()
Create a new ResourceArrayPropertyEditor with a default PathMatchingResourcePatternResolver.

See Also:
PathMatchingResourcePatternResolver

ResourceArrayPropertyEditor

public ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver)
Create a new ResourceArrayPropertyEditor with the given ResourcePatternResolver.

Parameters:
resourcePatternResolver - the ResourcePatternResolver to use

ResourceArrayPropertyEditor

public ResourceArrayPropertyEditor(ResourcePatternResolver resourcePatternResolver,
                                   boolean ignoreUnresolvablePlaceholders)
Create a new ResourceArrayPropertyEditor with the given ResourcePatternResolver.

Parameters:
resourcePatternResolver - the ResourcePatternResolver to use
ignoreUnresolvablePlaceholders - whether to ignore unresolvable placeholders if no corresponding system property could be found
Method Detail

setAsText

public void setAsText(String text)
Treat the given text as location pattern and convert it to a Resource array.

Specified by:
setAsText in interface PropertyEditor
Overrides:
setAsText in class PropertyEditorSupport

setValue

public void setValue(Object value)
              throws IllegalArgumentException
Treat the given value as collection or array and convert it to a Resource array. Considers String elements as location patterns, and takes Resource elements as-is.

Specified by:
setValue in interface PropertyEditor
Overrides:
setValue in class PropertyEditorSupport
Throws:
IllegalArgumentException

resolvePath

protected String resolvePath(String path)
Resolve the given path, replacing placeholders with corresponding system property values if necessary.

Parameters:
path - the original file path
Returns:
the resolved file path
See Also:
SystemPropertyUtils.resolvePlaceholders(java.lang.String)