高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > インポートとエクスポートのフレームワーク > エクスポート/インポートハンドラの作成方法 > クラス (エレメント) のインポートハンドラの作成方法 > 属性インポートハンドラの作成方法
  
属性インポートハンドラの作成方法
異なるクラスの属性を同じ方法でインポートする必要がある場合、または属性を専用のハンドラで処理する場合は、属性ハンドラを作成できます。この手順を以下に示します。
1. AttrExporterImporterTemplate を拡張する Java クラスを作成します。
2. 必要に応じて以下のメソッドをオーバーライドします。
prepareForCheckConflicts(Importer importer): コンフリクトチェックを準備します。特定のハンドラによって実装されることはほとんどありません。
checkConflictForAttribute( Object existingOb, IxbElement fileXML, Importer importer) : このメソッドは、特定の属性のコンフリクトをチェックします。そのため、データベースの既存の属性とインポートする属性のコンフリクトが生じる可能性がある場合は、このメソッドをオーバーライドする必要があります。
importAttribute ( Object object,
IxbElement fileXML,
Importer importer):
XML DOM ドキュメントの属性データを読み込んでインポートオブジェクトに設定します。このメソッドは、特定の属性に合わせてオーバーライドする必要があります。
object MyObject に属性 MyAttr を設定する importAttribute() の例を示します。
public Object importAttribute
( Object object,
IxbElement fileXML,
Importer importer)
throws WTException {
String myAttr;
try{
myAttr = fileXML.getValue(IxbHndHelper.XML_ATTR_MYATTR);
// XML_ATTR_MYATTR tag must be defined in IxbHndHelper
}
catch (Exception exc){
// The paragraph bellows allows the import process continue,
// even when the import of MyAttr fails. If the programmer
// wants the import process to stop when the import of
// MyAttr fails, please assign ob=null and throw exception
System.out.println(
"Exception when getting MyAttr in importAttribute");
System.out.println("MyAttr attribute is not imported");
return object;
}

MyObject ob = (MyObject) object;
try {
MyObjectHelper.service.setMyAttr(ob, myAttr);
}
catch (Exception e) {
if (! importer.
attributeExporterImporterManager.
overrideConflicts) {
ob = null;
throw e;
}
else{
// override the conflict by doing something here…
}
}
finally{
return ob;
}