Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef GenericFactort_h__
- #define GenericFactort_h__
- #include "Node.h"
- #include "tinyxml.h"
- namespace commoncrc
- {
- /*
- Generyczna klasa fabryk dla prymitywów spoza modułu wspólnego.
- Wymaga aby:
- 1. Primitive dziedziczył z PrimitiveBase.
- 2. HelperFactory tworzył obiekty typu HelperPrimitive.
- 3. Istniał konstruktor Primitive(HelperPrimitive)
- */
- template <class Primitive, class PrimitiveBase, class HelperFactory, class HelperPrimitive>
- class GenericFactory: PrimitiveFactory<PrimitiveBase>
- {
- private:
- PrimitiveFactory<PrimitiveBase>* factory;
- public:
- GenericFactory()
- {
- factory = (PrimitiveFactory<PrimitiveBase>*)new HelperFactory();
- }
- ~GenericFactory()
- {
- delete factory;
- }
- virtual std::string getPrimitiveName()
- {
- return factory->getPrimitiveName();
- }
- virtual Primitive* createPrimitive( TiXmlElement* primitiveNode )
- {
- HelperPrimitive* helper = (HelperPrimitive*) factory->createPrimitive(primitiveNode);
- Primitive* primitive = new Primitive(*helper/*, NodeType::intersection*/); //TODO dodatkowe parametry do konstrukora naprawić
- delete helper;
- return primitive;
- }
- };
- } // commoncrc
- #endif
Add Comment
Please, Sign In to add comment