Class URIEditor
- java.lang.Object
- java.beans.PropertyEditorSupport
- org.springframework.beans.propertyeditors.URIEditor
- All Implemented Interfaces:
PropertyEditor
public class URIEditor extends PropertyEditorSupport
Editor forjava.net.URI
, to directly populate a URI property instead of using a String property as bridge.Supports Spring-style URI notation: any fully qualified standard URI ("file:", "http:", etc) and Spring's special "classpath:" pseudo-URL, which will be resolved to a corresponding URI.
By default, this editor will encode Strings into URIs. For instance, a space will be encoded into
%20
. This behavior can be changed by calling theURIEditor(boolean)
constructor.Note: A URI is more relaxed than a URL in that it does not require a valid protocol to be specified. Any scheme within a valid URI syntax is allowed, even without a matching protocol handler being registered.
Constructor Summary
Constructors Constructor Description URIEditor()
Create a new, encoding URIEditor, converting "classpath:" locations into standard URIs (not trying to resolve them into physical resources).URIEditor(boolean encode)
Create a new URIEditor, converting "classpath:" locations into standard URIs (not trying to resolve them into physical resources).URIEditor(ClassLoader classLoader)
Create a new URIEditor, using the given ClassLoader to resolve "classpath:" locations into physical resource URLs.URIEditor(ClassLoader classLoader, boolean encode)
Create a new URIEditor, using the given ClassLoader to resolve "classpath:" locations into physical resource URLs.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected URI
createURI(String value)
Create a URI instance for the given user-specified String value.String
getAsText()
void
setAsText(String text)
Methods inherited from class java.beans.PropertyEditorSupport
addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, setValue, supportsCustomEditor
Constructor Detail
URIEditor
public URIEditor()
Create a new, encoding URIEditor, converting "classpath:" locations into standard URIs (not trying to resolve them into physical resources).
URIEditor
public URIEditor(boolean encode)
Create a new URIEditor, converting "classpath:" locations into standard URIs (not trying to resolve them into physical resources).- Parameters:
encode
- indicates whether Strings will be encoded or not- Since:
- 3.0
URIEditor
public URIEditor(ClassLoader classLoader)
Create a new URIEditor, using the given ClassLoader to resolve "classpath:" locations into physical resource URLs.- Parameters:
classLoader
- the ClassLoader to use for resolving "classpath:" locations (may benull
to indicate the default ClassLoader)
URIEditor
public URIEditor(ClassLoader classLoader, boolean encode)
Create a new URIEditor, using the given ClassLoader to resolve "classpath:" locations into physical resource URLs.- Parameters:
classLoader
- the ClassLoader to use for resolving "classpath:" locations (may benull
to indicate the default ClassLoader)encode
- indicates whether Strings will be encoded or not- Since:
- 3.0
Method Detail
setAsText
public void setAsText(String text) throws IllegalArgumentException
- Specified by:
setAsText
in interfacePropertyEditor
- Overrides:
setAsText
in classPropertyEditorSupport
- Throws:
IllegalArgumentException
createURI
protected URI createURI(String value) throws URISyntaxException
Create a URI instance for the given user-specified String value.The default implementation encodes the value into a RFC-2396 compliant URI.
- Parameters:
value
- the value to convert into a URI instance- Returns:
- the URI instance
- Throws:
URISyntaxException
- if URI conversion failed
getAsText
public String getAsText()
- Specified by:
getAsText
in interfacePropertyEditor
- Overrides:
getAsText
in classPropertyEditorSupport