You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
3.3 KiB

// ==================================================
// 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 <string>
#include <unidefs.h>
#include <vector>
#include <cstdarg>
#include <metaframework/Object.hxx>
#include <metaframework/BusinessObject.hxx>
#include <metaframework/RootObjectImpl.hxx>
#include <metaframework/libmetaframework_exports.h>
/**
@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 <metaframework/libmetaframework_undef.h>
#endif // TEAMCENTER__BUSINESSOBJECTEXTENDER__HXX