暗黙的な設定

一部の設定は暗黙的な設定に分類されます。パラメーターが 1 つも必須ではない場合は、設定を暗黙的に使用できます。たとえば、​myConfig​ 設定オブジェクトに ​param1​ という必須パラメーターがあるとします。

<example:my-config name="myConfig" param1="required value" />

<flow>
	<example:operation config-ref="myConfig" />
</flow>

そして、代わりに bar パラメーターが省略可能になったとします。

<example:my-config name="myConfig" />

<flow>
	<example:operation config-ref="myFoo" />
</flow>

この場合、my-config 要素全体 (そして以降の config-ref) は、実際には効果を持たないため冗長となります。この場合は、暗黙的な設定を使用できます。

<flow>
	<example:operation />
</flow>

my-config​ には必須パラメーターがないため、SDK は暗黙的なインスタンスを作成でき、このインスタンスでは、すべてのパラメーターが自動的にデフォルト値に割り当てられます。暗黙的な設定は、パラメーターのデフォルト値に応じて静的または動的になります。デフォルト値のいずれかが式である場合、暗黙的な設定は動的になります。

式をデフォルト値として使用すると、​位置の独立性​のベストプラクティスに違反します。

暗黙的な設定と明示的な設定の混在

暗黙的な設定と明示的な設定を一緒に使用することができます。

<flow>
	<example:operation />
	<example:operation config-ref="myConfig" />
</flow>
暗黙的な ​config​ は設定種別ごとに 1 つだけ作成されます。2 つの操作で同じ種別の暗黙的な設定を使用しようとすると、それぞれの操作はまったく同じインスタンスを使用します。
<flow>
	<example:operation />
	<example:operation />
	<!-- Both operations use the same config instance -->
</flow>

明示的な設定の強制的な使用

バージョン 1.3 以降で使用できます。

必須パラメーターが 1 つもなくても、常に明示的な設定を強制的に使用したいケースがあります。通常、このような要件は、明確さや使いやすさの向上を目的とするものです。

@NoImplicit​ アノテーションを使用すると、SDK に対して、特定の設定種別では暗黙的なインスタンスを作成しないように指示できます。

@Extension(name="example")
@NoImplicit
@Operations(ExampleOperations.class)
public class ExampleModule {

	@Parameter
	@Optional
	public String bar;



}

また、設定が別のクラスに外部化されている場合にも、このアノテーションを使用できます。

@Extension(name="example")
@Configurations(MyConfiguration.class)
public class ExampleModule {

}

@Configuration(name="myConfig")
@NoImplicit
@Operations(ExampleOperations.class)
public class MyConfiguration {

	@Parameter
	@Optional
	public String bar;


}