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
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
|