olingoのソースコードを調べ、コードをデバッグしました。多くの研究の後、私はOlingoで有界のアクションを実装することができました。行われる必要がある
我々は、エンティティ・タイプXに囲まれ有界アクションを実装したいとしY.
エンティティを返す
変更点は以下のとおりです。
メタデータドキュメント: でCsdlAbstractEdmProvider拡張またはCsdlEdmProviderを実装するJavaクラス(カスタムクラス)、
は
を機能(...)ゲット・アクションを実装します
と同じメタデータプロバイダクラスのgetSchemas(...)では、getActions(...)メソッドが使用されます。我々がやっていること
@Override
public List<CsdlSchema> getSchemas() throws ODataException {
// create Schema
CsdlSchema schema = new CsdlSchema();
schema.setNamespace("Stackoverflow");
// add EntityTypes
List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
entityTypes.add(getEntityType(X));
entityTypes.add(getEntityType(Y));
schema.setEntityTypes(entityTypes);
// add EntityContainer
schema.setEntityContainer(getEntityContainer());
// add bounded actions
List<CsdlAction> actions = new ArrayList<CsdlAction>();
schema.setActions(actions);
actions.addAll(getActions(ACTION_EXECUTE_FQN));
List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
schemas.add(schema);
return schemas;
}
は、Xおよび戻り値の型は、エンティティY.
サービス実装であるエンティティであること私達の場合には、アクションの最初の引数としてパラメータを指定してアクションという名前ACTION_EXECUTE_FQN有界作成、ということです: 今、サービスの実装も必要です。採用されたユースケースに応じて、ActionEntityProcessorを実装するクラスを作成する必要があります。
これ以降はすべてが同じです。これが助けてくれるといいなあアクションの戻り値のタイプと、アクションがバインドされるパラメーターのタイプに応じて、他のActionProcessorがあります。
ここに同じ問題があります。サンプル/ソースを確認しましたか? – ieugen
私はこの問題を解決することができました。オリンゴのチュートリアルでは、限定された動作について何も言及されていません。あなたの正確なユースケースは何ですか?私。結合されたアクションの戻り値の型と、必要なパラメータの型? – codestreak