001    package edu.nrao.sss.model.project;
002    
003    import java.util.List;
004    
005    import edu.nrao.sss.model.RepositoryException;
006    
007    /**
008     * A provider of {@link ExecutionBlock execution blocks}.
009     * <p>
010     * <b>Version Info:</b>
011     * <table style="margin-left:2em">
012     *   <tr><td>$Revision$</td></tr>
013     *   <tr><td>$Date$</td></tr>
014     *   <tr><td>$Author$ (last person to modify)</td></tr>
015     * </table></p>
016     * 
017     * @author David M. Harland
018     * @since 2009-04-10
019     */
020    public interface ExecutionBlockProvider
021    {
022      //TODO this is a stub of the eventual interface, just to get things started
023    
024      /**
025       * Returns a list of all execution blocks held by this provider.
026       * 
027       * @return
028       *   a list of all execution blocks held by this provider.  If this
029       *   provider has no execution blocks the returned list will be empty.
030       * 
031       * @throws RepositoryException
032       *   if anything goes wrong while trying to fetch execution blocks from
033       *   this provider.
034       */
035      public List<ExecutionBlock> getAllExecBlocks()
036        throws RepositoryException;
037    }