2016-04-08 16 views
0

OData情報にアクセスするJavaサービスを構築しています。私は返されたjsonをすべて解析するためにolingoを使っています。メタデータをプルすると、すべてのEntityTypeでプロパティにカスタム属性があることがわかります。私はこれらの属性にアクセスしようとしています。私は現在、すべてのプロパティにアクセスすることができますが、私が得ることができるすべてのキー、値のペアです。 Eclipseで通じ浸漬Olingoを使用してEntityTypeのプロパティ属性を取得する方法

for(Entry<String, Object> prop : entry.getProperties().entrySet()) 

私はEntityTypeオブジェクトはこれらの属性を解析されており、ハッシュマップに格納されていることがわかります。どのようにOlingoを使ってこれをどうやって得るのか?最後の手段は、メタデータxmlをもう一度処理することですが、実際にはそうしたくありません。

私もコール

entitySet.getEntityType().getProperty("createdBy") 

はすべて私の属性の注釈が含まれているSimpleProperty property変数が含まれているデバッガで見てきました。もう一度アクセスを取得する方法(ハッキングとグーグル)を理解することはできません。 sigh:\

答えて

0

olingoユーザグループのメンバーと話をした後、私には解決策があります。コードスニペット

entitySet.getEntityType().getProperty("createdBy") 

EdmTypedオブジェクトを返します。これは、注釈と属性を参照できるEdmPropertyにキャストすることができます。

EdmProperty prop = (EdmProperty)entitySet.getEntityType().getProperty("createdBy") 
for(EdmAnnotationAttribute attr : property.getAnnotations().getAnnotationAttributes()) 
{ 
    attr contains your info 
} 

EdmProperty annotations変数にキャストした後でデバッガを見たときにこれを試したことはありませんでした。レッスンは何度も何度も学びました。 :)

注釈は、prop.getAnnotations()

の呼び出し時にロードされます。
関連する問題