Java Reference
In-Depth Information
4.
5. public Deliverable(){ }
6. public Deliverable(String newName, String newDescription,
7. double newMaterialsCost, double newProductionTime,
8. double newRate){
9. super(newName, newDescription, newRate);
10. materialsCost = newMaterialsCost;
11. productionTime = newProductionTime;
12. }
13.
14. public void setMaterialsCost(double newCost){ materialsCost = newCost; }
15. public void setProductionTime(double newTime){ productionTime = newTime; }
16.
17. public double getMaterialsCost(){ return materialsCost; }
18. public double getTimeRequired(){ return productionTime; }
19. }
The Task class represents a job that can consist of any number of subtasks or deliverables. For this reason,
getTimeRequired calculates the total time for the Task and all its children by iterating through its list of project
items and calling the getTimeRequired method. The method getMaterialsCost follows a similar strategy,
working through the list of project items and calling each child's getMaterialsCost method.
Example 2.54 Task.java
1. import java.util.ArrayList;
2. import java.util.Iterator;
3. public class Task extends ProjectItem{
4. private ArrayList projectItems = new ArrayList();
5. private double taskTimeRequired;
6.
7. public Task(){ }
8. public Task(String newName, String newDescription,
9. double newTaskTimeRequired, double newRate){
10. super(newName, newDescription, newRate);
11. taskTimeRequired = newTaskTimeRequired;
12. }
13.
14. public void setTaskTimeRequired(double newTaskTimeRequired) { taskTimeRequired =
newTaskTimeRequired; }
15. public void addProjectItem(ProjectItem element){
16. if (!projectItems.contains(element)){
17. projectItems.add(element);
18. }
19. }
20. public void removeProjectItem(ProjectItem element){
21. projectItems.remove(element);
22. }
23.
24. public double getTaskTimeRequired(){ return taskTimeRequired; }
25. public Iterator getProjectItemIterator(){ return projectItems.iterator(); }
26. public double getMaterialsCost(){
27. double totalCost = 0;
28. Iterator items = getProjectItemIterator();
29. while (items.hasNext()){
30. totalCost += ((ProjectItem)items.next()).getMaterialsCost();
31. }
32. return totalCost;
33. }
34. public double getTimeRequired(){
35. double totalTime = taskTimeRequired;
36. Iterator items = getProjectItemIterator();
37. while (items.hasNext()){
38. totalTime += ((ProjectItem)items.next()).getTimeRequired();
39. }
40. return totalTime;
41. }
42. }
Search WWH ::




Custom Search