関数およびドット表記と関数チェーン

変換関数をスクリプトに追加する際は正しい構文を使用する必要があります。そうでない場合、スクリプトは正しく動作しません。このトピックで説明するように、関数の表記を使用してすべての変換関数を参照できます。

<function>(<argument1>[,<argumentN>])
たとえば、次のコードでは、addressと呼ばれる属性にgeotagAddress関数を適用します。
geotagAddress(address)
ドット表記を使用すると、Big Data Discovery固有の関数ではない元のGroovy関数を組み込むことができます。
<attribute>.<function>()
たとえば、次のコードでは、toString関数を使用して、quantityと呼ばれる属性をStringに変換します。
quantity.toString()
注意: ドット表記を使用できるのは元のGroovy関数に対してのみです。BDD固有の変換関数の場合、関数の表記を使用する必要があります。

関数チェーン

関数チェーンを使用すると、単一の文内の1つの属性に複数の関数を適用できます。関数チェーンを作成するには、属性を1つの関数に渡してから、この関数を別の関数に渡します。最も内側の関数(属性をパラメータとして受け取る関数)が最初に評価され、最も外側の関数が最後に評価されます。

たとえば、次のコードでは、IPアドレスを使用し、その発生元の市区町村を確認してから、市区町村の名前を大文字に変更します。
// Performs two transformations on a single attribute using one line of code:

toUpperCase(geotagIPAddressGetCity(IP_address))
次のコードは、上記のコードと同じ結果になりますが、より冗長です。
// The same two transformations as above, without chaining.
// 'city_name' is a temporary variable that stores the output of geotagIPAddressGetCity()

def city_name = geotagIPAddressGetCity(IP_address)
toUpperCase(city_name)

これらの例で理解できるように、関数チェーンを使用すると、コードがより明確になり、読みやすくなります。また、2番目の例のcity_nameのようなプレースホルダ変数を含める必要がないため、コードでエラーが発生しにくくなります。