サービスデータオブジェクトへのリフレクション
SDO_DAS_ChangeSummary::beginLogging
SDO
PHP Manual

# SDO 関数

## データアクセスサービス

以下の表で、現在提供されている SDO データアクセスサービスの 一覧を示します。

DAS 名 | 説明
--- | ---
SDO_DAS_XML | XML データアクセスサービスは、SDO を XML ドキュメントとして 読み書きします。
SDO_DAS_Relational | PDO を基にしたデータアクセスサービスで、SDO をリレーショナル データベースとして読み書きします。同時更新に対しては 楽観的な実装となっています。

## 定義済みクラス

SDO は、3 つの系統のインターフェイスから構成されています。ひとつめは 典型的な SDO アプリケーションで使用されるインターフェイスをカバーする もので、これらには 'SDO_' という名前がつけられています。2 番目は データオブジェクトのモデルを扱うためのもので、これらには 'SDO_Model_' という名前がつけられています。最後はデータアクセスサービスで 使用されるもので、これらには 'SDO_DAS_' という名前がつけられています。 SDO を使用するほとんどの人は、'SDO_Model_' や 'SDO_DAS_' を使用したり理解したりする必要はないでしょう。

## SDO API

## SDO_DataObject

データオブジェクトを操作する際のメインとなるインターフェイスです。 以下で説明するメソッドに加え、SDO_DataObject は ArrayAccess、SDO_PropertyAccess (プロパティへのアクセスのために __get() / __set() メソッドをオーバーロードします)、 Iterator および Countable インターフェイスを継承します。

## メソッド

- getSequence - データオブジェクトのシーケンスを取得する

- createDataObject - 子データオブジェクトを作成する

- clear - データオブジェクトのプロパティの設定を解除する

- getContainer - このオブジェクトのコンテナ (あるいは「親」) を取得する

- getTypeName - このデータオブジェクトの型の名前を取得する

- getTypeNamespaceURI - このデータオブジェクトの型の名前空間 URI を取得する

## SDO_Sequence

シーケンスデータオブジェクトが、データオブジェクトのプロパティの 並び順を保持したままアクセスをおこなったり 非構造化テキストを許可したりする際に使用するインターフェイスです。 SDO_Sequence は、インデックスが常に連続した数となるようにします。 そのため、要素を挿入したり削除したりすると、その他の要素のインデックスが 増減します。以下で説明するメソッドに加え、SDO_Sequence は ArrayAccess、Iterator および Countable インターフェイスを 継承しています。

## メソッド

- getProperty - シーケンスのインデックスからプロパティを取得する

- move - 指定した要素を、現在のプロパティインデックスから別の位置に移動する

- insert - シーケンスに新しい値を挿入する

## SDO_List

複数の値を保持するプロパティを操作するためのインターフェイスです。 以下に挙げるメソッドに加え、SDO_List は ArrayAccess、 Iterator および Countable を継承しています。 SDO_List は、常にインデックスが連続した数となるようにします。 そのため、要素を挿入したり削除したりすると 他の要素のインデックスが変化します。

## メソッド

- insert - 新しい値をリストに挿入する

## SDO_DataFactory

データオブジェクトを作成するためのインターフェイスです。 ファクトリのモデルに値を設定する (すなわち、作成可能なデータ オブジェクトの型および構造情報をもとにデータファクトリを設定する) のはデータアクセスサービスの役目です。また、オプションとして SDO_DataFactory インターフェイスのインスタンスを返すか、 それを実装します。

## メソッド

- create - 新しいデータオブジェクトを作成する

## SDO_Exception

SDO_Exception は、呼び出し元の要求を完了させられなかった際にスローされます。 SDO_Exception のサブクラスには以下のようなものがあります。

- SDO_PropertyNotSetException - 指定されたプロパティは存在するが、まだ値が設定されていません。 あるいはデフォルト値が設定されていません。

- SDO_PropertyNotFoundException - 指定されたプロパティはデータオブジェクトの型の一部ではありません。

- SDO_TypeNotFoundException - 指定された名前空間 URI あるいは型名が見つかりません。

- SDO_InvalidConversionException - 代入時に、型の変換を行うことができません。

- SDO_IndexOutOfBoundsException - データオブジェクトやシーケンス、リストにおける数値インデックスが 有効な範囲にありません。

- SDO_UnsupportedOperationException - その操作が許可されていないため、要求を完了できませんでした。 例えば読み込み専用のプロパティに値を設定しようとした場合などです。

## メソッド

組み込みの Exception クラスから継承したものに加え、次のメソッドが追加されています。

- getCause - この SDO_Exception の原因を取得する

## SDO リフレクション API

## SDO_Model_ReflectionDataObject

