// CentralDigest.java
//
//    senger@ebi.ac.uk
//    September 2004
//

package org.biomoby.shared;

/**
 * An interface to the cumulated (digested) contents of the Moby Registry.
 *<p>
 *
 * The main purpose of this interface is for those clients that are
 * accessing the whole, or a substantial part of, Moby registry. The
 * implementation may use some less documented features of the Moby
 * registry API that allow to get more information in one go - saving
 * significantly network and time.  <p>
 *
 * @author <A HREF="mailto:senger@ebi.ac.uk">Martin Senger</A>
 * @version $Id: CentralDigest.java,v 1.4 2006/07/07 04:12:40 gordonp Exp $
 */

public interface CentralDigest {

    /*************************************************************************
     * Get definition of all known data types. It is a cumulation of
     * many individual calls to {@link Central#getDataType} for all
     * registered data type names. <p>
     *
     * @throws MobyException if communication with the Moby Registry fails
     *************************************************************************/
    MobyDataType[] getDataTypes()
	throws MobyException;

    /*************************************************************************
     * Get definition of all known service types. It differs from the
     * {@link Central#getServiceTypes} because it returns an array of
     * full definitions of service types, and not just their names and
     * descriptions. <p>
     *
     * @throws MobyException if communication with the Moby Registry fails
     *************************************************************************/
    MobyServiceType[] getFullServiceTypes()
	throws MobyException;

    /*************************************************************************
     * Get definition of all registered service instances. It is a
     * cumulation of many individual calls to {@link
     * Central#findService(MobyService) findService by name} for all
     * known service names. <p>
     *
     * @throws MobyException if communication with the Moby Registry fails
     *************************************************************************/
    MobyService[] getServices()
	throws MobyException;

}

