public boolean match(BugInstance bugInstance) {
   FieldAnnotation fieldAnnotation = null;
   if (role == null || role.equals("")) fieldAnnotation = bugInstance.getPrimaryField();
   else
     for (BugAnnotation a : bugInstance.getAnnotations())
       if (a instanceof FieldAnnotation && role.equals(a.getDescription())) {
         fieldAnnotation = (FieldAnnotation) a;
         break;
       }
   if (fieldAnnotation == null) {
     return false;
   }
   if (!name.match(fieldAnnotation.getFieldName())) {
     return false;
   }
   if (signature != null && !signature.equals(fieldAnnotation.getFieldSignature())) return false;
   return true;
 }