Index

DKDatastoreExtICM

Purpose:

DKDatastoreExtICM is the implementation class of ICM datastore extension object. The purpose of this class is to extendthe DKDatastoreICM class with more functionalities specific to Content Manager server normally not available from dkDatastore interface. You can use the method listFunctions() to list the functions supported by this class. The extension object is implemented based on the Extension Object pattern described in "Pattern Languages for Program Design, vol. 3, R. Martin, et al (eds), Addison Wesley, 1998". You can get an instance of this class by calling the method getExtension(DK_CM_DATASTORE_EXT) in DKDatatoreICM class, or by invoking the class contructor.

Hierarchy: dkExtension dkDatastoreExt DKDatastoreExtICM

Since: Version 8

Class summary:

class DKEXPORT DKDatastoreExtICM: public dkDatastoreExt
 {
   public:
     DKDatastoreExtICM(); 
     DKDatastoreExtICM(dkDatastore* ds); 
     virtual ~DKDatastoreExtICM();
     dkDatastore* getDatastore();
     void setDatastore(dkDatastore* ds);
     virtual DKBoolean isSupported(const char* functionName);
     virtual DKString* listFunctions(long& arraySize);
     virtual void checkOut(dkDataObject* item);
     virtual void checkIn(dkDataObject* item);
     virtual DKCommonPrivilege* getCommonPrivilege();
     virtual DKCommonPrivilege* getCommonItemPrivilege(dkDataObject* item);
     void addLink(DKLink* link);
     void removeLink(DKLink* link);
     virtual void setName(const char* extName);
     virtual DKString getName() const;
     virtual void addToFolder(dkDataObject* folder, dkDataObject* member);
     virtual void removeFromFolder(dkDataObject* folder, dkDataObject* member);
     void removeLinks(dkCollection* links);
     virtual void moveObject(dkDataObject* ddo, const char* entityName);
     virtual void moveObject(dkDataObject* srcItem, dkDataObject* destItem, long options);
 };
 

Members:

Constructors and destructor
DKDatastoreExtICM();
     default constructor
DKDatastoreExtICM(dkDatastore* ds);
     Constructor that takes a datastore instance as a parameter.
     Parameters: 
     ds - datastore as an instance of DKDatastoreICM
virtual ~DKDatastoreExtICM();
Destructor for this object.

Member functions

getName()
Retrieves the extension object's name. Returns: extension object name as a DKString reference.
DKString getName() const; 

setName()
Sets the extension object's name. This operation is not supported, since you cannot change the datastore standard extension name. Parameters:extName - the name of this extension object.
void setName(const char*  extName);

getDatastore()
Retrieves the pointer to the owner datastore object. Returns:the datastore object reference as an instance of DKDatastoreICM. Returns NULL if the datastore is not set on the extension object.
dkDatastore* getDatastore();

setDatastore()
Sets the pointer to the owner datastore object. Parameters:ds - owner datastore as an instance of DKDatastoreICM .
void setDatastore(dkDatastore* ds);  

isSupported()
Query if the given function name is supported by this extension. Parameters:functionName - the name of the function Returns:TRUE, if the specified function is supported; FALSE otherwise
DKBoolean isSupported(const char* functionName);

listFunctions()
Lists all supported function-names from this extension. Parameters:arraySize - size of the returned function name array. Returns:array of function names as DKString variables
DKString* listFunctions(long& arraySize);

addToFolder()
Adds a new member item to this folder and reflects the results immediately in the datastore, that is, make it persistent. In ICM, the member must exist (have been created) in the datastore before it can be added to a folder. Parameters:
  • folder - folder to add new item to
  • member - item to add

void addToFolder(dkDataObject* folder, dkDataObject* member);

removeFromFolder()
Removes a member from this folder and reflects the results immediately in the datastore, that is, make it persistent. At the end of the operation, the member object will not be in this DKFolder collection in-memory, and it will also be removed from the persistent folder representation in the datastore. Parameters:
  • folder - folder to add new item to
  • member - item to add

void removeFromFolder(dkDataObject* folder, dkDataObject* member)

checkOut()
Checks out a document or folder item from the datastore. The user will have exclusive updating privileges to the item, while other users are allowed read access only, until the user check it back in. Parameters: item - item to check out.
void checkOut(dkDataObject* item);

checkIn()
Checks in a document or folder item previously checked out from the datastore. This operation releases all write privileges to this item. Parameters: item - item to check back in.

void checkIn(dkDataObject* item);

getCommonPrivilege()
Retrieves the common privilege of this datastore. Returns: The common privilege as an instance of DKCommonPrivilege
DKCommonPrivilege* getCommonPrivilege(); 

getCommonPrivilege()
Retrieves the common privilege for this item. Parameters: item - item for which the common privilege is to be determined Returns: common item privilege for the specified item
virtual DKCommonPrivilege* getCommonItemPrivilege(dkDataObject* item);

moveObject()
Moves an item from the current item type to another item type in this server. For the complete description, see the moveObject method in DKDatastoreICM Parameters:
  • ddo - item to move
  • entityName - new item type name

virtual void moveObject(dkDataObject* ddo, const char* entityName);

moveObject()
Moves an item from the current item type to another item type in this server. For the complete description, see the moveObject method in DKDatastoreICM. Parameters:
  • destItem - item to move to
  • options - move options
  • entityName - new item type name

virtual void moveObject(dkDataObject* srcItem, dkDataObject* destItem, long options);

addLink()
Adds a new link between a source and target item. Additional link information is optional in DKLink object. Parameters:link - link to add.
void addLink(DKLing* link);

removeLink()
Removes a link between a source and target item. Parameters: link - link to remove
void removeLink(DKLink* link);

removeFromFolder()
Breaks all links specified in the DKLinkCollection. It does not remove the DKLink objects fromthe collection. Calling DKLinkCollection.removeAllMembers() will break all links in the link collection and remove all elements. Parameters: links - links to break
void removeLinks(dkCollection* links);

(c) Copyright International Business Machines Corporation 1996, 2003. IBM Corp. All rights reserved.