001 package edu.nrao.sss.model.resource; 002 003 import edu.nrao.sss.util.Identifiable; 004 005 /** 006 * Hardware used on a telescope that is downstream of the receivers. 007 * Correlators and spectrometers are two types of backends. 008 * <p> 009 * <b>Version Info:</b> 010 * <table style="margin-left:2em"> 011 * <tr><td>$Revision: 1219 $</td></tr> 012 * <tr><td>$Date: 2008-04-14 15:03:49 -0600 (Mon, 14 Apr 2008) $</td></tr> 013 * <tr><td>$Author: dharland $</td></tr> 014 * </table></p> 015 * 016 * @author David M. Harland 017 * @since 2006-09-08 018 */ 019 public interface TelescopeBackend 020 extends Cloneable, Identifiable 021 { 022 /** 023 * Configures this hardware so that it comes as close as possible to 024 * satisfying the {@code scienceView}. 025 * 026 * @param scienceView a specification for the science goals to be met 027 * by this hardware. 028 */ 029 public void configureFrom(ResourceSpecification scienceView); 030 031 /** 032 * Returns the general type of this backend. 033 * @return the general type of this backend. 034 */ 035 public BackendType getType(); 036 037 /** 038 * Returns a more specific type for this backend. 039 * @return a more specific type for this backend. 040 */ 041 public CorrelatorName getName(); 042 043 /** 044 * Returns a copy of this backend. 045 * @return a copy of this backend. 046 */ 047 public TelescopeBackend clone(); 048 049 /** 050 * Sets the source of input signals for this backend. 051 * @param newSource 052 * a new source of input signals for this backend. 053 */ 054 public void setSignalSource(AntennaElectronics newSource); 055 056 /** 057 * Returns the source of input signals for this backend. 058 * @return the source of input signals for this backed. 059 */ 060 public AntennaElectronics getSignalSource(); 061 062 /** 063 * Sets the ID of this object; not recommended for most clients. 064 * This method is here primarily for the use of persistence mechanisms. 065 * @param id a new ID for this object. 066 */ 067 public void setId(Long id); 068 069 /** 070 * Resets this instance's ID, and the IDs of all its components, 071 * to a value that represents the unidentified state. 072 * <p> 073 * This method is useful for preparing an instance for storage in a database. 074 * The ID property (as of now, though this may change in the future) is 075 * used by our persistence mechanism to identify objects. If you are 076 * persisting this instance for the first time, you may need to call 077 * this method before performing a save. This is especially true if 078 * you have created this instance from XML, as the XML unmarshalling 079 * brings along the ID property.</p> 080 */ 081 public void clearId(); 082 }