Flex Gateway新着情報
Governance新着情報
Monitoring API Manager同じものを何通りかの方法で設定できるモジュールを開発していて、その中の 1 つだけを使用する必要があるケースでは、次のルールの設定が必要な場合もあります。
特定のパラメーターセットから一度に 1 つだけを使用すること。
@ExclusiveOptionals
を使用することで、この制約を適用することができます。
@ExclusiveOptionals
アノテーションは、@ParameterGroup
として使用される種別でのみ使用できます (詳細はパラメーターを参照してください)。
@ExclusiveOptionals
public class ExclusiveOptionalsExample {
@Parameter
private String requiredParameter;
@Parameter
@Optional
private String optionalParameter;
@Parameter
@Optional
private String anotherOptionalParameter;
}
アノテーション名が示すように、排他的な制約は省略可能なパラメーターにのみ適用されます。そのため、requiredParameter
を optionalParameter
や anotherOptionalParameter
と同時に設定することはできますが、optionalParameter
と anotherOptionalParameter
を同時に設定すると、エラーがスローされます。
ヒント: @ExclusiveOptionals
でアノテーションが付加されたオブジェクトの内部では、パラメーターをいくつでも設定できますが、同時に設定できる省略可能なパラメーターは 1 つだけです。
省略可能なパラメーターを正確に 1 つ (1 つのみ) 設定する必要があるケースがあります。この要件は、@ExclusiveOptionals(isOneRequired = true)
を使用して設定できます。次に例を示します。
@ExclusiveOptionals(isOneRequired = true)
public class OneRequiredExample {
@Parameter
private String requiredParameter;
@Parameter
@Optional
private String optionalParameter;
@Parameter
@Optional
private String anotherOptionalParameter;
}
そのため、requiredParameter
を設定して、省略可能なパラメーターの optionalParameter
または anotherOptionalParameter
を設定しないと、エラーがスローされます。