Browse Source
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3290 50f2f4bb-b051-0410-bef5-90022cba6387pull/1/head
4 changed files with 98 additions and 5 deletions
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
/* |
||||
* Copyright 2002-2010 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.beans.propertyeditors; |
||||
|
||||
import java.beans.PropertyEditorSupport; |
||||
import java.io.IOException; |
||||
|
||||
import org.xml.sax.InputSource; |
||||
|
||||
import org.springframework.core.io.Resource; |
||||
import org.springframework.core.io.ResourceEditor; |
||||
import org.springframework.util.Assert; |
||||
|
||||
/** |
||||
* Editor for <code>org.xml.sax.InputSource</code>, converting from a |
||||
* Spring resource location String to a SAX InputSource object. |
||||
* |
||||
* <p>Supports Spring-style URL notation: any fully qualified standard URL |
||||
* ("file:", "http:", etc) and Spring's special "classpath:" pseudo-URL. |
||||
* |
||||
* @author Juergen Hoeller |
||||
* @since 3.0.3 |
||||
* @see org.xml.sax.InputSource |
||||
* @see org.springframework.core.io.ResourceEditor |
||||
* @see org.springframework.core.io.ResourceLoader |
||||
* @see org.springframework.beans.propertyeditors.URLEditor |
||||
* @see org.springframework.beans.propertyeditors.FileEditor |
||||
*/ |
||||
public class InputSourceEditor extends PropertyEditorSupport { |
||||
|
||||
private final ResourceEditor resourceEditor; |
||||
|
||||
|
||||
/** |
||||
* Create a new InputSourceEditor, |
||||
* using the default ResourceEditor underneath. |
||||
*/ |
||||
public InputSourceEditor() { |
||||
this.resourceEditor = new ResourceEditor(); |
||||
} |
||||
|
||||
/** |
||||
* Create a new InputSourceEditor, |
||||
* using the given ResourceEditor underneath. |
||||
* @param resourceEditor the ResourceEditor to use |
||||
*/ |
||||
public InputSourceEditor(ResourceEditor resourceEditor) { |
||||
Assert.notNull(resourceEditor, "ResourceEditor must not be null"); |
||||
this.resourceEditor = resourceEditor; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void setAsText(String text) throws IllegalArgumentException { |
||||
this.resourceEditor.setAsText(text); |
||||
Resource resource = (Resource) this.resourceEditor.getValue(); |
||||
try { |
||||
setValue(resource != null ? new InputSource(resource.getURL().toString()) : null); |
||||
} |
||||
catch (IOException ex) { |
||||
throw new IllegalArgumentException( |
||||
"Could not retrieve URL for " + resource + ": " + ex.getMessage()); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public String getAsText() { |
||||
InputSource value = (InputSource) getValue(); |
||||
return (value != null ? value.getSystemId() : ""); |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue