Purpose:
A dkEntityDef defines an interface to access and manipulate entities defined in the datastore. An entity corresponds to a table in Relational Databases, an index-class in DL, and so forth. A dkEntityDef may contains a set of dkAttrDef, defining attributes in this entity.
The interface has methods to access entity information as well as to:
dkEntityDef should be subclassed to provide a specific implementation for the target datastore. For example:
All methods related to sub-entity operations should throw a DKUsageError exception since most datastores do not support sub-entities by default. If the datastore supports multiple-level entities, for example, QBIC or Domino.Doc, the concrete class should provide the correct implementation for the specific datastore to override the exception.
Class summary:
class dkEntityDef { public: virtual ~dkEntityDef(); dkDatastore* getDatastore(); void setDatastore(dkDatastore* ds); DKString datastoreName() const; DKString datastoreType() const; DKString getName(); void setName(const char* name); short getType(); void setType(short entityType); DKString getDescription(); void setDescription(const char* desc); virtual DKBoolean isSearchable(); virtual DKBoolean hasSubEntities(); virtual dkEntityDef* createSubEntity(); virtual dkEntityDef* getSubEntity(const char* subEntityName); virtual dkEntityDef* retrieveSubEntity(const char* subEntityName); virtual dkCollection* listSubEntities(); virtual DKString* listSubEntityNames(long& arraySize); // persistent functions virtual void add(dkEntityDef* subEntityDef); virtual void del(dkEntityDef* subEntityDef); virtual void deleteSubEntity(const char* subEntityName); // memory functions virtual void addSubEntity(dkEntityDef* subEntityDef); virtual void removeSubEntity(const char* subEntityName); virtual dkAttrDef* createAttr(); virtual dkAttrDef* getAttr(const char* attrName); virtual dkAttrDef* retrieveAttr(const char* attrName); virtual dkCollection* listAttrs(); virtual DKString* listAttrNames(long& arraySize); virtual void add(); virtual void del(); // persistent functions virtual void add(dkAttrDef* attrDef); virtual void del(dkAttrDef* attrDef); virtual void deleteAttr(const char* attrName); // memory functions virtual void addAttr(dkAttrDef* attrDef); virtual void removeAttr(const char* attrName); virtual DKString getParentEntityName(); virtual void setParentEntityName(const char* parentEntityName); virtual DKBoolean isTextSearchable(); virtual void setTextSearchable(DKBoolean textSearchable); virtual void clearCache(); };
Members:
void setDatastore(dkDatastore* ds);
DKString datastoreName() const;
dkDatastore* getDatastore();
DKString datastoreType() const;
DKString getName();
void setName(const char* name);
short getType();
void setType(short entityType);
DKString getDescription();
void setDescription(const char* desc);
virtual DKBoolean isSearchable();
virtual DKBoolean hasSubEntities();
Exceptions
DKException -- If the datastore does not support multiple-level entities.
virtual dkEntityDef* createSubEntity();
Exceptions
virtual dkEntityDef* getSubEntity(const char* subEntityName);
Exceptions
virtual dkEntityDef* retrieveSubEntity(const char* subEntityName);
Exceptions
virtual dkCollection* listSubEntities();
Exceptions
virtual DKString* listSubEntityNames(long& arraySize);
Exceptions
virtual void add(dkEntityDef* subEntityDef); virtual void add(); virtual void add(dkAttrDef* attrDef);
Exceptions
virtual void del(dkEntityDef* subEntityDef); virtual void del(); virtual void del(dkAttrDef* attrDef);
virtual void deleteSubEntity(const char* subEntityName);
virtual void addSubEntity(dkEntityDef* subEntityDef);
virtual void removeSubEntity(const char* subEntityName);
virtual dkAttrDef* createAttr();
Exceptions
--
virtual dkAttrDef* getAttr(const char* attrName);
Exceptions
--
virtual dkAttrDef* retrieveAttr(const char* attrName);
virtual void deleteAttr(const char* attrName);
virtual void addAttr(dkAttrDef* attrDef);
virtual void removeAttr(const char* attrName);
virtual dkCollection* listAttrs();
virtual DKString* listAttrNames(long& arraySize);
virtual DKString getParentEntityName();
virtual void setParentEntityName(const char* parentEntityName);
virtual DKBoolean isTextSearchable();
vvirtual void setTextSearchable(DKBoolean textSearchable);
virtual void clearCache();
(c) Copyright International Business Machines Corporation 1996, 2003. IBM Corp. All rights reserved.