001    package edu.nrao.sss.model.project.scheduling;
002    
003    import java.util.List;
004    
005    import edu.nrao.sss.model.resource.TelescopeConfiguration;
006    
007    /**
008     * Represents a specific telescope configuration for the purposes of
009     * scheduling.
010     * @author slovelan
011     */
012    
013    public interface ProgBlock {
014            
015            
016            /**
017             * Returns a set of allowed telescope configurations for this program
018             * block.
019             * @return the telescope configurations that are acceptable for the program block.
020             */
021            
022            public List<TelescopeConfiguration> getAcceptableConfigurations();
023            public void setAcceptableConfigurations( List<TelescopeConfiguration> configs );
024            
025            /**
026             * Returns a complete identifier for the program block.
027             * @return an identifier for the program block.
028             */
029            
030            public String getName();
031            public void setName( String newName );
032            
033            
034            /**
035             * Returns true if there is at least one scheduling block in the project
036             * that has been scheduled; false if there is nothing in the project that
037             * has been scheduled.
038             * @return true if the project is partially scheduled; false otherwise.
039             */
040            
041            public boolean isProjectPartiallyScheduled();
042    
043            
044            
045    
046    }