001 package util;
002
003 import java.text.DecimalFormat;
004
005 /**
006 * A data container to hold the emission line instances and hold a reference
007 * to the source star.
008 */
009 public class Line implements Comparable {
010
011 static DecimalFormat formatter = new DecimalFormat("0.00");
012
013 Star source;
014 double wavelength;
015 //double width;
016 //double strength;
017 //double redshift;
018
019 public Line(Star aSource, double aWavelength) {
020 source = aSource;
021 wavelength = aWavelength;
022 }
023
024 public int compareTo(Object aLine) {
025 if (aLine == null)
026 throw(new NullPointerException("Compare to null Line instance"));
027 else if (aLine instanceof Line) {
028 double w = ((Line) aLine).getWavelength();
029 if (getWavelength() > w) return 1;
030 else if (getWavelength() < w) return -1;
031 }
032 return 0;
033 }
034
035 public Star getSource() {
036 return source;
037 }
038
039 public double getWavelength() {
040 return wavelength;
041 }
042
043 //TODO: make this more flexible
044 public String toString() {
045 String wavelengthString = formatter.format(getWavelength());
046 if (wavelengthString.length() == 7) wavelengthString = " " + wavelengthString;
047 return wavelengthString;
048 }
049 }