## 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 setting 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
`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
`protected URI` `createURI(String value)` Create a URI instance for the given (resolved) 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 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

### 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 be `null` 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 be `null` to indicate the default ClassLoader)
    `encode` - indicates whether Strings will be encoded or not

Method Detail

### 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 (resolved) 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 interface `PropertyEditor`
  Overrides:
    `getAsText` in class `PropertyEditorSupport`