Purpose:
The dkXDO is an abstract class that can represent a complex UDT (User Defined Type) or LOB (Large Object). You should subclass from dkXDO and provide methods relevant to the UDT or LOB being represented. This user-defined XDO subclass can either work with an associated DDO, or as a stand-alone object.
dkXDO extends the public interface of dkXDOBase mainly by defining independent datastore access Add/Retrieve/Update/Delete methods. These methods enable an application to store and retrieve the object's data to and from a datastore, without the existence of an associated DDO class object (stand-alone XDO). A stand-alone XDO must have its PID set in order to be able to locate the position in the datastore where it belongs. If the XDO is used in conjunction with the DDO, the PID is set automatically.
dkXDO inherits protocol from its parent dkDataObjectBase. It supports the following protocols:
Heirarchy:
dkDataObjectBase dkXDOBase dkXDO
Class summary:
class dkXDO : public dkXDOBase { public: virtual ~dkXDO(); // deprecated replaced by get/setPidObject virtual void setPid(const DKPid* aPid); virtual const DKPid* getPid() const; virtual const DKPid* getPidObject() = 0; virtual void setPidObject(const DKPid* aPid) = 0; // Data access. virtual dkDataObjectBase& add(); virtual dkDataObjectBase& add(const char* aFullFileName); virtual dkDataObjectBase& retrieve(); virtual dkDataObjectBase& retrieve(const char* aFileName); virtual dkDataObjectBase& update(); virtual dkDataObjectBase& update(const char* aFileName); virtual dkDataObjectBase& del(); virtual dkDataObjectBase& del(DKBoolean flush); // Common Lob Accessor Functions : virtual dkDataObjectBase& getContentToClientFile(const char* afileName, int fileOption) const =0; virtual dkDataObjectBase& setContentFromClientFile(const char* afileName) =0; // Object assignment and copy virtual dkDataObjectBase& operator= (const dkDataObjectBase& aXDO); virtual dkDataObjectBase& copyData(const dkXDO& adkXDO) = 0; virtual DKBoolean compareData(const dkXDO& adkXDO) = 0; const dkDatastore* datastore() const; virtual void setDatastore(dkDatastore* ds); virtual dkDatastore* getDatastore() const; virtual DKBoolean isContentChanged() const = 0; virtual DKBoolean isSet() const = 0; short protocol() const; virtual long length() const; virtual long size(); virtual dkXDO* cloneSkeleton() = 0; virtual unsigned long getAffiliatedType(); virtual void setAffiliatedType(unsigned long affiliatedType); virtual DKString getMimeType(); virtual void setMimeType(const char* mimeType); virtual DKString getContentType(); virtual void setContentType(const char* contentType); virtual DKString getContent() const = 0; virtual dkXDO& setContent(const DKString& astring) = 0; virtual void getOption (long option, DKAny& value); virtual void setOption (long option, DKAny& value); virtual long getRank(); virtual void setRank(long aRank); //extension methods virtual void addExtension(const char* extensionName, dkExtension* extensionObj); virtual void removeExtension(const char* extensionName); virtual const dkExtension* getExtension(const char* extensionName); virtual DKString getClassName(); virtual void setClassName(const char* className); }
Members:
virtual ~dkXDO();
virtual void setPid(const DKPidXDO* aPidXDO) ;
virtual const DKPidXDO* getPid() const;
virtual void setPidObject(const DKPidXDO* aPidXDO) ;
virtual const DKPid* getPidObject();
virtual dkDataObjectBase& add(); virtual dkDataObjectBase& add(const char* aFullFileName);
virtual dkDataObjectBase& retrieve(); virtual dkDataObjectBase& retrieve(const char* aFileName);
virtual dkDataObjectBase& update(); virtual dkDataObjectBase& update(const char* aFileName);
virtual dkDataObjectBase& del(); virtual dkDataObjectBase& del(DKBoolean flush);
virtual dkDataObjectBase& operator= (const dkDataObjectBase& aXDO);
virtual dkDataObjectBase& copyData(const dkXDO& adkXDO) = 0;
virtual DKBoolean compareData(const dkXDO& adkXDO) = 0;
const dkDatastore* datastore() const;
virtual dkDatastore* getDatastore() const;
virtual void setDatastore(dkDatastore* ds);
virtual DKBoolean isContentChanged() const = 0;
virtual DKBoolean isSet() const = 0;
short protocol() const;
virtual long length() const;
virtual long size();
virtual dkXDO* cloneSkeleton() = 0;
virtual unsigned long getAffiliatedType();
virtual void setAffiliatedType(unsigned long affiliatedType);
virtual DKString getMimeType();
virtual void setMimeType(const char* mimeType);
virtual DKString getContentType();
virtual void setContentType(const char* contentType);
virtual DKString getContent() const = 0;
virtual dkXDO& setContent(const DKString& astring) = 0;
virtual dkDataObjectBase& getContentToClientFile(const char* afileName, int fileOption) const =0;
virtual dkDataObjectBase& setContentFromClientFile(const char* afileName) =0;
virtual void getOption (long option, DKAny& value);
virtual void setOption (long option, DKAny& value);
virtual long getRank();
virtual void setRank(long aRank);
virtual void addExtension(const char* extensionName, dkExtension* extensionObj);
virtual void removeExtension(const char* extensionName);
virtual const dkExtension* getExtension(const char* extensionName);
virtual DKString getClassName();
virtual void setClassName(const char* className);
(c) Copyright International Business Machines Corporation 1996, 2003. IBM Corp. All rights reserved.