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 URIcreateURI(String value)Create a URI instance for the given user-specified String value.StringgetAsText()voidsetAsText(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 benullto 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 benullto 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:
setAsTextin interfacePropertyEditor- Overrides:
setAsTextin 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:
getAsTextin interfacePropertyEditor- Overrides:
getAsTextin classPropertyEditorSupport