この例では、アダプターが EMP データ・オブジェクトの CREATE イベントを処理します。 名前およびサラリー属性は、データ・オブジェクトから抽出されて、EmpLocalHome 上の create メソッドへ受け渡されます。
create メソッドは Emp EJB のインスタンスを戻し、1 次キー値はコピーされて DataObject へ戻されます。 次に呼び出し元は、生成されたキー値を取得することができます。 処理後、アダプターは true のを戻します。 他のすべての変更は、アダプターによって無視され、EJB Mediator によって処理されます。
package com.example; import com.ibm.websphere.sdo.mediator.ejb.*; import javax.naming.InitialContext; import commonj.sdo.ChangeSummary; import commonj.sdo.DataObject; import commonj.sdo.DataGraph; import commonj.sdo.ChangeSummary; // example of Adapter class calling a EJB create method. public class SalaryAdapter implements MediatorAdapter{ ChangeSummary log = null; EmpLocalHome empHome = null; public boolean applyChange(DataObject object, int phase){ if (object.getType().getName().equals("Emp") && phase == MediatorAdapter.CREATE){ try{ String name = object.getString("name"); double salary = object.getDouble("salary"); EmpLocal emp = empHome.create(name, salary); object.set("empid", emp.getPrimaryKey() ); // set primary key in SDO return true; } catch(Exception e){ // error handling code goes here } } return true; } public void init (ChangeSummary log){ try { this.log = log; InitialContext ic = new InitialContext(); empHome = (EmpLocalHome)ic.lookup( "java:comp/env/ejb/Emp"); } catch (Exception e) { // error handling code goes here } } public void end(){} }