ドキュメントの検索
karat

+

K

APIリファレンス ↗

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

関数を使って派生プロパティを作成する

関数は、オブジェクトの派生プロパティを作成するために使用できます。これらはオブジェクトビューに表示され、拡張ノードラベルに表示され、またレイヤースタイリングオプションでノードの色付けに使用できます。

以下の基準を満たす関数は派生プロパティとして使用できます。

  • メソッドが public であること。
  • メソッドに @Functions() デコレーターが使用されていること。
  • メソッドが FunctionsMap を返すこと。
  • FunctionMap のすべてのキーがオブジェクトであること。
  • FunctionsMap のすべての値がプリミティブか、各フィールドがプリミティブのカスタムタイプであること。
  • メソッドがリリース用にタグ付けされていること。

例:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import { Function, FunctionsMap, Double } from "@foundry/functions-api"; import { ExampleDataRoute } from "@foundry/ontology-api"; export class VertexDerivedPropertyFunctions { // フライトのキャンセル率を計算する関数 @Function() public async flightCancellationPercentage(routes: ExampleDataRoute[]): Promise<FunctionsMap<ExampleDataRoute, Double>> { const routeMap = new FunctionsMap<ExampleDataRoute, Double>(); // すべてのフライト情報を取得 const allFlights = await Promise.all(routes.map(route => route.flights.allAsync())); for (let i = 0; i < routes.length; i++) { const route = routes[i]; const flights = allFlights[i]; // キャンセルされたフライトを抽出 const cancelledFlights = flights.filter(flight => flight.cancelled); // キャンセル率を計算 const cancellationPercentage = (cancelledFlights.length / flights.length) * 100; routeMap.set(route, cancellationPercentage); } return routeMap; } }