KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > beans > propertyeditors > URLEditor


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.beans.propertyeditors;
18
19 import java.beans.PropertyEditorSupport JavaDoc;
20 import java.io.IOException JavaDoc;
21 import java.net.URL JavaDoc;
22
23 import org.springframework.core.io.Resource;
24 import org.springframework.core.io.ResourceEditor;
25 import org.springframework.util.Assert;
26
27 /**
28  * Editor for <code>java.net.URL</code>, to directly populate a URL property
29  * instead of using a String property as bridge.
30  *
31  * <p>Supports Spring-style URL notation: any fully qualified standard URL
32  * ("file:", "http:", etc) and Spring's special "classpath:" pseudo-URL,
33  * as well as Spring's context-specific relative file paths.
34  *
35  * <p>Note: A URL must specify a valid protocol, else it will be rejected
36  * upfront. However, the target resource does not necessarily have to exist
37  * at the time of URL creation; this depends on the specific resource type.
38  *
39  * @author Juergen Hoeller
40  * @since 15.12.2003
41  * @see java.net.URL
42  * @see org.springframework.core.io.ResourceEditor
43  * @see org.springframework.core.io.ResourceLoader
44  * @see FileEditor
45  * @see InputStreamEditor
46  */

47 public class URLEditor extends PropertyEditorSupport JavaDoc {
48
49     private final ResourceEditor resourceEditor;
50
51
52     /**
53      * Create a new URLEditor, using the default ResourceEditor underneath.
54      */

55     public URLEditor() {
56         this.resourceEditor = new ResourceEditor();
57     }
58
59     /**
60      * Create a new URLEditor, using the given ResourceEditor underneath.
61      * @param resourceEditor the ResourceEditor to use
62      */

63     public URLEditor(ResourceEditor resourceEditor) {
64         Assert.notNull(resourceEditor, "ResourceEditor must not be null");
65         this.resourceEditor = resourceEditor;
66     }
67
68
69     public void setAsText(String JavaDoc text) throws IllegalArgumentException JavaDoc {
70         this.resourceEditor.setAsText(text);
71         Resource resource = (Resource) this.resourceEditor.getValue();
72         try {
73             setValue(resource != null ? resource.getURL() : null);
74         }
75         catch (IOException JavaDoc ex) {
76             throw new IllegalArgumentException JavaDoc("Could not retrieve URL for " + resource + ": " + ex.getMessage());
77         }
78     }
79
80     public String JavaDoc getAsText() {
81         URL JavaDoc value = (URL JavaDoc) getValue();
82         return (value != null ? value.toExternalForm() : "");
83     }
84
85 }
86
Popular Tags