예제 #1
0
 public boolean isMatch(Alert alert) {
   try {
     Object attr = alert.getAttribute(attribute);
     switch (relation) {
       case EQ:
         return equalObjects(attr, value);
       case NE:
         return !equalObjects(attr, value);
       case CONTAINS:
         {
           if (value instanceof Collection) {
             return ((Collection) value).contains(attr);
           }
           return false;
         }
       default:
         int cmp = ((Comparable) attr).compareTo(value);
         switch (relation) {
           case GT:
             return cmp > 0;
           case GE:
             return cmp >= 0;
           case LT:
             return cmp < 0;
           case LE:
             return cmp <= 0;
           default:
             return false;
         }
     }
   } catch (Exception e) {
     log.warning("AlertPredicate.isMatch", e);
     return false;
   }
 }