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; } }