/** 
  * A type to represent a angle
  * @author Barry Cornelius
  * @version 7th February 2000
  */
public interface Angle
{
      /** @return the degrees part of the target angle */
   public int getDegrees();

      /** @return the minutes part of the target angle */
   public int getMinutes();

      /** @return the seconds part of the target angle */
   public int getSeconds();

      /** @return the Direction part of the target angle */
   public char getDirection();

      /** @param  pDegrees the value to set the degrees part of the target */
   public void setDegrees(int pDegrees); 

      /** @param  pMinutes the value to set the minutes part of the target */
   public void setMinutes(int pMinutes);

      /** @param  pSeconds the value to set the seconds part of the target */
   public void setSeconds(int pSeconds);

      /** @param  pDirection the value to set the Direction of the target */
   public void setDirection(char pDirection);

      /** @param  pObject the value with which to compare the target angle
        * @return true if and only if the target represents the same angle
        *         as pObject */
   public boolean equals(Object pObject);

      /** @return the hashcode for the value of the target */
   public int hashCode();

      /** @return a textual representation of the target angle */
   public String toString();

      /** @return the distance from the meridian in seconds */
   public int getDistance();
}
