001    package org.shiftone.jrat.core.criteria;
002    
003    
004    import org.shiftone.jrat.util.log.Logger;
005    
006    import java.util.Iterator;
007    
008    
009    /**
010     * @author jeff@shiftone.org (Jeff Drost)
011     */
012    public class OrMethodCriteria extends CompositeMethodCriteria {
013    
014        private static final Logger LOG = Logger.getLogger(OrMethodCriteria.class);
015    
016        public boolean isMatch(String className, long modifier) {
017    
018            Iterator iterator = getCriterion().iterator();
019    
020            while (iterator.hasNext()) {
021                MethodCriteria criteria = (MethodCriteria) iterator.next();
022    
023                if (criteria.isMatch(className, modifier)) {
024                    return true;
025                }
026            }
027    
028            return false;
029        }
030    
031    
032        public boolean isMatch(String className, String methodName, String signature, long modifier) {
033    
034            Iterator iterator = getCriterion().iterator();
035    
036            while (iterator.hasNext()) {
037                MethodCriteria criteria = (MethodCriteria) iterator.next();
038    
039                if (criteria.isMatch(className, methodName, signature, modifier)) {
040                    return true;
041                }
042            }
043    
044            return false;
045        }
046    
047    
048        protected String getTag() {
049            return "or";
050        }
051    }