public class Town {
	private String town;
	private double P;
	private double F;
	private double r;
	private TreatmentPlant plant;
	private Town[] upstream;

	public Town(String t, double p, double f, double r, TreatmentPlant plant, Town[] u) {
		town = t;
		P = p;
		F = f;
		this.r = r;
		this.plant = plant;
		upstream = u;
	}

	public double getF() {
		return F;
	}

	public double getP() {
		return P;
	}

	public double getR() {
		return r;
	}

	public String getTown() {
		return town;
	}
	
	public void setTreatmentPlant(TreatmentPlant p) {
		plant= p;
	}
	
	public TreatmentPlant getTreatmentPlant() {
		return plant;
	}

	public double calculateConcentration() {
		double C = P * (1.0 - plant.x);
		if (upstream != null)
			for (int i = 0; i < upstream.length; i++)
				C += upstream[i].F
					* (1.0 - upstream[i].r)
					* upstream[i].calculateConcentration();
		C /= F;
		return C;
	}
}
