1 package net.sourceforge.pmd;
2
3 /**
4 * Enumeration of the types of source code.
5 *
6 * @author Pieter_Van_Raemdonck - Application Engineers NV/SA - www.ae.be
7 */
8 public final class SourceType implements Comparable<SourceType> {
9 public static final SourceType JAVA_13 = new SourceType("java 1.3");
10 public static final SourceType JAVA_14 = new SourceType("java 1.4");
11 public static final SourceType JAVA_15 = new SourceType("java 1.5");
12 public static final SourceType JAVA_16 = new SourceType("java 1.6");
13 public static final SourceType JAVA_17 = new SourceType("java 1.7");
14 public static final SourceType JSP = new SourceType("jsp");
15
16 private static SourceType[] sourceTypes = new SourceType[]{JAVA_13, JAVA_14, JAVA_15, JAVA_16, JAVA_17, JSP};
17
18 private String id;
19
20 /**
21 * Private constructor.
22 */
23 private SourceType(String id) {
24 this.id = id;
25 }
26
27 public String getId() {
28 return id;
29 }
30
31 /**
32 * Get the SourceType for a certain Id. Case insensitive.
33 *
34 * @return null if not found
35 */
36 public static SourceType getSourceTypeForId(String id) {
37 for (SourceType sourceType : sourceTypes) {
38 if (sourceType.getId().equalsIgnoreCase(id)) {
39 return sourceType;
40 }
41 }
42 return null;
43 }
44
45 public boolean equals(Object other) {
46 if (other instanceof SourceType) {
47 return ((SourceType) other).getId().equals(getId());
48 }
49
50 return false;
51 }
52
53 public int hashCode() {
54 return getId().hashCode();
55 }
56
57 public int compareTo(SourceType other) {
58 return getId().compareTo(other.getId());
59 }
60
61 public String toString() {
62 return "SourceType [" + getId() + "]";
63 }
64 }