org.springframework.core.io
Class ResourceEditor

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

public class ResourceEditor
extends java.beans.PropertyEditorSupport

Editor for Resource descriptors, to automatically convert String locations e.g. "file:C:/myfile.txt" or "classpath:myfile.txt") to Resource properties instead of using a String location property.

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

Delegates to a ResourceLoader to do the heavy lifting, by default using a DefaultResourceLoader.

Since:
28.12.2003
Author:
Juergen Hoeller, Dave Syer
See Also:
Resource, ResourceLoader, DefaultResourceLoader, SystemPropertyUtils.resolvePlaceholders(java.lang.String), System.getProperty(String)

Field Summary
private  boolean ignoreUnresolvablePlaceholders
           
private  ResourceLoader resourceLoader
           
 
Constructor Summary
ResourceEditor()
          Create a new instance of the ResourceEditor class using a DefaultResourceLoader.
ResourceEditor(ResourceLoader resourceLoader)
          Create a new instance of the ResourceEditor class using the given ResourceLoader.
ResourceEditor(ResourceLoader resourceLoader, boolean ignoreUnresolvablePlaceholders)
          Create a new instance of the ResourceEditor class using the given ResourceLoader.
 
Method Summary
 java.lang.String getAsText()
           
protected  java.lang.String resolvePath(java.lang.String path)
          Resolve the given path, replacing placeholders with corresponding system property values if necessary.
 void setAsText(java.lang.String text)
           
 
Methods inherited from class java.beans.PropertyEditorSupport
addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, setValue, supportsCustomEditor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

resourceLoader

private final ResourceLoader resourceLoader

ignoreUnresolvablePlaceholders

private final boolean ignoreUnresolvablePlaceholders
Constructor Detail

ResourceEditor

public ResourceEditor()
Create a new instance of the ResourceEditor class using a DefaultResourceLoader.


ResourceEditor

public ResourceEditor(ResourceLoader resourceLoader)
Create a new instance of the ResourceEditor class using the given ResourceLoader.

Parameters:
resourceLoader - the ResourceLoader to use

ResourceEditor

public ResourceEditor(ResourceLoader resourceLoader,
                      boolean ignoreUnresolvablePlaceholders)
Create a new instance of the ResourceEditor class using the given ResourceLoader.

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

setAsText

public void setAsText(java.lang.String text)
Specified by:
setAsText in interface java.beans.PropertyEditor
Overrides:
setAsText in class java.beans.PropertyEditorSupport

resolvePath

protected java.lang.String resolvePath(java.lang.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)

getAsText

public java.lang.String getAsText()
Specified by:
getAsText in interface java.beans.PropertyEditor
Overrides:
getAsText in class java.beans.PropertyEditorSupport