データオブジェクトのインスタンス自身について、モデルの型や プロパティの情報を取得するためのインターフェイスです。 PHP 5 で使用可能となったリフレクションパターンに従うように 設計されています。

## コンストラクタ

- __construct - 新しい SDO_Model_ReflectionDataObject を作成する

## メソッド

- export - データオブジェクトを表す文字列を取得する

- getType - データオブジェクトの SDO_Model_Type を取得する

- getInstanceProperties - データオブジェクトのインスタンスのプロパティを取得する

- getContainmentProperty - データオブジェクトとの包含関係を定義しているプロパティを取得する

## SDO_Model_Type

データオブジェクトの型に関する情報を取得するための インターフェイスです。このインターフェイスは、型の名前および 名前空間 URI・オープン型のデータを許可するかどうかなどを 調べるために使用します。

## メソッド

- getName - 型の名前を取得する

- getNamespaceURI - 型の名前空間 URI を取得する

- isInstance - データオブジェクトが特定の型のインスタンスであるかどうかを調べる

- getProperties - 型のプロパティを取得する

- getProperty - 型のプロパティを取得する

- isDataType - この型が基本的なスカラー型であるかどうかを調べる

- isSequencedType - この型がシーケンス型であるかどうかを調べる

- isOpenType - この型がオープン型であるかどうかを調べる

- isAbstractType - この型が抽象型であるかどうかを調べる

- getBaseType - この型の基底型を (もし存在すれば) 取得する

## SDO_Model_Property

データオブジェクトのプロパティに関する情報を取得するための インターフェイスです。このインターフェイスは、プロパティの型・ デフォルト値の存在・包含関係の有無・カーディナリティなどを 調べるために使用します。

## メソッド

- getName - プロパティの名前を取得する

- getType - プロパティの型を取得する

- isMany - プロパティが複数の値を保持するかどうかを調べる

- isContainment - プロパティが包含関係を保持するかどうかを調べる

- getContainingType - このプロパティを含んでいる型を取得する

- getDefault - プロパティのデフォルト値を取得する

## SDO データアクセスサービス 開発者用インターフェイス

## SDO_DAS_DataObject

データアクセスサービスが、データオブジェクトの SDO_DAS_ChangeSummary にアクセスするためのインターフェイスです。これは、変更した内容を データベースに書き戻す際に、データアクセスサービスがデータの 衝突を調べるために使用されます。

## メソッド

- getChangeSummary - データオブジェクトの変更内容を取得する

## SDO_DAS_ChangeSummary

データオブジェクトの変更履歴にアクセスするためのインターフェイスです。 ログ取得が有効になってからデータオブジェクトに発生したあらゆる変更が、 変更内容に含まれます。削除あるいは修正の場合は、変更前の情報も保持されます。

ログ取得が有効になっていない場合、ログ取得が無効にされた時点までの 変更内容が保存されます。ログ取得を再開すると、過去の変更内容は消去されます。 これは、変更内容を DAS で書き出した後にデータオブジェクトを 再利用する場合に有用です。

## メソッド

- beginLogging - データオブジェクトの変更履歴のログ取得を開始する

- endLogging - データオブジェクトの変更履歴のログ取得を終了する

- isLogging - ログ取得が有効になっているかどうかを調べる

- getChangedDataObjects - 変更されたデータオブジェクトの一覧を取得する

- getChangeType - データオブジェクトの変更の型を取得する

- getOldValues - データオブジェクトの変更前の値を取得する

- getOldContainer - 削除されたデータオブジェクトの削除前のコンテナを取得する

## SDO_DAS_Setting

プロパティの古い値にアクセスするためのインターフェイスです。 設定の一覧は、 getOldValues() で返されます。

## メソッド

- getPropertyIndex - 変更されたプロパティのプロパティインデックスを取得する

- getPropertyName - 変更されたプロパティのプロパティ名を取得する

- getValue - 変更されたプロパティの古い値を取得する

- getListIndex - 複数の値を持つプロパティだった場合に、古い値のインデックスの 一覧を取得する

- isSet - 変更前に、プロパティが設定されていたかどうかを調べる

## SDO_DAS_DataFactory

SDO_DataObject のモデルを作成するインターフェイスです。 SDO_DAS_DataFactory は抽象クラスで、それを実装した具象データファクトリを 返すスタティックメソッドを提供します。この実装クラスを使用して、 データアクセスサービスが SDO モデルを作成します。 例えばリレーショナルデータアクセスサービスは、リレーショナル データベースのスキーマをもとにして SDO_DAS_DataFactory モデルを 作成し、そこに値を設定します。

## メソッド

- getDataFactory - 具象データファクトリのインスタンスを取得するためのスタティックメソッド

- addType - SDO モデルに新しい型を追加する

- addPropertyToType - SDO モデルの型定義に新しいプロパティを追加する

## 目次

