2.4.1 オブジェクトの作成

オブジェクトは,CreateObjectメソッドをコールして作成します。このメソッドによって,文書空間上にDMAオブジェクトを構成要素としたクラスライブラリのオブジェクトが作成されます。作成するクラスライブラリのオブジェクトを構成するDMAオブジェクトを特定するために,CreateObjectメソッドをコールする時に,DMAオブジェクトを作成する基になるDMAクラスをCreateObjectメソッドの引数に指定する構造体(SDBR_DMAINFO構造体)に指定します。

それぞれのクラスライブラリのオブジェクトを作成する時に指定するDMAオブジェクトのクラス識別子を次の表に示します。なお,クラス識別子の代わりにNULLを指定することもできます。NULLを指定すると,デフォルトのクラス識別子を指定したものとしてオブジェクトが作成されます。

表2-1 クラスライブラリのオブジェクトを作成するときに指定するDMAオブジェクトのクラス識別子

クラスライブラリのクラス指定するDMAオブジェクトのクラス識別子デフォルトのクラス識別子
CdbrConfiguratedReferentialContainerクラスdmaClass_ConfigurationHistoryクラスまたはそのサブクラスdmaClass_ConfigurationHistory
edmClass_ContainerVersionクラスまたはそのサブクラスedmClass_ContainerVersion
CdbrDocumentクラスdmaClass_DocVersionクラスまたはそのサブクラスedmClass_VersionTracedComponentDocversion
CdbrIndependentPersistenceクラスedmClass_IndependentPersistenceクラスまたはそのサブクラスedmClass_IndependentPersistence
CdbrPublicACLクラスedmClass_PublicACLクラスedmClass_PublicACL
CdbrReferentialContainerクラスdmaClass_ContainerクラスまたはそのサブクラスdmaClass_Container
CdbrVersionableDocumentクラスdmaClass_ConfigurationHistoryクラスまたはそのサブクラスdmaClass_ConfigurationHistory
dmaClass_DocVersionクラスまたはそのサブクラスedmClass_VersionTracedComponentDocversion
CdbrVersionTraceableContainerクラスedmClass_ContainerVersionクラスまたはそのサブクラスedmClass_ContainerVersion

CreateObjectメソッドによってオブジェクトを作成するコールシーケンスの例を示します。

CreateObjectメソッドによってオブジェクトを作成するコールシーケンス

CdbrDocument ObjDoc;
SDBR_DMAINFO DmaClassList[1];

//DMA情報構造体にクラス識別子を設定する
DmaClassList[0].ClassId = usrClass_DocVersion;
DmaClassList[0].PropList.pItem = NULL;
DmaClassList[0].PropList.lCount = 0;
pSession->Begin();
ObjDoc.CreateObject(pSession,
    1, DmaClassList,
   "file:///tmp/sample.txt", "MIME::text/plain", &pOIID,
    DBR_CREATE_INDEX);
ObjDoc.ReleaseObject();
pSession->Commit();