package plan.dom; import java.util.*; /** A feature request recorded against a given software product. */ public class Feature { /** Create a new feature with the indicated attributes. * @param id a (unique) numerical id for the feature * @param shortDescription a short textuial description of the feature (a phrase) * @param sizing the effort in person days estimated to code this feature * @param priority the relative importance of implementing this feature */ public Feature(int id, String shortDescription, double sizing, Priority priority) { this.id = id; this.shortDescription = shortDescription; this.sizing = sizing; this.priority = priority; } /** Measures cumulative customer desirability for this feature. * @return the sume of the customer desirabilities acorss all customers requesting (0 if none) */ public double customerDesirability() { double d = 0; for (Enumeration e = customerRequests.elements(); e.hasMoreElements(); ) { CustomerRequest cr = (CustomerRequest)e.nextElement(); int cd = cr.getDesirability(); d += cd; } return d; } public void setSizing(double sizing) { this.sizing = sizing; } public double getSizing() { return sizing; } public void setPriority(Priority priority) { this.priority = priority; } public Priority getPriority() { return priority; } public void setId(int id) { this.id = id; } public int getId() { return id; } public void setShortDescription(String shortDescription) { this.shortDescription = shortDescription; } public String getShortDescription() { return shortDescription; } public void setLongDescription(String longDescription) { this.longDescription = longDescription; } public String getLongDescription() { return longDescription; } public void setChampion(Employee e) { champion = e; } public Employee getChampion() { return champion; } public void addCustomerRequest(CustomerRequest cr) { customerRequests.add(cr); } public Iterator customerRequestIterator() { return customerRequests.iterator(); } private Priority priority; private Employee champion; private double sizing; private int id; private String shortDescription; private String longDescription; private Vector customerRequests = new Vector(); }