Definition at line 161 of file productitem.h.
typedef std::auto_ptr<ProductItem> OSB_LIB::ProductItem::AutoPtr |
Short-cut for an auto pointer.
For details see quality manual, implementation patterns: Virtual copy construction.
Reimplemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ResourceItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
Definition at line 179 of file productitem.h.
typedef Id<ProductItem> OSB_LIB::ProductItem::Oid |
Personalization of a product item.
Defines whether it is possible (necessary) to personalize a product item.
persMandatory | Personalization mandatory. |
persOptional | Personalization optional. |
persNone | Personalization not possible. |
Definition at line 214 of file productitem.h.
Configuration of a product item.
Defines whether it is possible (necessary) to configure a product item.
cfgMandatory | Configuration mandatory. |
cfgOptional | Configuration optional. |
cfgNone | Configuration not possible. |
Definition at line 187 of file productitem.h.
Default personalization of a product item.
Defines whether it is possible to default personalize a product item.
defPersMandatory | Default personalization mandatory. |
defPersOptional | Default personalization optional. |
defPersNone | Default personalization not possible. |
Definition at line 199 of file productitem.h.
OSB_LIB::ProductItem::ProductItem | ( | const Oid & | oid, | |
const std::string & | name = "" , |
|||
const std::string & | desc = "" | |||
) |
Constructor with object id, name and description.
OSB_LIB::ProductItem::ProductItem | ( | const ProductItem & | rhs | ) | [protected] |
Copying for derived classes only.
virtual CfgType OSB_LIB::ProductItem::canConfigure | ( | ) | const [pure virtual] |
Configuration type of the product item.
The concrete item types will provide the relavant return values. The value return is class specific.
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
virtual DefPersType OSB_LIB::ProductItem::canDefPers | ( | ) | const [pure virtual] |
Default personalization type of the product item.
The concrete item types will provide the relavant return values. The value return is class specific.
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
virtual CfgPersType OSB_LIB::ProductItem::canPersonalize | ( | ) | const [pure virtual] |
Personalization type of the product item.
The concrete item types will provide the relavant return values.
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
AutoPtr OSB_LIB::ProductItem::clone | ( | ) | const |
Virtual copy construction.
For details see quality manual, implementation patterns.
Reimplemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ResourceItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
virtual ProductItem* OSB_LIB::ProductItem::clone_ | ( | ) | const [private, pure virtual] |
Virtual copy construction.
For details see quality manual, implementation patterns.
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ResourceItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
const std::string& OSB_LIB::ProductItem::configDes | ( | ) | const [inline] |
Description of the product item configuration.
Definition at line 295 of file productitem.h.
References configDes_.
virtual std::auto_ptr<PersProductItem> OSB_LIB::ProductItem::crePersProductItem | ( | ) | const [pure virtual] |
Create a PersProductItem.
Creates a personalized product item of the appropriate type. Derived classes that do not support personalization return an empty auto pointer.
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
const std::string& OSB_LIB::ProductItem::defPersDes | ( | ) | const [inline] |
Description of the default personalization.
Definition at line 304 of file productitem.h.
References defPersDes_.
virtual const PersProductItem* OSB_LIB::ProductItem::defPersItem | ( | ) | const [pure virtual] |
Pointer to the default personalize product item.
The concrete item types will provide it.
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
virtual bool OSB_LIB::ProductItem::delSpecific | ( | const OSB_DB::Session & | session | ) | [private, pure virtual] |
Delete type specific entries from the database.
session | Database session to use. |
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
const std::string& OSB_LIB::ProductItem::desc | ( | ) | const [inline] |
bool OSB_LIB::ProductItem::insert | ( | const OSB_DB::Session & | session | ) |
Insert a product item to the database.
The function calls OSB_DB::ProductGw::insProductItem() to store the data members of the base class. If this is successful the virtual function insSpecific() is used to create type specific entries in the database.
Exception savety: The item's object id remains unchanged if the product item was not inserted into the database. This is the case when the function returns false or if an exception is thrown.
session | Database session to use. |
OsbException |
|
virtual bool OSB_LIB::ProductItem::insSpecific | ( | const OSB_DB::Session & | session | ) | [private, pure virtual] |
Insert type specific members to the database.
session | Database session to use. |
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
const std::string& OSB_LIB::ProductItem::name | ( | ) | const [inline] |
const Oid& OSB_LIB::ProductItem::oid | ( | ) | const [inline] |
ProductItem& OSB_LIB::ProductItem::operator= | ( | const ProductItem & | rhs | ) | [protected] |
Assignment or derived classes only.
virtual std::ostream& OSB_LIB::ProductItem::prInfo | ( | std::ostream & | os | ) | const [virtual] |
Print debugging information.
os | Stream to write to. |
bool OSB_LIB::ProductItem::read | ( | const OSB_DB::Session & | session, | |
bool | baseRead = false | |||
) |
Read a product item from the database.
If not previously done, the function calls OSB_DB::ProductGw::fetch(const Session&, ProductItem&) to read and set the data members of the base class. Afterwards it calls the virtual function readSpecific() to retrieve item type specific member from the database.
session | Database session to use. | |
baseRead | Flag if the members of the base class have already been read (from PRODUCT_ITEM). |
OsbException |
|
virtual bool OSB_LIB::ProductItem::readSpecific | ( | const OSB_DB::Session & | session | ) | [private, pure virtual] |
Read type specific data members from database.
session | Database session to use. |
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
bool OSB_LIB::ProductItem::remove | ( | const OSB_DB::Session & | session | ) |
Delete a product item from the database.
The function first calls the virtual member function delSpecific() to delete data that are specific for a given product item type. In the second step OSB_DB::ProductGw::delProductItem() is called to delete the base part of the product item.
On successful deletion, the item's object id is unset to indicate that the product item does no more exist in the database.
session | Database session to use. |
OsbException |
|
bool OSB_LIB::ProductItem::setConfigDes | ( | const std::string & | configDes | ) |
User provided description of the configuration.
The method returns false if the product item cannot be configured (as determined by canConfigure()).
bool OSB_LIB::ProductItem::setDefPersDes | ( | const std::string & | defPersDes | ) |
User provided description of the default personalization.
The method returns false if the product item cannot be default personalized (as determined by canDefPers()).
void OSB_LIB::ProductItem::setDesc | ( | const std::string & | desc | ) |
Set the description of the product item.
void OSB_LIB::ProductItem::setName | ( | const std::string & | name | ) |
Set the product item name.
bool OSB_LIB::ProductItem::update | ( | const OSB_DB::Session & | session | ) |
Update a product item in the database.
The function first uses OSB_DB::ProductGw::updProductItem() to update the members of the base class and -in case of success- calls the virtual member function updSpecific() to update item type specific data members.
session | Database session to use. |
OsbException |
|
virtual bool OSB_LIB::ProductItem::updSpecific | ( | const OSB_DB::Session & | session | ) | [private, pure virtual] |
Update type specific members in the database.
session | Database session to use. |
Implemented in OSB_LIB::AnItem, OSB_LIB::CallingCardItem, OSB_LIB::CreditItem, OSB_LIB::DeviceItem, OSB_LIB::E164Item, OSB_LIB::IpGroupItem, OSB_LIB::PricelistItem, OSB_LIB::DescriptionItem, OSB_LIB::ServiceItem, OSB_LIB::TrunkItem, and OSB_LIB::TariffSystemItem.
friend class OSB_DB::ProductGw [friend] |
The database gateway needs to populate data members after construction of the correct empty type. ToDo: Provide support for object version.
Definition at line 167 of file productitem.h.
std::string OSB_LIB::ProductItem::configDes_ [protected] |
std::string OSB_LIB::ProductItem::defPersDes_ [protected] |
Default personalization as string.
Definition at line 515 of file productitem.h.
Referenced by defPersDes().
std::string OSB_LIB::ProductItem::des_ [private] |
std::string OSB_LIB::ProductItem::name_ [private] |
Oid OSB_LIB::ProductItem::oid_ [private] |