XEP クイック・リファレンス
この章は、このドキュメントで説明しているパブリック API を含む com.intersystems.xep パッケージのクイック・リファレンスです。
この章は、このドキュメントの読者の利便性を目的としたものであり、XEP の最終的なリファレンスではありません。これらのクラスに関する最も包括的な最新情報については、Java XEP API オンライン・ドキュメントOpens in a new tabを参照してください。
XEP クイック・リファレンス
このセクションは、XEP API (ネームスペース com.intersystems.xep) のリファレンスです。この API の使用法の詳細は、"XEP Event Persistence の使用法" を参照してください。これには、以下のクラスおよびインタフェースが含まれています。
-
クラス PersisterFactory — EventPersister オブジェクトを作成するために必要なファクトリ・メソッドを提供します。
-
クラス EventPersister — XEP データベース接続をカプセル化します。また、XEP オプションの設定、接続の確立または既存の接続オブジェクトの取得、スキーマのインポート、XEP イベント・オブジェクトの作成、トランザクションの制御を行うメソッドを提供します。
-
クラス Event — XEP 永続イベントへの参照をカプセル化します。また、イベントの格納または削除、クエリの作成、インデックス作成の開始または停止を行うメソッドを提供します。
-
クラス EventQuery<T> — 更新または削除するためにデータベースから特定のタイプの個別のイベントを取得するクエリをカプセル化します。
-
クラス EventQueryIterator<T> — Java Iterator のメソッドに類似したメソッドを使用して XEP イベントの取得、更新および削除を行う EventQuery<T> の代替手段を提供します。
-
インタフェース InterfaceResolver — フィールドがインタフェースとして宣言された場合、フラット・スキーマのインポート中にフィールドの実際のデータ型を解決します。
-
クラス XEPException — ほとんどの XEP メソッドによってスローされる例外です。
XEP メソッドのリスト
このリファレンスでは、以下の XEP API のクラスおよびメソッドを説明します。
-
createPersister() — 新しい EventPersister オブジェクトを作成します。
-
close() — このインスタンスで保持されているすべてのリソースを解放します。
-
commit() — 1 レベルのトランザクションをコミットします。
-
connect() — 指定された引数を使用し、TCP/IP を介して InterSystems IRIS® に接続します。
-
deleteClass() — InterSystems IRIS クラスを削除します。
-
deleteExtent() — 指定されたエクステントのすべてのオブジェクトを削除します。
-
getEvent() — 指定されたクラス名に対応するイベント・オブジェクトを返します。
-
getInterfaceResolver() — 現在指定されている InterfaceResolver のインスタンスを返します。
-
getTransactionLevel() — 現在のトランザクション・レベル (トランザクション内でない場合は 0) を返します。
-
importSchema() — フラット・スキーマをインポートします。
-
importSchemaFull() — フル・スキーマをインポートします。
-
rollback() — 指定された数のトランザクション・レベルをロールバックするか、レベルが指定されていない場合、すべてのレベルのトランザクションをロールバックします。
-
setInterfaceResolver() — 使用する InterfaceResolver オブジェクトを指定します。
-
close() — このインスタンスで保持されているすべてのリソースを解放します。
-
createQuery() — EventQuery<T> インスタンスを作成します。
-
deleteObject() — データベース ID または IdKey を指定されたイベントを削除します。
-
getObject() — データベース ID または IdKey を指定されたイベントを返します。
-
isEvent() — オブジェクト (またはクラス) が XEP の意味でイベントかどうかを確認します。
-
startIndexing() — 基本クラスのインデックス作成を開始します。
-
stopIndexing() — 基本クラスのインデックス作成を停止します。
-
store() — 指定されたオブジェクトまたはオブジェクトの配列を格納します。
-
updateObject() — データベース ID または IdKey を指定されたイベントを更新します。
-
waitForIndexing() — このクラスの非同期インデックス作成が完了するまで待機します。
-
close() — このインスタンスで保持されているすべてのリソースを解放します。
-
deleteCurrent() — getNext() によって最後にフェッチされたイベントを削除します。
-
execute() — この XEP クエリを実行します。
-
getAll() — 結果セット内のすべてのイベントを配列としてフェッチします。
-
getFetchLevel() — 現在のフェッチ・レベルを返します。
-
getIterator() — クエリ結果に対して繰り返し処理を実行するために使用できる EventQueryIterator<T> を返します。
-
getNext() — 結果セット内の次のイベントをフェッチします。
-
setFetchLevel() — 返されるデータの量を制御します。
-
setParameter() — このクエリのパラメータを結合します。
-
updateCurrent() — getNext() によって最後にフェッチされたイベントを更新します。
-
getImplementationClass() — フィールドがインタフェースとして宣言された場合、このメソッドの実装を使用して、スキーマのインポート中に実際のフィールド・タイプを解決できます。
クラス PersisterFactory
クラス com.intersystems.xep.PersisterFactory は新しい EventPersister オブジェクトを作成します。
PersisterFactory の新しいインスタンスを作成します。
PersisterFactory()
PersisterFactory.createPersister() は EventPersister のインスタンスを返します。
static EventPersister createPersister() [inline, static]
関連項目 :
クラス EventPersister
クラス com.intersystems.xep.EventPersister は、XEP モジュールの主なエントリ・ポイントです。このクラスは、XEP オプションの制御、接続の確立、スキーマのインポート、および XEP イベント・オブジェクトの作成を行うために使用できるメソッドを提供します。また、トランザクションを制御するメソッドおよびその他のタスクを実行するメソッドも提供します。
大部分のアプリケーションでは、EventPersister のインスタンスは、PersisterFactory.createPersister() によって作成する必要があります。コンストラクタは、クラスを拡張するためにのみ使用してください。
EventPersister の新しいインスタンスを作成します。
EventPersister()
EventPersister.close() は、このインスタンスで保持されているすべてのリソースを解放します。接続に関連するすべてのロック、ライセンス、およびその他のリソースを確実に解放するために、範囲外になる前に必ず EventPersister オブジェクトで close() を呼び出します。
void close()
EventPersister.commit() は、1 レベルのトランザクションをコミットします。
void commit()
EventPersister.connect() は、指定された InterSystems IRIS ネームスペースへの接続を確立します。
void connect(String host, int port, String namespace, String username, String password)
パラメータ :
-
host — TCP/IP 接続のホスト・アドレス。
-
port — TCP/IP 接続のポート番号。
-
namespace — アクセス先のネームスペース。
-
username — この接続のユーザ名。
-
password — この接続のパスワード。
ホスト・アドレスが 127.0.0.1 または localhost の場合、接続は既定で共有メモリ接続になります。この接続は、標準の TCP/IP 接続よりも高速です ("InterSystems JDBC ドライバでの Java の使用法" の “共有メモリ接続” を参照してください)。
関連項目 :
EventPersister.deleteClass() は、InterSystems IRIS クラス定義を削除します。エクステントに関連付けられたオブジェクトは削除しません (オブジェクトは複数のエクステントに属することができるため)。また、依存関係 (内部クラス、埋め込みクラスなど) も削除しません。
void deleteClass(String className)
パラメータ :
-
className — 削除されるクラスの名前。
指定されたクラスが存在しない場合、呼び出しは、通知なしで失敗します (エラーはスローされません)。
関連項目 :
"格納されたイベントへのアクセス" の “テスト・データの削除”
EventPersister.deleteExtent() は、Java イベントに関連付けられたエクステント定義を削除しますが、関連付けられているデータは破棄しません (オブジェクトは、複数のエクステントに属することができるため)。エクステントの管理の詳細は、"クラスの定義と使用" の “エクステント” を参照してください。
void deleteExtent(String className)
-
className — エクステントの名前。
このメソッドを、すべてのエクステント・データをエクステント定義と共に破棄する非推奨の Event.deleteExtent() と混同しないでください。
関連項目 :
"格納されたイベントへのアクセス" の “テスト・データの削除”
EventPersister.getEvent() は、指定されたクラス名に対応する Event オブジェクトを返し、オプションで、使用するインデックス作成モードを指定します。
Event getEvent(String className)
Event getEvent(String className, int indexMode)
パラメータ :
-
className — 返されるオブジェクトのクラス名。
-
indexMode — 使用するインデックス作成モード。
以下の indexMode オプションを使用できます。
-
Event.INDEX_MODE_ASYNC_ON — 非同期のインデックス作成を可能にします。これは、indexMode パラメータが指定されていない場合の既定の設定です。
-
Event.INDEX_MODE_ASYNC_OFF — startIndexing() メソッドが呼び出されない限り、インデックス作成は実行されません。
-
Event.INDEX_MODE_SYNC — インデックス作成は、エクステントが変更されるたびに実行されます。これは多数のトランザクションの場合は非効率的になる可能性があります。クラスにユーザ割り当て IdKey がある場合は、このインデックス・モードを指定する必要があります。
Event の同じインスタンスを使用して、1 つのクラスのすべてのインスタンスを格納または取得できるため、1 つのプロセスで getEvent() メソッドを呼び出す必要があるのはクラスごとに 1 回のみです。単一クラスに対する複数の Event オブジェクトのインスタンス化は避けてください。パフォーマンスに影響を及ぼしかねず、メモリ・リークの原因となることがあります。
関連項目 :
EventPersister.getInterfaceResolver()— importSchema() によって使用されるようになる InterfaceResolver の現在設定されているインスタンスを返します (“InterfaceResolver の実装” を参照してください)。設定されているインスタンスがない場合、null を返します。
InterfaceResolver getInterfaceResolver()
関連項目 :
EventPersister.getTransactionLevel() は、現在のトランザクション・レベル (トランザクション内でない場合は 0) を返します。
int getTransactionLevel()
EventPersister.importSchema() は、シリアル化オブジェクトとしてすべての参照オブジェクトを埋め込むフラット・スキーマ (“スキーマ・インポート・モデル” を参照) を作成します。このメソッドは、クラスで宣言された各イベントのスキーマまたは指定されている .jar ファイル (依存関係を含む) をインポートし、インポートされたイベントのクラス名の配列を返します。
String[] importSchema(String classOrJarFileName)
String[] importSchema(String[] classes)
パラメータ :
-
classes — インポートされるクラスの名前を含む配列。
-
classOrJarFileName — クラス名またはインポートされるクラスを含む .jar ファイルの名前。.jar ファイルが指定される場合、ファイル内のすべてのクラスがインポートされます。
引数がクラス名である場合、対応するクラスおよびすべての依存関係がインポートされます。引数が .jar ファイルである場合、ファイル内のすべてのクラスおよびすべての依存関係がインポートされます。そのようなスキーマが既に存在していて、それが Java スキーマと同期していると思われる場合、インポートはスキップされます。スキーマが既に存在しているが、別なものと思われる場合は、データがあるか調べるためのチェックが実行されます。データがない場合、新しいスキーマが生成されます。既存のデータがある場合、例外がスローされます。
関連項目 :
EventPersister.importSchemaFull()— ソース・クラスのオブジェクト階層を保持するフル・スキーマ (“スキーマ・インポート・モデル” を参照) を作成します。このメソッドは、クラスで宣言された各イベントのスキーマまたは指定されている .jar ファイル (依存関係を含む) をインポートし、インポートされたイベントのクラス名の配列を返します。
String[] importSchemaFull(String classOrJarFileName)
String[] importSchemaFull(String[] classes)
パラメータ :
-
classes — インポートされるクラスの名前を含む配列。
-
classOrJarFileName — クラス名またはインポートされるクラスを含む .jar ファイルの名前。.jar ファイルが指定される場合、ファイル内のすべてのクラスがインポートされます。
引数がクラス名である場合、対応するクラスおよびすべての依存関係がインポートされます。引数が .jar ファイルである場合、ファイル内のすべてのクラスおよびすべての依存関係がインポートされます。そのようなスキーマが既に存在していて、それが Java スキーマと同期していると思われる場合、インポートはスキップされます。スキーマが既に存在しているが、別なものと思われる場合は、データがあるか調べるためのチェックが実行されます。データがない場合、新しいスキーマが生成されます。既存のデータがある場合、例外がスローされます。
関連項目 :
EventPersister.rollback() は、指定された数のレベルのトランザクションをロールバックします。ここで、level は正の整数です。レベルが指定されていない場合、すべてのレベルのトランザクションをロールバックします。
void rollback()
void rollback(int level)
パラメータ :
-
level — ロールバックするレベルの数 (オプション)。
このメソッドは、level が 0 未満の場合は何もせず、level が最初のトランザクション・レベルより大きい場合、トランザクション・レベルが 0 に到達するとロールバックを停止します。
EventPersister.setInterfaceResolver()— importSchema() によって使用される InterfaceResolver のインスタンスを設定します (“InterfaceResolver の実装” を参照してください)。この EventPersiser によって作成される Event のすべてのインスタンスは、指定された InterfaceResolver (このメソッドが呼び出されない場合は既定で null になる) を共有します。
void setInterfaceResolver(InterfaceResolver interfaceResolver)
パラメータ :
-
interfaceResolver — インタフェースとして宣言されるフィールドの実際のタイプを決定するために importSchema() によって使用される InterfaceResolver の実装。この引数は、null にすることができます。
関連項目 :
クラス Event
クラス com.intersystems.xep.Event は、XEP イベント (イベントの格納、クエリの作成、インデックスの作成他) を処理するメソッドを提供します。これは EventPersister.getEvent() メソッドにより作成されます。
Event.close() は、このインスタンスで保持されているすべてのリソースを解放します。接続に関連するすべてのロック、ライセンス、およびその他のリソースを確実に解放するために、範囲外になる前に必ず Event オブジェクトで close() を呼び出します。
void close()
Event.createQuery() は、SQL クエリのテキストを含む String 引数を取り、EventQuery<T> のインスタンスを返します。パラメータ T は、親 Event のターゲット・クラスです。
<T> EventQuery<T> createQuery (String sqlText)
パラメータ :
-
sqlText — この SQL クエリのテキスト。
関連項目 :
Event.deleteObject() は、データベース・オブジェクト ID または IdKey によって特定されたイベントを削除します。
void deleteObject(long id)
void deleteObject(Object[] idkeys)
パラメータ :
-
id — データベース・オブジェクト ID
-
idkeys — IdKey を構成するオブジェクトの配列 (“IdKey の使用法” を参照してください)。基礎となるクラスに IdKey がないか、提供されたキーのいずれかが null であるか無効なタイプである場合は XEPException がスローされます。
関連項目 :
Event.getObject() は、データベース・オブジェクト ID または IdKey によって特定されたイベントをフェッチします。指定したオブジェクトが存在しない場合、null を返します。
Object getObject(long id)
Object getObject(Object[] idkeys)
パラメータ :
-
id — データベース・オブジェクト ID
-
idkeys — IdKey を構成するオブジェクトの配列 (“IdKey の使用法” を参照してください)。基礎となるクラスに IdKey がないか、提供されたキーのいずれかが null であるか無効なタイプである場合は XEPException がスローされます。
関連項目 :
Event.isEvent() は、オブジェクト (またはクラス) が XEP の意味でイベントでない場合、XEPException をスローします (“インポートされるクラスの要件” を参照してください)。例外メッセージにより、このオブジェクトが XEP イベントでない理由が説明されます。
static void isEvent(Object objectOrClass)
パラメータ :
-
objectOrClass — テストされるオブジェクト。
Event.startIndexing() は、ターゲット・クラスのエクステントに対して非同期インデックス作成を開始します。インデックス・モードが Event.INDEX_MODE_SYNC である場合は、例外をスローします (“インデックス更新の制御” を参照してください)。
void startIndexing()
Event.stopIndexing() は、エクステントに対する非同期インデックス作成を停止します。Event インスタンスを閉じるときにインデックスを更新しないようにする場合は、Event.close() を呼び出す前にこのメソッドを呼び出します。
void stopIndexing()
関連項目 :
Event.store() は、Java オブジェクトまたはオブジェクトの配列を永続イベントとして格納します。新しく挿入されたオブジェクトごとに 1 つの long データベース ID を返し、ID を返せない場合またはイベントが IdKey を使用している場合は 0 を返します。
long store(Object object)
long[] store(Object[] objects)
パラメータ :
-
object — データベースに追加される Java オブジェクト。
-
objects — データベースに追加される Java オブジェクトの配列。すべてのオブジェクトは同じ型である必要があります。
Event.updateObject() は、データベース ID または IdKey によって特定されたイベントを更新します。
void updateObject(long id, Object object)
void updateObject(Object[] idkeys, Object object)
パラメータ :
-
id — データベース・オブジェクト ID
-
idkeys — IdKey を構成するオブジェクトの配列 (“IdKey の使用法” を参照してください)。基礎となるクラスに IdKey がないか、提供されたキーのいずれかが null であるか無効なタイプである場合は XEPException がスローされます。
-
object — 指定したイベントを置き換える新しいオブジェクト。
関連項目 :
Event.waitForIndexing() は、非同期インデックス作成の完了を待機します。インデックス作成が完了した場合は true を返し、インデックス作成が完了する前に待機がタイムアウトした場合は false を返します。インデックス・モードが Event.INDEX_MODE_SYNC である場合は、例外をスローします。
boolean waitForIndexing(int timeout)
パラメータ :
-
timeout — タイムアウトになるまで待機する秒数 (-1 の場合は永久に待機し、0 の場合は直ちに返します)。
関連項目 :
クラス EventQuery<T>
クラス com.intersystems.xep.EventQuery<T> は、データベースから個別のイベントを取得、更新および削除するために使用できます。
EventQuery<T>.close() は、このインスタンスで保持されているすべてのリソースを解放します。接続に関連するすべてのロック、ライセンス、およびその他のリソースを確実に解放するために、EventQuery<T> オブジェクトが範囲外になる前に必ず close() を呼び出します。
void close()
EventQuery<T>.deleteCurrent() は、getNext() によって最後にフェッチされたイベントを削除します。
void deleteCurrent()
関連項目 :
EventQuery<T>.execute() は、この EventQuery<T> と関連付けられた SQL クエリを実行します。クエリが正常に実行された場合、この EventQuery<T> には、他の EventQuery<T> または EventQueryIterator<T> メソッドでアクセスできる結果セットが含まれます。
void execute()
関連項目 :
EventQuery<T>.getAll() は、単一のリストとして結果セット内のすべての行からターゲット・クラス T のオブジェクトを返します。
java.util.List<T> getAll()
getNext() を使用して、結果セット内のターゲット・クラス T のオブジェクトをすべて取得し、それらのオブジェクトを List で返します。このリストは、更新または削除には使用できません (ただし、各オブジェクトの Id または IdKey を取得する方法がある場合、Event メソッドの updateObject() および deleteObject() は使用できます)。getAll() および getNext() は同じ結果セットにアクセスできません。一方のメソッドが呼び出されると、他方のメソッドは execute() が再び呼び出されるまで使用できません。
関連項目 :
"クエリ・データの処理"、Event.updateObject()、Event.deleteObject()
EventQuery<T>.getFetchLevel() は、現在のフェッチ・レベルを返します (“フェッチ・レベルの定義” を参照してください)。
int getFetchLevel()
EventQuery<T>.getIterator() は、クエリ結果に対して繰り返し処理を実行するために使用できる EventQueryIterator<T> を返します (“クエリ・データの処理” を参照してください)。
EventQueryIterator<T> getIterator()
EventQuery<T>.getNext() は、ターゲット・クラス T のオブジェクトを結果セットから返します。引数が null の場合、結果セットの最初の項目を返します。または、前の getNext() の呼び出しによって返されたオブジェクトを引数として取り、結果セットの次の項目を返します。結果セットにそれ以上項目がない場合は、null を返します。
E getNext(E obj)
パラメータ :
-
obj — 前の getNext() の呼び出しによって返されたオブジェクト (または、結果セットの最初の項目を返す場合は null)。
関連項目 :
EventQuery<T>.setFetchLevel() は、フェッチ・レベルを設定することで返されるデータの量を制御します (“フェッチ・レベルの定義” を参照してください)。
例えば、フェッチ・レベルを Event.FETCH_LEVEL_DATATYPES_ONLY に設定すると、このクエリによって返されるオブジェクトは、それらのデータ型フィールドのみ設定されるようになり、オブジェクト・タイプ、配列、またはコレクションのフィールドには何も生成されません。このオプションを使用すると、クエリ・パフォーマンスが大幅に向上する場合があります。
void setFetchLevel(int level)
パラメータ :
-
level — フェッチ・レベル定数 (Event クラスで定義される)。
サポートされるフェッチ・レベルは以下のとおりです。
-
Event.FETCH_LEVEL_ALL — 既定。すべてのフィールドが生成されます。
-
Event.FETCH_LEVEL_DATATYPES_ONLY — データ型フィールドのみが生成されます。
-
Event.FETCH_LEVEL_NO_ARRAY_TYPES — すべての配列がスキップされます。
-
Event.FETCH_LEVEL_NO_OBJECT_TYPES — すべてのオブジェクト・タイプがスキップされます。
-
Event.FETCH_LEVEL_NO_COLLECTIONS — すべてのコレクションがスキップされます。
EventQuery<T>.setParameter() は、この EventQuery<T> と関連付けられた SQL クエリのパラメータを結合します。
void setParameter(int index, java.lang.Object value)
パラメータ :
-
index — クエリ文内のこのパラメータのインデックス。
-
value — このクエリに使用される値。
関連項目 :
EventQuery<T>.updateCurrent() は、getNext() によって最後にフェッチされたイベントを更新します。
void updateCurrent(E obj)
パラメータ :
-
obj — 現在のイベントを置き換える Java オブジェクト。
関連項目 :
クラス EventQueryIterator<T>
クラス com.intersystems.xep.EventQueryIterator<T> は、XEP イベントの取得、更新、および削除を行う主要手段です (同じタスクは、EventQuery<T> メソッドを直接使用しても実行できます)。
EventQueryIterator<T>.hasNext() は、クエリ結果セットに他の項目がある場合、true を返します。
boolean hasNext()
EventQueryIterator<T>.next() は、クエリ結果セット内の次のイベントをフェッチします。
E next()
EventQueryIterator<T>.remove() は、next() によって最後にフェッチされたイベントを削除します。
void remove()
EventQueryIterator<T>.set() は、next() によって最後にフェッチされたイベントを置換します。
void set(E obj)
パラメータ :
-
obj — next() によって最後にフェッチされたイベントを置き換えるターゲット・クラスのオブジェクト。.
インタフェース InterfaceResolver
既定では、インタフェースとして宣言されたフィールドはスキーマ生成の際に無視されます。この動作を変更するには、InterfaceResolver の実装を importSchema() メソッドへ渡して、インタフェース・タイプを正しい具体的なデータ型で置換できる情報を提供すると、できます。
InterfaceResolver.getImplementationClass() は、インタフェースとして宣言されたフィールドの実際のデータ型を返します。詳細は、“InterfaceResolver の実装” を参照してください。
Class<?> getImplementationClass (Class declaringClass, String fieldName, Class<?> interfaceClass)
パラメータ :
-
declaringClass — fieldName が interfaceClass として宣言されるクラス。
-
fieldName — インタフェースとして宣言された declaringClass のフィールド名。
-
interfaceClass — 解決されるインタフェース。
クラス XEPException
クラス com.intersystems.xep.XEPException は、Event、EventPersister、および EventQuery<T> のほとんどのメソッドによりスローされる例外を実装します。このクラスは、java.lang.RuntimeException から継承されます。
Constructors
XEPException (String message)
XEPException (Throwable x, String message)
XEPException (Throwable x)