ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
itk::MetaDataObject< MetaDataObjectType > Class Template Reference

Allows arbitrary data types to be stored as MetaDataObjectBase types, and to be stored in a MetaDataDictionary. More...

#include <itkMetaDataObject.h>

Inheritance diagram for itk::MetaDataObject< MetaDataObjectType >:
Collaboration diagram for itk::MetaDataObject< MetaDataObjectType >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef SmartPointer< SelfPointer
typedef MetaDataObject Self
typedef MetaDataObjectBase Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const std::type_info & GetMetaDataObjectTypeInfo (void) const
virtual const char * GetMetaDataObjectTypeName (void) const
const MetaDataObjectType & GetMetaDataObjectValue (void) const
virtual const char * GetNameOfClass () const
 MetaDataObject (void)
 MetaDataObject (const MetaDataObjectType InitializerValue)
 MetaDataObject (const MetaDataObject< MetaDataObjectType > &TemplateObject)
virtual void Print (std::ostream &os) const
void SetMetaDataObjectValue (const MetaDataObjectType &NewValue)
virtual ~MetaDataObject (void)

Static Public Member Functions

static Pointer New (void)

Private Attributes

MetaDataObjectType m_MetaDataObjectValue

Detailed Description

template<class MetaDataObjectType>
class itk::MetaDataObject< MetaDataObjectType >

Allows arbitrary data types to be stored as MetaDataObjectBase types, and to be stored in a MetaDataDictionary.

Author:
Hans J. Johnson

The MetaDataObject class is a templated class that is a specialization of the MetaDataObjectBase type. This class allows arbitrary data types to be stored as MetaDataObjectBase types, and to be stored in a MetaDataDictionary.

Any class or built in type that has valid copy constructor and operator= can be wrapped directly with this simple template type.

Classes or built in types that do not have valid copy constructors or operator= implemented will have to implement those functions by deriving from MetaDataObject<MetaDataObjectType> and redefining the copy constructor and initializing constructor and the Get/Set functions to work around those deficiencies.

The behavior of the MetaDataObject<Type>::Print() function has many plausible application dependant implementations. The default implementation prints the string "[UNKNOWN PRINT CHARACTERISTICS]" that works for all possible MetaDataObject types.

The application developer may overload the default implementation to provide a specialized Print() characteristics to produce results desirable for their application. A set of very crude Macros {NATIVE_TYPE_METADATAPRINT, ITK_OBJECT_TYPE_METADATAPRINT_1COMMA, ITK_IMAGE_TYPE_METADATAPRINT } are provided to facilitate a very simple implementation, and as an example.

Definition at line 74 of file itkMetaDataObject.h.


Member Typedef Documentation

template<class MetaDataObjectType>
typedef SmartPointer< const Self > itk::MetaDataObject< MetaDataObjectType >::ConstPointer

Reimplemented from itk::MetaDataObjectBase.

Definition at line 82 of file itkMetaDataObject.h.

template<class MetaDataObjectType>
typedef SmartPointer< Self > itk::MetaDataObject< MetaDataObjectType >::Pointer

Reimplemented from itk::MetaDataObjectBase.

Definition at line 81 of file itkMetaDataObject.h.

template<class MetaDataObjectType>
typedef MetaDataObject itk::MetaDataObject< MetaDataObjectType >::Self

Smart pointer typedef support.

Reimplemented from itk::MetaDataObjectBase.

Definition at line 79 of file itkMetaDataObject.h.

template<class MetaDataObjectType>
typedef MetaDataObjectBase itk::MetaDataObject< MetaDataObjectType >::Superclass

Reimplemented from itk::MetaDataObjectBase.

Definition at line 80 of file itkMetaDataObject.h.


Constructor & Destructor Documentation

template<class MetaDataObjectType>
itk::MetaDataObject< MetaDataObjectType >::MetaDataObject ( void  )
Author:
Hans J. Johnson Default constructor with no initialization.
template<class MetaDataObjectType>
virtual itk::MetaDataObject< MetaDataObjectType >::~MetaDataObject ( void  ) [virtual]
Author:
Hans J. Johnson Default virtual Destructor
template<class MetaDataObjectType>
itk::MetaDataObject< MetaDataObjectType >::MetaDataObject ( const MetaDataObjectType  InitializerValue)
Author:
Hans J. Johnson Initializer constructor that sets m_MetaDataObjectValue to InitializerValue
template<class MetaDataObjectType>
itk::MetaDataObject< MetaDataObjectType >::MetaDataObject ( const MetaDataObject< MetaDataObjectType > &  TemplateObject)
Author:
Hans J. Johnson Copy constructor that sets m_MetaDataObjectValue to TemplateObject.m_MetaDataObjectValue

Member Function Documentation

template<class MetaDataObjectType>
virtual ::itk::LightObject::Pointer itk::MetaDataObject< MetaDataObjectType >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::LightObject.

template<class MetaDataObjectType>
virtual const std::type_info& itk::MetaDataObject< MetaDataObjectType >::GetMetaDataObjectTypeInfo ( void  ) const [virtual]
Author:
Hans J. Johnson

The definition of this function is necessary to fulfill the interface of the MetaDataObjectBase

Returns:
A constant reference to a std::type_info object

Reimplemented from itk::MetaDataObjectBase.

template<class MetaDataObjectType>
virtual const char* itk::MetaDataObject< MetaDataObjectType >::GetMetaDataObjectTypeName ( void  ) const [virtual]
Author:
Hans J. Johnson

The definition of this function is necessary to fulfill the interface of the MetaDataObjectBase

Returns:
A pointer to a const char array containing the unique type name.

Reimplemented from itk::MetaDataObjectBase.

template<class MetaDataObjectType>
const MetaDataObjectType& itk::MetaDataObject< MetaDataObjectType >::GetMetaDataObjectValue ( void  ) const
Author:
Hans J. Johnson Function to return the stored value of type MetaDataObjectType.
Returns:
a constant reference to a MetaDataObjectType
template<class MetaDataObjectType>
virtual const char* itk::MetaDataObject< MetaDataObjectType >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::MetaDataObjectBase.

template<class MetaDataObjectType>
static Pointer itk::MetaDataObject< MetaDataObjectType >::New ( void  ) [static]

Method for creation through the object factory.

Reimplemented from itk::LightObject.

Referenced by itk::EncapsulateMetaData().

template<class MetaDataObjectType>
virtual void itk::MetaDataObject< MetaDataObjectType >::Print ( std::ostream &  os) const [virtual]

Defines the default behavior for printing out this element

Parameters:
osAn output stream

Reimplemented from itk::MetaDataObjectBase.

template<class MetaDataObjectType>
void itk::MetaDataObject< MetaDataObjectType >::SetMetaDataObjectValue ( const MetaDataObjectType &  NewValue)
Author:
Hans J. Johnson Function to set the stored value of type MetaDataObjectType.
Parameters:
NewValueA constant reference to at MetaDataObjectType.

Member Data Documentation

template<class MetaDataObjectType>
MetaDataObjectType itk::MetaDataObject< MetaDataObjectType >::m_MetaDataObjectValue [private]
Author:
Hans J. Johnson A variable to store this derived type.

Definition at line 159 of file itkMetaDataObject.h.


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