1 19 20 package edu.umd.cs.findbugs.ba; 21 22 import edu.umd.cs.findbugs.Detector; 23 import edu.umd.cs.findbugs.annotations.CheckForNull; 24 25 28 public class CheckReturnValueAnnotation extends AnnotationEnumeration<CheckReturnValueAnnotation> { 29 30 final int priority; 31 public final static CheckReturnValueAnnotation CHECK_RETURN_VALUE_UNKNOWN = new CheckReturnValueAnnotation( 32 "UnknownCheckReturnValue", 0, Detector.EXP_PRIORITY); 33 34 public final static CheckReturnValueAnnotation CHECK_RETURN_VALUE_HIGH = new CheckReturnValueAnnotation( 35 "CheckReturnValueHigh", 1, Detector.HIGH_PRIORITY); 36 37 public final static CheckReturnValueAnnotation CHECK_RETURN_VALUE_MEDIUM = new CheckReturnValueAnnotation( 38 "CheckReturnValue", 2, Detector.NORMAL_PRIORITY); 39 public final static CheckReturnValueAnnotation CHECK_RETURN_VALUE_LOW = new CheckReturnValueAnnotation( 40 "CheckReturnValueLow", 3, Detector.LOW_PRIORITY); 41 public final static CheckReturnValueAnnotation CHECK_RETURN_VALUE_IGNORE = new CheckReturnValueAnnotation( 42 "OkToIgnoreReturnValue", 4, Detector.IGNORE_PRIORITY); 43 public final static CheckReturnValueAnnotation CHECK_RETURN_VALUE_VERY_HIGH = new CheckReturnValueAnnotation( 44 "CheckReturnValueVeryHigh", 5, Detector.HIGH_PRIORITY-1); 45 46 47 48 private final static CheckReturnValueAnnotation[] myValues = { CHECK_RETURN_VALUE_UNKNOWN, 49 CHECK_RETURN_VALUE_HIGH,CHECK_RETURN_VALUE_MEDIUM, CHECK_RETURN_VALUE_LOW, CHECK_RETURN_VALUE_IGNORE }; 50 51 52 @CheckForNull public static CheckReturnValueAnnotation parse(String s, String priority) { 53 if (!s.endsWith("CheckReturnValue")) return null; 54 if (priority == null) return CHECK_RETURN_VALUE_MEDIUM; 55 if (priority.endsWith("HIGH")) 56 return CHECK_RETURN_VALUE_HIGH; 57 if (priority.endsWith("MEDIUM")) 58 return CHECK_RETURN_VALUE_MEDIUM; 59 if (priority.endsWith("LOW")) 60 return CHECK_RETURN_VALUE_LOW; 61 throw new IllegalArgumentException ("Bad priority: " + priority); 62 63 } 64 public static CheckReturnValueAnnotation[] values() { 65 return myValues.clone(); 66 } 67 68 public int getPriority() { 69 return priority; 70 } 71 private CheckReturnValueAnnotation(String s, int i, int p) { 72 super(s,i); 73 priority = p; 74 75 } 76 77 78 79 } 80 | Popular Tags |