1 /**
2 *
3 */
4 package net.sf.statcvs.model;
5
6 import java.util.Iterator;
7 import java.util.SortedSet;
8 import java.util.TreeSet;
9
10 /**
11 * @author Benoit
12 *
13 */
14 public class Module implements Comparable {
15 private final SortedSet files = new TreeSet();
16 private final String name;
17 private int currentLoc = -1;
18
19 public Module(final String name) {
20 super();
21 this.name = name;
22 }
23
24 public void addFile(final VersionedFile vf) {
25 files.add(vf);
26 }
27
28 public int getCurrentLinesOfCode() {
29 if (currentLoc < 0) {
30 final Iterator it = files.iterator();
31 currentLoc = 0;
32 while (it.hasNext()) {
33 final VersionedFile vf = (VersionedFile) it.next();
34 currentLoc += vf.getCurrentLinesOfCode();
35 }
36 }
37 return currentLoc;
38 }
39
40 /**
41 * Returns all {@link Revision}s to files in
42 * this directory, in order from oldest to most recent.
43 * @return list of <tt>Revision</tt>s for this directory
44 */
45 public SortedSet getRevisions() {
46 final SortedSet result = new TreeSet();
47 final Iterator iterator = files.iterator();
48 while (iterator.hasNext()) {
49 final VersionedFile file = (VersionedFile) iterator.next();
50 result.addAll(file.getRevisions());
51 }
52 return result;
53 }
54
55 public int compareTo(final Object mod) {
56 return name.compareTo(((Module) mod).name);
57 }
58
59 public String getName() {
60 return name;
61 }
62
63 public SortedSet getFiles() {
64 return files;
65 }
66 }