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 Environment properties: e.g. ${user.dir}. Unresolvable placeholders 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, Chris Beams
See Also:
Resource, ResourceLoader, DefaultResourceLoader, PropertyResolver.resolvePlaceholders(java.lang.String)

Field Summary
private  boolean ignoreUnresolvablePlaceholders
           
private  PropertyResolver propertyResolver
           
private  ResourceLoader resourceLoader
           
 
Constructor Summary
ResourceEditor()
          Create a new instance of the ResourceEditor class using a DefaultResourceLoader and StandardEnvironment.
ResourceEditor(ResourceLoader resourceLoader)
          Deprecated. as of Spring 3.1 in favor of ResourceEditor(ResourceLoader, PropertyResolver)
ResourceEditor(ResourceLoader resourceLoader, boolean ignoreUnresolvablePlaceholders)
          Deprecated. as of Spring 3.1 in favor of ResourceEditor(ResourceLoader, PropertyResolver, boolean)
ResourceEditor(ResourceLoader resourceLoader, PropertyResolver propertyResolver)
          Create a new instance of the ResourceEditor class using the given ResourceLoader and PropertyResolver.
ResourceEditor(ResourceLoader resourceLoader, PropertyResolver propertyResolver, 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 property values from the environment 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

propertyResolver

private final PropertyResolver propertyResolver

ignoreUnresolvablePlaceholders

private final boolean ignoreUnresolvablePlaceholders
Constructor Detail

ResourceEditor

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


ResourceEditor

@Deprecated
public ResourceEditor(ResourceLoader resourceLoader)
Deprecated. as of Spring 3.1 in favor of ResourceEditor(ResourceLoader, PropertyResolver)

Create a new instance of the ResourceEditor class using the given ResourceLoader and a StandardEnvironment.

Parameters:
resourceLoader - the ResourceLoader to use

ResourceEditor

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

Parameters:
resourceLoader - the ResourceLoader to use
propertyResolver - the PropertyResolver to use

ResourceEditor

@Deprecated
public ResourceEditor(ResourceLoader resourceLoader,
                                 boolean ignoreUnresolvablePlaceholders)
Deprecated. as of Spring 3.1 in favor of ResourceEditor(ResourceLoader, PropertyResolver, boolean)

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 property could be found

ResourceEditor

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

Parameters:
resourceLoader - the ResourceLoader to use
propertyResolver - the PropertyResolver to use
ignoreUnresolvablePlaceholders - whether to ignore unresolvable placeholders if no corresponding property could be found in the given propertyResolver
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 property values from the environment if necessary.

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

getAsText

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