- SDO_DAS_ChangeSummary::beginLogging — 変更内容の記録を開始する
- SDO_DAS_ChangeSummary::endLogging — 変更内容の記録を終了する
- SDO_DAS_ChangeSummary::getChangeType — SDO_DataObject への変更の型を取得する
- SDO_DAS_ChangeSummary::getChangedDataObjects — 変更内容から、変更されたデータオブジェクトを取得する
- SDO_DAS_ChangeSummary::getOldContainer — 削除された SDO_DataObject の削除前のコンテナを取得する
- SDO_DAS_ChangeSummary::getOldValues — 変更された SDO_DataObject の変更前の値を取得する
- SDO_DAS_ChangeSummary::isLogging — 変更内容が記録されるようになっているかどうかを調べる
- SDO_DAS_DataFactory::addPropertyToType — 型にプロパティを追加する
- SDO_DAS_DataFactory::addType — モデルに新しい型を追加する
- SDO_DAS_DataFactory::getDataFactory — データファクトリのインスタンスを取得する
- SDO_DAS_DataObject::getChangeSummary — データオブジェクトの変更内容を取得する
- SDO_DAS_Setting::getListIndex — 複数の値を持つプロパティのインデックスを取得する
- SDO_DAS_Setting::getPropertyIndex — 変更されたプロパティのプロパティインデックスを取得する
- SDO_DAS_Setting::getPropertyName — 変更されたプロパティのプロパティ名を取得する
- SDO_DAS_Setting::getValue — 変更されたプロパティの変更前の値を取得する
- SDO_DAS_Setting::isSet — 変更前にプロパティが設定されていたかどうかを調べる
- SDO_DataFactory::create — SDO_DataObject を作成する
- SDO_DataObject::clear — SDO_DataObject のプロパティを消去する
- SDO_DataObject::createDataObject — 新しい子 SDO_DataObject を作成する
- SDO_DataObject::getContainer — データオブジェクトのコンテナを取得する
- SDO_DataObject::getSequence — データオブジェクトのシーケンスを取得する
- SDO_DataObject::getTypeName — データオブジェクトの型の名前を取得する
- SDO_DataObject::getTypeNamespaceURI — このデータオブジェクトの型の名前空間 URI を取得する
- SDO_Exception::getCause — 例外の原因を取得する
- SDO_List::insert — リストに挿入する
- SDO_Model_Property::getContainingType — このプロパティを含む SDO_Model_Type を取得する
- SDO_Model_Property::getDefault — プロパティのデフォルト値を取得する
- SDO_Model_Property::getName — SDO_Model_Property の名前を取得する
- SDO_Model_Property::getType — プロパティの SDO_Model_Type を取得する
- SDO_Model_Property::isContainment — プロパティが包含関係を定義しているかどうかを調べる
- SDO_Model_Property::isMany — プロパティが複数の値を持つかどうかを調べる
- SDO_Model_ReflectionDataObject::__construct — SDO_Model_ReflectionDataObject を作成する
- SDO_Model_ReflectionDataObject::export — SDO_DataObject を表す文字列を取得する
- SDO_Model_ReflectionDataObject::getContainmentProperty — データオブジェクトとの包含関係を定義しているプロパティを取得する
- SDO_Model_ReflectionDataObject::getInstanceProperties — SDO_DataObject のインスタンスプロパティを取得する
- SDO_Model_ReflectionDataObject::getType — SDO_DataObject の SDO_Model_Type を取得する
- SDO_Model_Type::getBaseType — この型の基底型を取得する
- SDO_Model_Type::getName — 型の名前を取得する
- SDO_Model_Type::getNamespaceURI — 型の名前空間 URI を取得する
- SDO_Model_Type::getProperties — 型で定義されている SDO_Model_Property オブジェクトを取得する
- SDO_Model_Type::getProperty — 型の SDO_Model_Property を取得する
- SDO_Model_Type::isAbstractType — この SDO_Model_Type が抽象データ型であるかどうかを調べる
- SDO_Model_Type::isDataType — この SDO_Model_Type がプリミティブなデータ型であるかどうかを調べる
- SDO_Model_Type::isInstance — SDO_DataObject が、この SDO_Model_Type のインスタンスであるかどうかを調べる
- SDO_Model_Type::isOpenType — この型がオープン型であるかどうかを調べる
- SDO_Model_Type::isSequencedType — この型がシーケンス型であるかどうかを調べる
- SDO_Sequence::getProperty — 指定したシーケンスインデックスに対応するプロパティを返す
- SDO_Sequence::insert — シーケンスに挿入する
- SDO_Sequence::move — シーケンス上の指定した位置に項目を移動する

サービスデータオブジェクトへのリフレクション
SDO_DAS_ChangeSummary::beginLogging
SDO
PHP Manual