www.pudn.com > ThinkinginJava4thEdition(SourceCode).zip > UseCaseTracker.java


//: annotations/UseCaseTracker.java 
import java.lang.reflect.*; 
import java.util.*; 
 
public class UseCaseTracker { 
  public static void 
  trackUseCases(List useCases, Class cl) { 
    for(Method m : cl.getDeclaredMethods()) { 
      UseCase uc = m.getAnnotation(UseCase.class); 
      if(uc != null) { 
        System.out.println("Found Use Case:" + uc.id() + 
          " " + uc.description()); 
        useCases.remove(new Integer(uc.id())); 
      } 
    } 
    for(int i : useCases) { 
      System.out.println("Warning: Missing use case-" + i); 
    } 
  } 
  public static void main(String[] args) { 
    List useCases = new ArrayList(); 
    Collections.addAll(useCases, 47, 48, 49, 50); 
    trackUseCases(useCases, PasswordUtils.class); 
  } 
} /* Output: 
Found Use Case:47 Passwords must contain at least one numeric 
Found Use Case:48 no description 
Found Use Case:49 New passwords can't equal previously used ones 
Warning: Missing use case-50 
*///:~