fw4spl
fwAtomsPatch::IStructuralPatch Class Reference

Base class of all structural patches. More...

#include <IStructuralPatch.hpp>

+ Inheritance diagram for fwAtomsPatch::IStructuralPatch:
+ Collaboration diagram for fwAtomsPatch::IStructuralPatch:

Public Member Functions

virtual bool isA (const std::string &type) const override
 
FWATOMSPATCH_API IStructuralPatch ()
 Constructor.
 
FWATOMSPATCH_API IStructuralPatch (const IStructuralPatch &cpy)
 Copy constructor.
 
virtual FWATOMSPATCH_API ~IStructuralPatch ()
 Destructor.
 
virtual FWATOMSPATCH_API void apply (const std::shared_ptr< ::fwAtoms::Object > &previous, const std::shared_ptr< ::fwAtoms::Object > &current,::fwAtomsPatch::IPatch::NewVersionsType &newVersions) override
 Applies the patch to the specified object. More...
 
virtual FWATOMSPATCH_API const std::string & getTargetClassname () const
 Returns the target classname of the object.
 
virtual FWATOMSPATCH_API const std::string & getTargetVersion () const
 Returns the target version of the object.
 
- Public Member Functions inherited from fwAtomsPatch::IPatch
FWATOMSPATCH_API IPatch ()
 Constructor. Does nothing.
 
FWATOMSPATCH_API IPatch (const IPatch &cpy)
 Copy constructor.
 
virtual FWATOMSPATCH_API ~IPatch ()
 Destructor. Does nothing.
 
virtual FWATOMSPATCH_API void apply (const ::fwAtoms::Object::sptr &previous, const ::fwAtoms::Object::sptr &current,::fwAtomsPatch::IPatch::NewVersionsType &newVersions)=0
 Applies the patch to the specified object.
 
virtual FWATOMSPATCH_API const std::string & getOriginClassname () const
 Returns the origin classname of the object.
 
virtual FWATOMSPATCH_API const std::string & getOriginVersion () const
 Returns the origin version of the object.
 
- Public Member Functions inherited from fwCore::BaseObject

Static Public Member Functions

static bool isTypeOf (const std::string &type)
 
- Static Public Member Functions inherited from fwAtomsPatch::IPatch
static bool isTypeOf (const std::string &type)
 
static const std::string & leafClassname ()
 return object's classname without its namespace, i.e. BaseObject
 
static const std::string & classname ()
 return object's classname without its namespace, i.e. BaseObject
 
- Static Public Member Functions inherited from fwCore::BaseObject
static bool isTypeOf (const std::string &type)
 
static const std::string & leafClassname ()
 return object's classname without its namespace, i.e. BaseObject
 
static const std::string & classname ()
 return object's classname without its namespace, i.e. BaseObject
 

Protected Member Functions

FWATOMSPATCH_API void updateVersion (std::shared_ptr< ::fwAtoms::Object > current)
 Updates the version of the patched object.
 

Protected Attributes

std::string m_targetClassname
 Target type.
 
std::string m_targetVersion
 Target version.
 
- Protected Attributes inherited from fwAtomsPatch::IPatch
std::string m_originClassname
 Origin classname of the object.
 
std::string m_originVersion
 Origin version of the object.
 

Demangling methods

virtual const std::string & getLeafClassname () const override
 return object's classname without its namespace, i.e. BaseObject
 
virtual const std::string & getClassname () const override
 return full object's classname with its namespace, i.e. fwCore::BaseObject
 
static const std::string & leafClassname ()
 return object's classname without its namespace, i.e. BaseObject
 
static const std::string & classname ()
 return object's classname without its namespace, i.e. BaseObject
 

Additional Inherited Members

- Public Types inherited from fwAtomsPatch::IPatch
typedef std::map< ::fwAtoms::Object::sptr,::fwAtoms::Object::sptr > NewVersionsType
 

Detailed Description

Base class of all structural patches.

Definition at line 29 of file IStructuralPatch.hpp.

Member Function Documentation

void fwAtomsPatch::IStructuralPatch::apply ( const std::shared_ptr< ::fwAtoms::Object > &  previous,
const std::shared_ptr< ::fwAtoms::Object > &  current,
::fwAtomsPatch::IPatch::NewVersionsType &  newVersions 
)
overridevirtual

Applies the patch to the specified object.

Parameters
previousobject from which modifications will be applied
currentobject receiving modifications
newVersionsmap containing already patched sub objects
Precondition
previous and current objects must have the same classname and version.

Definition at line 45 of file IStructuralPatch.cpp.

References fwAtomsPatch::helper::getClassname(), fwAtomsPatch::helper::getVersion(), fwAtomsPatch::IPatch::m_originClassname, fwAtomsPatch::IPatch::m_originVersion, and OSLM_ASSERT.

+ Here is the call graph for this function:


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