---
schema_version: "1"
id: d0674671c6ef945b5e9626eb14350519811b4a05676df2005e7500f5fcda471e
title: パラメーター DSL のカスタマイズ
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/parameters-dsl.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/parameters-dsl
source_site: docs.mulesoft.com
content_type: documentation
content_hash: aebeebb406c56fb1186e340b978c8d85780151e96f71ea755944657781d7cac2
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# パラメーター DSL のカスタマイズ

コンポーネントパラメーターのいくつかの側面をカスタマイズしたり制限したりすることで、ユーザーエクスペリエンスを最大限に高めることができます。たとえば、関係のないパラメーターを隠すことで UI が見やすくなります。

## [](#参照または値としての文字列の受け取り)参照または値としての文字列の受け取り

次のような操作があるとします。

```java
public void send(@Connection MyConnection connection, Object value) {
    connection.doSend(value);
}
```

これは次のように呼び出します。

```xml
<demo:send value="requestPayload"/>
```

デフォルトでは、Mule は ​`requestPayload`​ がグローバルリストや POJO などのレジストリ内のオブジェクトへの参照であると見なします。Extension クラスで実際に ​`requestPayload`​ 文字列を受け取りたい場合は、​`@ParameterDsl`​ アノテーションを使用して操作の宣言を変更します。

```java
public void send(@Connection MyConnection connection, @ParameterDsl(allowReferences = false) Object value) {
    connection.doSend(value);
}
```

この変更によって参照の使用が明示的に無効化されるため、操作は文字列値を受け取ります。

## [](#複雑な型の使い方の定義)複雑な型の使い方の定義

すべてのモジュールは、モジュール API に準拠した POJO を公開できます。

```java
// This is the POJO declaration
public class Door {

  @Parameter
  private boolean isLocked;

  @Parameter
  private String color;

}

// This is the configuration
public class HouseConfig {

  @Parameter
  private Door mainDoor;

}
```

このようなパラメーターがある場合は、​`Door`​ が DSL でどのように使用されるかをモジュール開発者が設定する必要があります。その目的のために ​`@TypeDsl`​ アノテーションが用意されており、これによって 2 つの重要な設定が可能になります。

- `allowInlineDefinition`​: POJO (この例では ​`Door`​) をパラメーターとして使用する要素において、その POJO をインラインで宣言できるかどうかを定義します。 `true`​ であれば、次のように宣言できます。
    
    ```xml
    <demo:config name="myConfig"> (1)
        <demo:door isLocked="true" color="red"/> (2)
    </demo:config>
    ```
    
    <table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>config はパラメーターのコンテナとして宣言されています。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td><code>Door</code>​ は (​<code>config</code>​ 内で) インラインで定義されています。</td></tr></tbody></table>
- `allowTopLevelDefinition`​: POJO (この例では ​`Door`​) をアプリケーションの最上位要素として宣言できるかどうかを定義します。 `true`​ であれば、次のように宣言できます。
    
    ```xml
    <demo:door name="MyGlobalDoor" isLocked="true" color="red"/> (1)
    
    <demo:config name="myConfig" door-ref="MyGlobalDoor"/> (2)
    ```
    
    <table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td><code>Door</code>​ はアプリケーションのグローバル要素として宣言されています。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td><code>config</code>​ は別に宣言され、​<code>door-ref</code>​ 属性と共にグローバル要素 ​<code>Door</code>​ を名前で参照しています。</td></tr></tbody></table>