#include <cannotation.h>
Public Types | |
| typedef std::map< std::string, boost::shared_ptr < IAnnotInitializator > > | AnnotList |
Public Member Functions | |
| UniversalAnnotInitializer () | |
| UniversalAnnotInitializer (AnnotList impls) | |
| virtual | ~UniversalAnnotInitializer () |
| SupportedList | getSupportedList () const |
| bool | registerInitializer (std::string annotType, boost::shared_ptr< IAnnotInitializator > impl, bool forceNew=false) |
| virtual bool | operator() (boost::shared_ptr< CDict > &annotDict, std::string annotType) |
Private Attributes | |
| AnnotList | implList |
Composite for annotation intializers.
Collects implementators of IAnnotInitializator interfaces. Each implementator is associated with annotation type(s) which is supported. Function operator delegates work to registered implementator or just adds Type field with Annot value.
| typedef std::map<std::string, boost::shared_ptr<IAnnotInitializator> > pdfobjects::utils::UniversalAnnotInitializer::AnnotList |
Type for implementators mapping. Maps annotation intializator name to implementation.
| pdfobjects::utils::UniversalAnnotInitializer::UniversalAnnotInitializer | ( | ) | [inline] |
Empty constructor.
Doesn't do any special initialization. implList is empty and so no initializators are supported by default.
| pdfobjects::utils::UniversalAnnotInitializer::UniversalAnnotInitializer | ( | AnnotList | impls | ) | [inline] |
Initialization constructor from existing mapping.
| impls | Existing mapping. |
Use given mapping for implList initialization.
| virtual pdfobjects::utils::UniversalAnnotInitializer::~UniversalAnnotInitializer | ( | ) | [inline, virtual] |
| UniversalAnnotInitializer::SupportedList pdfobjects::utils::UniversalAnnotInitializer::getSupportedList | ( | ) | const [virtual] |
Returns list of supported initializators.
Implements pdfobjects::utils::IAnnotInitializator.
References util::annotType(), and implList.
| bool pdfobjects::utils::UniversalAnnotInitializer::operator() | ( | boost::shared_ptr< CDict > & | annotDict, | |
| std::string | annotType | |||
| ) | [virtual] |
Initialization function.
| annotDict | Annotation dictionary to initialize. | |
| annotType | Name of the annotation type to initialize. |
Sets Type field value to Annot, if it as different or missing value and searches initializator for given annotType. If found, delegates to the implementation and returns same as implementator functor. Otherwise returns false.
Implements pdfobjects::utils::IAnnotInitializator.
References implList.
| bool pdfobjects::utils::UniversalAnnotInitializer::registerInitializer | ( | std::string | annotType, | |
| boost::shared_ptr< IAnnotInitializator > | impl, | |||
| bool | forceNew = false | |||
| ) |
Registers new implementator for given annotation type.
| annotType | Type of the annotation. | |
| impl | Implementator for initializator. | |
| forceNew | Flag controling overwriting. |
Checks whether given type is already registered (mapping for this key is in implList) and if it is checks forceNew flag. If it is true, replaces current implementator (in implList) with given one, otherwise doesn't do anything. If it is not registered, registers new with annotType as key and impl pair to implList.
Registered initializators.
Referenced by getSupportedList(), and operator()().