1 19 20 package edu.umd.cs.findbugs.ba; 21 22 import edu.umd.cs.findbugs.annotations.CheckForNull; 23 24 27 public class NullnessAnnotation extends AnnotationEnumeration<NullnessAnnotation> { 28 public final static NullnessAnnotation CHECK_FOR_NULL = new NullnessAnnotation( 29 "CheckForNull", 3); 30 31 public final static NullnessAnnotation NONNULL = new NullnessAnnotation( 32 "NonNull", 1); 33 34 public final static NullnessAnnotation NULLABLE = new NullnessAnnotation( 35 "Nullable", 2); 36 37 public final static NullnessAnnotation UNKNOWN_NULLNESS = new NullnessAnnotation( 38 "UnknownNullness", 0); 39 40 private final static NullnessAnnotation[] myValues = { UNKNOWN_NULLNESS, 41 NONNULL, NULLABLE, 42 CHECK_FOR_NULL }; 43 44 public static class Parser { 45 @CheckForNull public static NullnessAnnotation parse(String s) { 46 for(NullnessAnnotation v : myValues) 47 if (s.endsWith(v.name)) return v; 48 if (s.endsWith("PossiblyNull")) 49 return CHECK_FOR_NULL; 50 return null; 51 } 52 } 53 public static NullnessAnnotation[] values() { 54 return myValues.clone(); 55 } 56 57 private NullnessAnnotation(String s, int i) { 58 super(s,i); 59 60 } 61 62 63 64 } 65 | Popular Tags |