/*
* Geotoolkit.org - An Open Source Java GIS Toolkit
* http://www.geotoolkit.org
*
* (C) 2010-2012, Open Source Geospatial Foundation (OSGeo)
* (C) 2010-2012, Geomatys
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotoolkit.process;
import java.util.List;
import org.opengis.metadata.Identifier;
import org.opengis.metadata.identification.Identification;
import org.opengis.util.NoSuchIdentifierException;
/**
* A collection of {@link ProcessDescriptor}s identified by name.
*
* @author Johann Sorel (Geomatys)
* @version 3.19
*
* @since 3.19
* @module
*/
public interface ProcessingRegistry {
/**
* General information about this registry. For every descriptors managed by this registry,
* the {@linkplain Identifier#getAuthority() identifier authority} shall be equals to this
* {@linkplain Identification#getCitation() identification citation}.
*
* @return The identification of this registry.
*/
Identification getIdentification();
/**
* Return all process descriptors available in this registry.
*
* @return All process descriptors
*/
List<ProcessDescriptor> getDescriptors();
/**
* Convenience method returning a view over the names of all process descriptors.
* The returned names are valid only within this factory.
*
* @return The names of all process descriptors.
*/
List<String> getNames();
/**
* Return the process descriptor for this given name.
*
* @param name The name of the desired process descriptor.
* @return The process descriptor (never null).
* @throws NoSuchIdentifierException if no descriptor exist for the given name.
*/
ProcessDescriptor getDescriptor(String name) throws NoSuchIdentifierException;
}