// ================================================== // Copyright 2013. // Siemens Product Lifecycle Management Software Inc. // All Rights Reserved. // ================================================== /** @file This file contains the declaration for the abstract class BusinessObjectExtender. */ /* */ #ifndef TEAMCENTER__BUSINESSOBJECTEXTENDER__HXX #define TEAMCENTER__BUSINESSOBJECTEXTENDER__HXX #include #include #include #include #include #include #include #include /** @defgroup BO BusinessObject (Metaframework) @ingroup TC BusinessObject provides the interface for Metaframework. New business objects created in BMIDE will inherit the basic operations from this interface. @{ */ namespace Teamcenter { class BusinessObjectExtender; class BusinessObjectExtenderImpl; class BusinessObjectRegistryImpl; class BusinessObjectExtenderRegistryImpl; class BusinessObject; } /** @brief Abstract BusinessObjectExtender Parent class for All Business Object Extenders. @code class Teamcenter::mySolution::Item : public Teamcenter::BusinessObjectExtender @endcode */ class METAFRAMEWORK_API Teamcenter::BusinessObjectExtender : public Teamcenter::Object { public: /** Constructor for a BusinessObjectExtender. */ explicit BusinessObjectExtender( tag_t owningObjectTag /**< (I) The input Owning Object tag */ ); /** Destructor for a BusinessObjectExtender. */ virtual ~BusinessObjectExtender() = 0; /** Retrieves the name of the Extender Interface. @returns The name of the Extender Interface. */ static const std::string& getExtenderInterfaceName(); /** Initialization for object instantiation. */ virtual void initialize( RootObjectImpl * impl = 0 /**< (I) The input Implementation Object */ ); /** Sets the Type Tag from the owning Object. */ void setTypeTag( tag_t tag /**< (I) The input Type tag */ ); /** Retrieves the Owning Object tag. @returns A tag for the Owning Object. */ tag_t getTag() const; /** Retrieves the Owning Object Type tag. @returns A tag for the Owning Object Type. */ tag_t getTypeTag() const; private: /** Name of the Object. */ static std::string m_name; /** Owning business object tag. */ tag_t m_owningObjectTag; /** Owning business object type tag. */ tag_t m_owningObjectTypeTag; /** Private default constructor. We do not want this class instantiated without the business object passed in. */ BusinessObjectExtender( const BusinessObjectExtender& ); /** Private default copy constructor. We do not want this class instantiated without the business object passed in. */ BusinessObjectExtender& operator=( const BusinessObjectExtender& ); /** Private default copy destructor. */ BusinessObjectExtender(); }; /** @} */ #include #endif // TEAMCENTER__BUSINESSOBJECTEXTENDER__HXX