public class URIEditor extends PropertyEditorSupport
java.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 the URIEditor(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 and 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.
|
Modifier and Type | Method and Description |
---|---|
protected URI |
createURI(String value)
Create a URI instance for the given (resolved) String value.
|
String |
getAsText() |
void |
setAsText(String text) |
addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, setValue, supportsCustomEditor
public URIEditor()
public URIEditor(boolean encode)
encode
- indicates whether Strings will be encoded or notpublic URIEditor(@Nullable ClassLoader classLoader)
classLoader
- the ClassLoader to use for resolving "classpath:" locations
(may be null
to indicate the default ClassLoader)public URIEditor(@Nullable ClassLoader classLoader, boolean encode)
classLoader
- the ClassLoader to use for resolving "classpath:" locations
(may be null
to indicate the default ClassLoader)encode
- indicates whether Strings will be encoded or notpublic void setAsText(String text) throws IllegalArgumentException
setAsText
in interface PropertyEditor
setAsText
in class PropertyEditorSupport
IllegalArgumentException
protected URI createURI(String value) throws URISyntaxException
The default implementation encodes the value into a RFC 2396 compliant URI.
value
- the value to convert into a URI instanceURISyntaxException
- if URI conversion failedpublic String getAsText()
getAsText
in interface PropertyEditor
getAsText
in class PropertyEditorSupport