Package org.springframework.beans.propertyeditors

# Class URIEditor

java.lang.Object
java.beans.PropertyEditorSupport
org.springframework.beans.propertyeditors.URIEditor

All Implemented Interfaces:
  `PropertyEditor`

public class URIEditor extends PropertyEditorSupport
Editor for `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.

Since:
  2.0.2
Author:
  Juergen Hoeller
See Also:
  - `URI`
  - `URLEditor`

## 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

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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### 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(@Nullable 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 be `null` to indicate the default ClassLoader)

### URIEditor

public URIEditor(@Nullable 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 be `null` to indicate the default ClassLoader)
  `encode` - indicates whether Strings will be encoded or not
Since:
  3.0

## Method Details

### setAsText

public void setAsText(String text) throws IllegalArgumentException

Specified by:
  `setAsText` in interface `PropertyEditor`
Overrides:
  `setAsText` in class `PropertyEditorSupport`
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 an 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 interface `PropertyEditor`
Overrides:
  `getAsText` in class `PropertyEditorSupport`