以下の手順では、プラグインの作成、テスト、配布方法を知っていて、Eclipse プラグイン開発環境 (PDE) に精通していることを前提とします。
ワークスペース内には変換プラグイン・プロジェクトが必要です。 このプラグイン・プロジェクトは変換拡張の実装を含んでいます。変換に対して指定する ID は一意でなければなりません。
package com.ibm.xtools.transform.cfm.example.transform;
import com.ibm.xtools.transform.cfm.example.rules.MyPopulateComponentRule;
import com.ibm.xtools.transform.core.Transform;
/**
* com.ibm.xtools.transform.cfm.example.transform.MyTransform
*/
public class MyTransform
extends Transform {
public static final String TRANSFORM_ID = "com.ibm.xtools.transform.cfm.example.transform.MyTransformId"; //$NON-NLS-1$
public MyTransform() {
super(TRANSFORM_ID);
add(new MyPopulateComponentRule());
}
}
この例において、com.ibm.xtools.transform.cfm.example.transform は作成する変換拡張の名前であり、com.ibm.xtools.transform.cfm.example.transform.MyTransformId は一意な変換 ID です。 MyPopulateComponentRule クラスは、仕様モデル内のビジネス・プロセスの変換方法に関する実装詳細を含んでいます。
package com.ibm.xtools.transform.cfm.example.condition;
import org.eclipse.uml2.uml.Collaboration;
import com.ibm.xtools.transform.cfm.common.util.CommonConfigUtil;
import com.ibm.xtools.transform.cfm.example.transform.MyTransform;
import com.ibm.xtools.transform.core.ITransformContext;
import com.ibm.xtools.transform.core.TransformCondition;
/**
* com.ibm.xtools.transform.cfm.example.condition.MyExtensionCondition
*/
public class MyExtensionCondition
extends TransformCondition {
public MyExtensionCondition() {
super();
}
protected boolean isContextSatisfied(ITransformContext context) {
return (context.getSource() instanceof Collaboration)
&& CommonConfigUtil.getExtensionIdFor(
(Collaboration) context.getSource(), context).equals(
MyTransform.TRANSFORM_ID);
}
}
ビジネス・プロセスからサービス・モデルへの変換を実行すると、変換サービスはこの条件クラスの中の情報を使用して、この変換拡張を呼び出して仕様モデル内のビジネス・プロセスを変換すべきかどうかを判断します。<extension point="com.ibm.xtools.transform.core.transformationExtensions">
<TransformationExtension author="you" description="my custom extension" document="optional" enabled="true" id="com.ibm.xtools.transform.cfm.example.transform.MyTransformId" name="My custom extension" targetTransformation="com.ibm.xtools.transform.cfm.wbm.transforms.MainTransform" version="1.0.0">
<TransformDefinition acceptCondition="com.ibm.xtools.transform.cfm.example.condition.MyExtensionCondition" class="com.ibm.xtools.transform.cfm.example.transform.MyTransform" id="myTransformId"/>
<ExtendTransform targetTransform="com.ibm.xtools.transform.cfm.wbm.transforms.OwnedBehaviorTransform">
<AddTransform id="com.ibm.xtools.transform.cfm.example.transform.MyTransform"/>
</ExtendTransform>
</TransformationExtension>
</extension>