/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.data.gen.info;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
import org.geoserver.platform.GeoServerExtensions;
import org.geoserver.platform.GeoServerResourceLoader;
/**
* The default implementation for GeneralizationInfosProvider,
* reading the info from an XML file.
*
* The xml schema file is "/geninfos_1.0.xsd"
*
* @author Christian Mueller
*/
public class GeneralizationInfosProviderImpl extends
org.geotools.data.gen.info.GeneralizationInfosProviderImpl {
protected URL deriveURLFromSourceObject(Object source) throws IOException {
if (source == null) {
throw new IOException("Cannot read from null");
}
if (source instanceof String) {
String path = (String) source;
GeoServerResourceLoader loader = GeoServerExtensions.bean(GeoServerResourceLoader.class);
File f = loader.url(path);
URL url = null;
if (f!= null && f.exists()) {
url = f.toURI().toURL();
} else {
url = new URL(path);
}
url = new URL(URLDecoder.decode(url.toExternalForm(), "UTF8"));
return url;
}
throw new IOException("Cannot read from " + source);
}
}