001    package edu.nrao.sss.model.resource;
002    
003    import java.util.List;
004    import java.util.Set;
005    
006    /**
007     * A provider of {@link ReceiverBand receivers}.
008     * <p>
009     * <b>Version Info:</b>
010     * <table style="margin-left:2em">
011     *   <tr><td>$Revision$</td></tr>
012     *   <tr><td>$Date$</td></tr>
013     *   <tr><td>$Author$</td></tr>
014     * </table></p>
015     * 
016     * @author David M. Harland
017     * @since 2007-05-02
018     */
019    public interface ReceiverProvider
020    {
021      /**
022       * Returns a list of all receivers held by this provider.
023       * 
024       * @return a list of all receivers held by this provider.  If the provider
025       *         has no receivers the returned list will be empty.
026       * 
027       * @throws RepositoryException if anything goes wrong while trying to fetch
028       *                             receivers from this provider.
029       */
030      public Set<ReceiverBand> getReceivers();
031      
032      /**
033       * Returns a list of all the combinations of two or more receivers that
034       * may be used simultaneously.
035       * 
036       * @return a list of all the combinations of two or more receivers that
037       *         may be used simultaneously.
038       */
039      public List<Set<ReceiverBand>> getValidReceiverCombinations();
040    }