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 
  181       : m_factoryKey(factoryKey)
 
  186     template<
class TPRODUCT, 
class TFACTORYKEY, 
class TPARAM, 
class TKEYCOMPARE> 
inline 
  189       getDictionary().remove(m_factoryKey);
 
  195 #endif  // __TERRALIB_COMMON_INTERNAL_PARAMETERIZEDABSTRACTFACTORY_H 
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
 
ParameterizedAbstractFactory(const TFACTORYKEY &factoryKey)
It creates the factory. 
 
This class represents a dictionary of factories. 
 
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. 
 
virtual ~ParameterizedAbstractFactory()
Virtual destructor. 
 
ParameterizedAbstractFactory & operator=(const ParameterizedAbstractFactory &rhs)
Assignment operator not allowed. 
 
#define TR_COMMON(message)
It marks a string in order to get translated. This is the mark used in the Common module of TerraLib...
 
virtual TPRODUCT * build(TPARAM p)=0
Concrete factories (derived from this one) must implement this method in order to create objects...
 
A dictionary for a Factory. 
 
TFACTORYKEY m_factoryKey
The key that identifies the concrete factory: it will be used for unregistering the factory during de...
 
static dictionary_type & getDictionary()
It returns a reference to the internal dictionary. 
 
FactoryDictionary< ParameterizedAbstractFactory< TPRODUCT, TFACTORYKEY, TPARAM, TKEYCOMPARE >, TFACTORYKEY, TKEYCOMPARE > dictionary_type
 
const TFACTORYKEY & getKey() const 
It returns the factory key associated to the concreate factory. 
 
static TPRODUCT * make(const TFACTORYKEY &factoryKey, TPARAM p)
It creates an object with the appropriated factory.