26.7.2 コレクションおよびスカラーの管理

クライアントでは、PgxGraphの次のメソッドを使用して、分析中に使用する、グラフにバインドされた頂点およびエッジ・コレクションを作成できます。

VertexSequence<E> createVertexSequence()
VertexSequence<E> createVertexSequence(String name)
VertexSet<E> createVertexSet()
VertexSet<E> createVertexSet(String name)
EdgeSequence createEdgeSequence()
EdgeSequence createEdgeSequence(String name)
EdgeSet createEdgeSet()
EdgeSet createEdgeSet(String name)	
create_edge_sequence(self, name=None)
create_vertex_sequence(self, name=None)
create_edge_set(self, name=None)
create_edge_sequence(self, name=None)

PGXでは、setsequenceなどのスカラー・コレクションもサポートされています。これらのコレクションはそれぞれ、INTEGERLONGFLOATDOUBLEBOOLEANなどの様々なプリミティブ・データ型の要素を保持できます。スカラー・コレクションはセッションにバインドされ、PgxSessionの次のメソッドを使用して作成できます。

ScalarSet<T> createSet(PropertyType contentType, String name)
ScalarSequence<T> createSequence(PropertyType contentType, String name)
ScalarSet<T> createSet(PropertyType contentType)
ScalarSequence<T> createSequence(PropertyType contentType)

前述のコードのオプションの引数(name)では、新しく作成されるコレクションの名前を指定します。省略した場合は、クライアントのかわりにPGXによって名前が選択されます。プロパティと同様に、頂点を保持するコレクションは、頂点のIDタイプでパラメータ化されます。グラフの頂点IDタイプを指定する方法は、グラフ構成の章を参照してください。

戻り値は、新しく作成された空のコレクションを指すコレクション・オブジェクトです。

セッションからコレクションを削除するには、コレクション・オブジェクトでdestroy()をコールします。

グラフに現在割り当てられているコレクションを確認するには、次のメソッドを使用できます。

Map<String, PgxCollection<? extends PgxEntity<?>, ?>> getCollections()
get_collections(self)

返されるマップには、コレクションの名前がキーとして含まれ、コレクションが値として含まれます。コレクションは、一致するコレクション・サブクラスにキャストできます。

PGXでは、特殊なMapコレクション・タイプがサポートされており、ユーザーは異なるデータ型(oracle.pgx.common.types.PropertyType)間でマップできます。マップは、PgxGraph APIまたはPgxSession APIを使用して作成できます。これらの違いは、後者では非グラフ関連の型のみがサポートされ、作成されたマップはセッションに直接依存することです。

PgxMap<K, V> createMap(PropertyType keyType, PropertyType valType)
PgxMap<K, V> createMap(PropertyType keyType, PropertyType valType, String mapName)

同様に、次のメソッドを使用して、クライアント・セッションでスカラー変数を作成できます。

Scalar<T> createScalar(PropertyType type, String newScalarName)
Scalar<T> createScalar(PropertyType type)
create_scalar(self,data_type,name=None)

これらのコレクションおよびスカラー変数はその後、グラフ・アルゴリズムに引数として渡すことができます。詳細は、カスタムPGXグラフ・アルゴリズムの使用を参照してください。