1

Apache Commons SCXML 0.9 を使用していますが、CustomAction を追加する方法が見つかりません。v2.0-SNAPSHOT を使用した例を見つけました (ちなみに、どこで入手できるかはわかりません) が、v0.9 では機能しないようです。

CustomAction customAction = new CustomAction("http://my.custom-actions.domain/CUSTOM", "my", MyCustomAction.class);
List<CustomAction> customActions = new ArrayList<CustomAction>();
customActions.add(customAction);


v2.0-SNAPSHOT の場合、次のように記述できます。

SCXML scxml = SCXMLTestHelper.parse("path/to/my/sm.xml", customActions);

その後、 を取得しSCXMLExecutorてメソッドを呼び出しSCXMLExecutor.goますが、v0.9 のオプションが見つかりません。ここで助けが必要です。
よろしくお願いします

4

1 に答える 1

1

SCXML v0.9 を使用した完全な例 (スペイン語) があるこの投稿を見つけました。
カスタムアクションを追加するために私が書いたコードは次のonExitとおりです。

MyCustomAction mca = new MyCustomAction();//MyCustomAction extends org.apache.commons.scxml.model.Action
State state = (State) getEngine().getStateMachine().getTargets().get("yourstate");
OnExit oex = state.getOnExit();
oex.addAction(mca);
state.setOnExit(oex);

onEntryアクションを登録する場合は、ほぼ同じです。

MyCustomAction mca = new MyCustomAction();//MyCustomAction extends org.apache.commons.scxml.model.Action
MyCustomAction2 mca2 = new MyCustomAction2();//MyCustomAction2 extends org.apache.commons.scxml.model.Action
State state = (State) getEngine().getStateMachine().getTargets().get("yourstate");
OnEntry oe = state.getOnEntry();
oe.addAction(mca);
oe.addAction(mca2);
state.setOnEntry(oe);
于 2016-02-03T13:48:11.237 に答える