/*
* Copyright (c) 2015 Data Harmonisation Panel
*
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Data Harmonisation Panel <http://www.dhpanel.eu>
*/
package eu.esdihumboldt.hale.io.geoserver.rest;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.Map;
import org.w3c.dom.Document;
import com.google.common.base.Joiner;
import eu.esdihumboldt.hale.io.geoserver.DataStoreFile;
/**
* Resource manager to manage datastore file resources.
*
* @author Stefano Costa, GeoSolutions
*/
public class DataStoreFileManager extends AbstractResourceManager<DataStoreFile> {
/**
* Constructor.
*
* @param geoserverUrl the base GeoServer URL
* @throws MalformedURLException if the provided URL is invalid
*/
public DataStoreFileManager(String geoserverUrl) throws MalformedURLException {
super(geoserverUrl);
}
/**
* Constructor.
*
* @param geoserverUrl the base GeoServer URL
*/
public DataStoreFileManager(URL geoserverUrl) {
super(geoserverUrl);
}
/**
* @see eu.esdihumboldt.hale.io.geoserver.rest.AbstractResourceManager#list()
*/
@Override
public Document list() {
throw new UnsupportedOperationException(
"list() operation not supported for resource type: "
+ DataStoreFile.class.getName());
}
/**
* @see eu.esdihumboldt.hale.io.geoserver.rest.AbstractResourceManager#read(java.util.Map)
*/
@Override
public Document read(Map<String, String> parameters) {
throw new UnsupportedOperationException(
"read() operation not supported for resource type: "
+ DataStoreFile.class.getName());
}
/**
* @see eu.esdihumboldt.hale.io.geoserver.rest.AbstractResourceManager#getFormat()
*/
@Override
protected String getFormat() {
String extension = (String) resource.getAttribute(DataStoreFile.EXTENSION);
return (extension != null) ? extension : super.getFormat();
}
/**
* @see eu.esdihumboldt.hale.io.geoserver.rest.AbstractResourceManager#getResourceListPath()
*/
@Override
protected String getResourceListPath() {
return null;
}
/**
* @see eu.esdihumboldt.hale.io.geoserver.rest.AbstractResourceManager#getResourcePath()
*/
@Override
protected String getResourcePath() {
String ws = (String) resource.getAttribute(DataStoreFile.WORKSPACE);
String ds = (String) resource.getAttribute(DataStoreFile.DATASTORE);
return Joiner.on('/').join(Arrays.asList("workspaces", ws, "datastores", ds, "file"));
}
}