Refine.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2004 CSIRO ICT Centre
00003  *
00004  * $Id: Refine.h 587 2004-12-03 15:06:33Z nch $
00005  */
00006 
00007 /*
00008  * Refine defines the interface that every refine step must implement.
00009  *
00010  * Refine classes test candidate pairs previously matched by a filter
00011  * for a more discriminating matching test. Two ObjectPairConsumers
00012  * are required to report those that do match and those that dont.
00013  *
00014  * Subclasses need to implement the refine method.
00015  *
00016  * The getName method returns the name of the refine class.
00017  */
00018 
00019 #ifndef REFINE_DEFINED
00020 #define REFINE_DEFINED
00021 
00022 #include "String.h"
00023 
00024 class Object;
00025 class ObjectPairConsumer;
00026 
00027 
00028 class Refine
00029 {
00030   public:
00031     Refine(ObjectPairConsumer * mPPCons, ObjectPairConsumer * uPPCons);
00032     virtual ~Refine() {}
00033     virtual String const & getName() const=0;
00034     virtual bool refine(Object const * a, Object const * b)=0;
00035     virtual void finished();
00036 
00037   protected:
00038     ObjectPairConsumer * matchedObjectPairConsumer;
00039     ObjectPairConsumer * unmatchedObjectPairConsumer;
00040 
00041     virtual bool reportMatch(Object const * a, Object const * b);
00042     virtual void reportNoMatch(Object const * a, Object const * b);
00043 
00044   private:
00045     Refine();
00046     Refine(Refine const &);
00047     Refine & operator=(Refine const &);
00048 };
00049 
00050 
00051 #endif // ifndef REFINE_DEFINED
Generated on Mon Oct 4 10:39:55 2010 for Matching.kdevelop by  doxygen 1.6.3