001    /**
002     * Equal.java
003     * jCOLIBRI2 framework. 
004     * @author Juan A. Recio-García.
005     * GAIA - Group for Artificial Intelligence Applications
006     * http://gaia.fdi.ucm.es
007     * 28/10/2007
008     */
009    package jcolibri.method.retrieve.FilterBasedRetrieval.predicates;
010    
011    import jcolibri.exception.NoApplicableFilterPredicateException;
012    
013    /**
014     * Predicate that compares if the case object is equal to a fixed value.
015     * @author Juan A. Recio-Garcia
016     * @author Developed at University College Cork (Ireland) in collaboration with Derek Bridge.
017     * @version 1.0
018     * @see jcolibri.method.retrieve.FilterBasedRetrieval.FilterBasedRetrievalMethod
019     * @see jcolibri.method.retrieve.FilterBasedRetrieval.FilterConfig
020     */
021    public class EqualTo implements FilterPredicate
022    {
023        private Object fqo;
024        public EqualTo(Object fixedQueryObject)
025        {
026            fqo = fixedQueryObject;
027        }
028        
029        public boolean compute(Object caseObject, Object queryObject) throws NoApplicableFilterPredicateException
030        {
031            if((caseObject == null)&&(fqo==null))
032                return true;
033            else if(caseObject == null)
034                return false;
035            else if(fqo == null)
036                return true;
037            else 
038                return caseObject.equals(fqo);
039        }
040    
041    }