/**
 * Represents a voltage divider circuit with two resistors.
 *
 * @author Rod Byrne
 * @version 0.1
 * @since October 17, 2004
 */
public class VoltageDivider implements Comparable {
    private Resistor r1, r2;
    private double divider;

    public VoltageDivider( Resistor r1, Resistor r2 ) {
        this.r1 = r1;
        this.r2 = r2;
        double r1R = r1.getResistance();
        double r2R = r2.getResistance();
        this.divider = r2R / (r1R + r2R );
    }

    public double getDivider() {
        return divider;
    }

    public Resistor getR1() {
        return r1;
    }

    public Resistor getR2() {
        return r2;
    }

    public String toString() {
        return r1 + " " + r2 + " " + divider;
    }

    /**
     * Sort the collection with the voltage divider ratio.
     */
    public int compareTo( Object o ) {
        VoltageDivider vd = (VoltageDivider)o;
        if ( divider < vd.divider ) {
            return -1;
        }
        else if ( divider > vd.divider ) {
            return 1;
        }
        else {
            return 0;
        }
    }
}
