更新のロジック

更新のロジックは、以下のとおりです。

提供された属性マップに含まれる属性ごとに、以下を行います。

  1. 属性名が既存の属性と一致する場合、そのフィールドを提供された値 フィールドで上書きすることを試行します。
  2. 属性がまだ存在しない場合、allowCreate が true でそのメタデータが既知であれば、属性を作成します。これは、グローバル属性メタデータおよびインスタンス属性 (フローチャートを除く) に適用されます。
  3. 値タイプ、または属性のメタデータ定義の他の側面が一致しない場合、 または提供された 1 つ以上の値が無効であったり範囲外であったりする場合は、InvalidAttributeException をスローします。
  4. または、指定された属性が存在しない場合、AttributeNotFoundException をスローします。
注: 例外が生じた場合は、いずれの更新もコミットされません。

この特定のメソッドは、新しいカスタム属性を定義することをサポートしません。そのためには createAttributeMetadata() メソッドを使用します。

すべてのケースで、属性の更新操作は通常のセキュリティー制約および検証に従います。特定のコンポーネント・インスタンスで必要な属性や正しいタイプなどは、クライアントが決定する必要があります。