2016-04-08 26 views
0

我正在構建一個訪問OData信息的java服務。我正在使用olingo解析所有返回的json。如果我拉取元數據,我可以看到我的屬性在我所有的EntityType下都有自定義屬性。我試圖訪問這些屬性。我目前可以訪問所有的屬性,但我所能得到的只是關鍵值對。如何使用Olingo獲取EntityType的屬性屬性

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

通過在Eclipse中浸泡,我可以看到的EntityType對象解析了這些屬性,並且將它們存儲在一個HashMap。任何想法如何使用Olingo得到這個?最後的辦法是再次側面處理元數據XML,但我真的不想這樣做。

我也看到了在調試器,通話

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

包含SimpleProperty property變量,它包含我所有屬性的註釋。再次無法弄清楚如何獲得訪問權(包括黑客和谷歌)。嘆:\

回答

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註釋變量之後爲空。經驗教訓一次又一次,永不假設。 :)

註釋在致電prop.getAnnotations()