基本シンボルの定義

シンボルを定義するには、式を使用する必要があります。エージェントは式を評価して、シンボルに値を割り当てます。

<symbol> タグ内で、以下のタグを使用します。
<name>
シンボルの名前。これはストリングで、$ 文字で始める必要があります。
<eval>
エージェントがこのシンボルの値を生成するために評価する必要がある式。式の定義について詳しくは、式の定義を参照してください。
<type >
シンボルが返す値のタイプ。この値は、完全修飾 Java™ クラス名、つまり Java プリミティブとして指定します。シンボルのタイプの指定はオプションです。これが定義されていない場合、要求マッパーは、式に基づいてフィールド・タイプを設定しようとします。 要求マッパーが式を評価する前にシンボルのタイプを判別できないと、パフォーマンスに影響が出ます。そのため、最良のパフォーマンスを得るために、タイプを指定することをお勧めします。
<args>
シンボルの引数。このタグはオプションです。これを指定した場合、そのシンボルを評価するために引数を提供する必要があります。詳しくは、シンボルの引数の定義を参照してください。

<symbol>
   <name>$doubles1</name>
   <eval>$s1*2</eval>
   <type>int</type>
</symbol>

このシンボルは、別のシンボル $s1 の値の 2 倍を返します。

シンボルの引数の定義

シンボル定義の <args> タグ内で、そのシンボルの引数のタイプを定義できます。

このタグでは、<type> タグを使用して引数のタイプを指定します。この値は、完全修飾 Java クラス名、つまり Java プリミティブとして指定します。<type> タグはいくつでも指定できます。それぞれのタグで 1 つの引数を定義します。

この場合、次のように引数を括弧で囲んで、シンボルを参照する必要があります。
$symbol(argument1,argument2...)
引数の個数は、引数タイプの定義の数と同じでなければなりません。

シンボル定義内で、最初の引数は $p0、2 番目の引数は $p1 というように参照します。

引数を持つシンボルは、Java メソッドと同様に機能します。 シンボルは、入力引数を取り、引数の値に応じた値を返します。

<symbol>
   <name>$double</name>
   <eval>$p0*2</eval>
   <type>int</type>
   <args>
       <type>int</type>
   </args>
</symbol>
このシンボルは、引数の値の 2 倍を返します。これを評価するには、数値引数 ($double(2)$double($s1)) を提供します。