org.geoserver.catalog.StoreInfo Maven / Gradle / Ivy
/* Copyright (c) 2001 - 2008 TOPP - www.openplans.org. All rights reserved.
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.catalog;
import java.io.IOException;
import java.io.Serializable;
import java.util.Iterator;
import java.util.Map;
import org.opengis.util.ProgressListener;
/**
* A store of geoaspatial resources.
*
* @author Justin Deoliveira, The Open Planning Project
*/
public interface StoreInfo {
/**
* The store identifier.
*/
String getId();
/**
* The catalog the store is part of.
*/
Catalog getCatalog();
/**
* The store name.
*
* This value is unique among all stores and can be used to identify the
* store.
*
*
* @uml.property name="name"
*/
String getName();
/**
* Sets the name of the store.
*
* @uml.property name="name"
*/
void setName(String name);
/**
* The store description.
*
* This is usually something that is used in a user interface.
*
*
* @uml.property name="description"
*/
String getDescription(); // FIXME: InternationalString ?
/**
* Sets the store description.
*
* This is usually something that is used in a user interface.
*
*
* @uml.property name="description"
*/
void setDescription(String description);
/**
* Map of persistent properties associated with the store.
*
* The intent of this map is for services to associate data with a
* particular store which must be persisted.
*
*
* Key values in this map are of type {@link String}, and values are of
* type {@link Serializable}.
*
*
* @uml.property name="metadata"
*/
Map getMetadata();
/**
* Flag indicating wether or not teh store is enabled or not.
*
* @uml.property name="enabled"
*/
boolean isEnabled();
/**
* Sets the store enabled / disabled flag.
*
* @uml.property name="enabled"
*/
void setEnabled(boolean enabled);
/**
* The namespace the store is part of.
*
* This value is often used to set the namespace of {@link ResourceInfo}objects
* which are associated to the store.
*
*
* @uml.property name="namespace"
* @uml.associationEnd inverse="storeInfo:org.geoserver.catalog.NamespaceInfo"
*/
//NamespaceInfo getNamespace();
/**
* Sets the namespace the store is part of.
*
* @uml.property name="namespace"
*/
//void setNamespace(NamespaceInfo namespace);
/**
* The workspace the store is part of.
*
*/
WorkspaceInfo getWorkspace();
/**
* Sets the workspace the store is part of.
*/
void setWorkspace( WorkspaceInfo workspace );
/**
* The map of connection paramters specific to the store.
*
* Key values in this map are of type {@link String}, and values are of
* type {@link Serializable}.
*
*
* @uml.property name="connectionParameters"
*/
Map getConnectionParameters();
/**
* An error associated with the store.
*
* This value is used to store a problem that occured while attemping to
* connect to the underlying resource of the store. It returns null
* if no such error exists.
*
*
* This is a transient property of the store.
*
*/
Throwable getError();
/**
* Associates an error with the store.
*
* @see {@link #getError()}
*/
void setError(Throwable t);
/**
* Creates an adapter for the store.
*
*
*
*
* @param adapterClass
* The class of the adapter.
* @param hints
* Hints to use when creating the adapter.
*
* @return The adapter, an intsanceof adapterClass, or null
.
*/
T getAdapter(Class adapterClass, Map,?> hints);
/**
* @return Returns a resource with the specified name that is provided by
* the store, or null
if no such resource exists.
*
* The monitor is used to report the progress of loading resoures
* and report any warnings / errors that occur in doing so. Monitor
* may also be null.
*
*/
// T getResource( String name, ProgressListener monitor)
// throws IOException;
/**
* @return Returns the resources provided by this store.
*
* The monitor is used to report the progress of loading resoures
* and report any warnings / errors that occur in doing so. Monitor
* may also be null.
*
* @uml.property name="resources"
* @uml.associationEnd multiplicity="(0 -1)"
* inverse="storeInfo:org.geoserver.catalog.Resource"
*/
// Iterator getResources(ProgressListener monitor) throws IOException;
}