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 }