setterメソッドへの検証ロジックの実装

検証ロジックを実装する方法の1つは、setterメソッドで検証を強制実行することです。setterメソッドは通常、エンティティ・オブジェクトの各属性に対して生成されます。ただし、次の場合にはsetterメソッドは生成されません。

setterメソッドを生成する方法は、「アクセッサ・メソッドの生成」を参照してください。

検証ロジックをsetterメソッドに実装するには、次のようにします。

  1. ナビゲータで、エンティティ・オブジェクトを右クリックし、「エンティティ・オブジェクト・クラスに移動」を選択します。
  2. 構造ペインで、編集するsetAttribute()メソッドをクリックし、コード内のそのメソッドに移動します。
  3. setAttributeInternal()コールの前にカスタム検証コードを挿入します。

次のメソッドの例では、配布IDの設定前に一意のキー値が必要であるという規則が実行されます。値が一意でない場合、メソッドにより例外がスローされます。それ以外の場合は、検証プロセスが続行されます。

public void setDistributionId(Number quantity)  {
  Object[] reqDistKey = new Object[1];
  reqDistKey[0] = this.distId;

  // If the key exists, then it's not unique.
  if (getDefinitionObject()
    .findInstance((ApplicationModuleImpl)getApplicationModule(),
    new Key(reqDistKey)) != null ){
	  throw new JboException("Must be unique");
  }
  // Generated calls follow.
  setAttributeInternal( DISTRIBUTIONID, quantity );
}    

検証ロジックの実装