pdfobjects::utils::UniversalAnnotInitializer Class Reference

#include <cannotation.h>

Inheritance diagram for pdfobjects::utils::UniversalAnnotInitializer:
pdfobjects::utils::IAnnotInitializator

List of all members.

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

Detailed Description

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.


Member Typedef Documentation

typedef std::map<std::string, boost::shared_ptr<IAnnotInitializator> > pdfobjects::utils::UniversalAnnotInitializer::AnnotList

Type for implementators mapping. Maps annotation intializator name to implementation.


Constructor & Destructor Documentation

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.

Parameters:
impls Existing mapping.

Use given mapping for implList initialization.

virtual pdfobjects::utils::UniversalAnnotInitializer::~UniversalAnnotInitializer (  )  [inline, virtual]

Member Function Documentation

UniversalAnnotInitializer::SupportedList pdfobjects::utils::UniversalAnnotInitializer::getSupportedList (  )  const [virtual]

Returns list of supported initializators.

Returns:
list of all names from implList.

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.

Parameters:
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.

Returns:
if given annotType special initialization was done for annotDict.

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.

Parameters:
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.

Returns:
true if implementation was changed/added, false otherwise.

Member Data Documentation

Registered initializators.

Referenced by getSupportedList(), and operator()().


The documentation for this class was generated from the following files: