001    package edu.nrao.sss.model.source.sort;
002    
003    import edu.nrao.sss.astronomy.CelestialCoordinateSystem;
004    import edu.nrao.sss.astronomy.Epoch;
005    import edu.nrao.sss.astronomy.SkyPosition;
006    import edu.nrao.sss.measure.Latitude;
007    import edu.nrao.sss.model.source.Source;
008    import edu.nrao.sss.sort.SortOrder;
009    
010    /**
011     * Sorts {@link Source sources} based on the latitude of the position of
012     * their central subsources.
013     * <p/>
014     * The default values for this key's attributes are:
015     * <ul>
016     *   <li>{@link #setOrder(SortOrder) Sort order}:
017     *       {@link SortOrder#NATURAL natural}</li>
018     *   <li>{@link #setConversionParameters(CelestialCoordinateSystem, Epoch)
019     *       Coordinate System}:
020     *       {@link CelestialCoordinateSystem#EQUATORIAL}</li>
021     *   <li>{@link #setConversionParameters(CelestialCoordinateSystem, Epoch)
022     *       Epoch}: {@link Epoch#J2000}.</li>
023     *   <li>{@link #turnOffConversion() Perform coordinate system conversion}:
024     *       true</li>
025     *   <li>{@link #setQueryTime(java.util.Date) Query time}: current time</li> 
026     * </ul>
027     * <p>
028     * <b>Version Info:</b>
029     * <table style="margin-left:2em">
030     *   <tr><td>$Revision: 616 $</td></tr>
031     *   <tr><td>$Date: 2007-05-16 14:22:53 -0600 (Wed, 16 May 2007) $</td></tr>
032     *   <tr><td>$Author: dharland $</td></tr>
033     * </table></p>
034     * 
035     * @author David M. Harland
036     * @since 2007-05-08
037     */
038    public class SourceLatitudeSortKey
039      extends SourceEqArcSortKey<Latitude>
040    {
041      Latitude getArc(SkyPosition position)
042      {
043        return position == null ? null : position.getLatitude(queryTime);
044      }
045    }