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 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.
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. ...
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.
virtual ~ParameterizedAbstractFactory()
Virtual destructor.
This class represents a dictionary of factories.
ParameterizedAbstractFactory(const TFACTORYKEY &factoryKey)
It creates the factory.