StyleBook式を使用して文字列の一部を置き換えることが可能になりました。これらの文字列式がStyleBookコンパイラによって評価されると、StyleBook式を使用する文字列の部分は、その式の値に置き換えられます。文字列にStyleBook式を含めるには、次の表記を使用します。
"...%{...}%..."
「%{」と「}%」で囲まれた文字がStyleBook式を形成します。これらの式は「インプレース補間」として知られています。
例えば、文字列 lb-%{$parameters.appname}%-svc は、StyleBook式のインプレース補間を含む文字列式です。文字列式の値は、補間式の値に依存します。$parameters.appname に「app1」が割り当てられているとします。この場合、文字列式は lb-app1-svc と評価されます。これにより、値が文字列式にハードコードされるのではなく、ユーザー定義の値に基づいて評価されるようになります。
インプレース補間の実用的なユースケースは、StyleBookのポリシー式をパラメータ化することです。HTTP URLに特定の単語、例えば「jpeg」が含まれているかどうかをチェックするポリシー式を作成したいシナリオを考えてみましょう。
このためには、次のようにポリシー式を記述します。「HTTP.REQ.URL.CONTAINS(\\"jpeg\\")」。
さて、HTTP URL内のオブジェクトをパラメータ化したい場合、StyleBookに文字列パラメータ(例えば $parameters.url-object)を追加できます。ポリシー式はこのパラメータに基づいて記述されます。これを行うには、文字列連結を使用して結果を実現します。式は次のようになります。
str("HTTP.REQ.URL.CONTAINS(\\"" + $parameters.url-object + "\\")")
$parameter.url-object に「csv」が割り当てられている場合、上記の式は「HTTP.REQ.URL.CONTAINS(\\"csv\\")」と評価されます。しかし、この式は読みにくいです。このパラメータ化を読みやすく理解しやすくするために、インプレース補間を使用できます。
インプレース補間を使用した式は次のとおりです。
str("HTTP.REQ.URL.CONTAINS(%{quotewrap($parameters.url-object)}%)")
上記の式では、$parameters.url-object の値の周りに内部引用符を追加する補間式を使用しました。この式の結果は上記と同じですが、より直感的で実際の結果に近いものに見えます。