001    package edu.nrao.sss.model.source;
002    
003    import javax.xml.bind.annotation.XmlElement;
004    import javax.xml.bind.annotation.XmlType;
005    
006    /**
007     * A source brightness that spans an area, as opposed to a single point.
008     * <p>
009     * <b>CVS Info:</b>
010     * <table style="margin-left:2em">
011     *   <tr><td>$Revision: 523 $</td></tr>
012     *   <tr><td>$Date: 2007-04-16 10:09:08 -0600 (Mon, 16 Apr 2007) $</td></tr>
013     *   <tr><td>$Author: btruitt $</td></tr>
014     * </table></p>
015     *  
016     * @author David M. Harland
017     * @since 2006-05-16
018     */
019    @XmlType(propOrder= {"minorAxisDiameter", "majorAxisDiameter", "positionAngle"})
020    public abstract class AreaBrightness
021      extends DescriptiveBrightness
022    {
023      /** Helps create a new instance. */
024      AreaBrightness()
025      {
026        super();
027      }
028      
029      /**
030       * Sets the magnitude of the major axis diameter of this source.
031       * @param majorDiameter
032       */
033      @XmlElement
034      public void setMajorAxisDiameter(double majorDiameter)
035      {
036        this.majorAxisDiameter = majorDiameter;
037      }
038    
039      /**
040       * Sets the magnitude of the minor axis diameter of this source.
041       * @param minorDiameter
042       */
043      @XmlElement
044      public void setMinorAxisDiameter(double minorDiameter)
045      {
046        this.minorAxisDiameter = minorDiameter;
047      }
048    
049      /**
050       * Sets the position angle of this source.
051       * <p>
052       * A source whose major axis runs north-south has a position angle of zero.
053       * Positive angles are measured eastward from north.</p>
054       * @param decimalDegrees
055       */
056      @XmlElement
057      public void setPositionAngle(double decimalDegrees)
058      {
059        this.positionAngle = decimalDegrees;
060      }
061      
062    
063      //These get methods are here only for JAXB purposes.  If they were not here,
064      //JAXB would complain that it found setX, but not getX, even though getX is
065      //present in an ancestral class.
066    
067      public double getMajorAxisDiameter()
068      {
069        return super.getMajorAxisDiameter();
070      }
071      
072      public double getMinorAxisDiameter()
073      {
074        return super.getMinorAxisDiameter();
075      }
076    
077      public double getPositionAngle()
078      {
079        return super.getPositionAngle();
080      }
081    }