26 #ifndef __TERRALIB_COMMON_INTERNAL_PARAMETERIZEDABSTRACTFACTORY_H    27 #define __TERRALIB_COMMON_INTERNAL_PARAMETERIZEDABSTRACTFACTORY_H    64     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE=std::less<TFACTORYKEY> >
    78         const TFACTORYKEY& 
getKey() 
const;
    92         static TPRODUCT* 
make(
const TFACTORYKEY& factoryKey, TPARAM p);
   110         virtual TPRODUCT* 
build(TPARAM p) = 0;
   154     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE> 
inline   160     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE> 
inline   167         return factory->
build(p);
   172     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE> 
inline   176       return factoryDictionary;
   179     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE> 
inline   186     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE> 
inline   195 #endif  // __TERRALIB_COMMON_INTERNAL_PARAMETERIZEDABSTRACTFACTORY_H TFACTORYKEY m_factoryKey
The key that identifies the concrete factory: it will be used for unregistering the factory during de...
 
This class defines the basic interface of an abstract factory that makes use of parameters to constru...
 
void insert(const TFACTORYKEY &factoryKey, TFACTORY *factory)
It inserts a pointer to a factory and makes it associated to the factory key. 
 
#define TE_TR(message)
It marks a string in order to get translated. 
 
static dictionary_type & getDictionary()
It returns a reference to the internal dictionary. 
 
TFACTORY * find(const TFACTORYKEY &factoryKey) const 
It looks for a given factory identified by a key. 
 
FactoryDictionary< ParameterizedAbstractFactory< TPRODUCT, TFACTORYKEY, TPARAM, TKEYCOMPARE >, TFACTORYKEY, TKEYCOMPARE > dictionary_type
 
A dictionary for a Factory. 
 
ParameterizedAbstractFactory & operator=(const ParameterizedAbstractFactory &rhs)
Assignment operator not allowed. 
 
virtual TPRODUCT * build(TPARAM p)=0
Concrete factories (derived from this one) must implement this method in order to create objects...
 
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
 
static TPRODUCT * make(const TFACTORYKEY &factoryKey, TPARAM p)
It creates an object with the appropriated factory. 
 
const TFACTORYKEY & getKey() const 
It returns the factory key associated to the concreate factory. 
 
void remove(const TFACTORYKEY &factoryKey)
It removes the factory from the dictionary. 
 
virtual ~ParameterizedAbstractFactory()
Virtual destructor. 
 
This class represents a dictionary of factories. 
 
ParameterizedAbstractFactory(const TFACTORYKEY &factoryKey)
It creates the factory.