2016-10-17 49 views
0

這裏是一個代碼示例:如何獲取戶外數據通過CMIS列出名稱?

Folder dataLists = (Folder) session.getObjectByPath("/sites/swsdp/dataLists"); 
     Joiner joiner = Joiner.on("\t"); 
     for (Folder cmisObject : (Iterable<Folder>) ((Iterable) dataLists.getChildren())) { 
      System.out.println(
        joiner.join(
          cmisObject.getId(), 
          cmisObject.getName(), 
          cmisObject.getDescription(), 
          cmisObject.getClass() 
        )); 
      System.out.println("=============================="); 
     } 

的輸出是:

a534356f-8dd6-4d9a-8ffb-dc1adb140c01 71824d77-9cd8-44c3-b3e4-dbca7e17dc49 Project issues class org.apache.chemistry.opencmis.client.runtime.FolderImpl 

好的,描述可以經由getDescription()法印刷,但如何獲取列表的名字?爲什麼我得到了UUID而不是Issue Log? (Issue Log是列表出現在列表中的列表)。

+0

您正在搜索文件夾名稱?!? –

+0

您是否嘗試使用查詢來獲取所有名稱?!? –

回答

1

首先,您應該看看數據列表是如何通過使用Node Browser導航到數據列表來構造的。這將對物體的結構產生很大的影響。

如果你這樣做,你會發現數據列表的名字實際上存儲在cm:title屬性中。 cm:title屬性在CMIS中稱爲「輔助類型」的方面定義。

如果您使用的露天4.2.x版或更高版本和CMIS 1.1終點,你應該能夠抓住釐米:使用使用你的代碼title屬性:

cmisObject.getPropertyValue("cm:title") 

另外,如果你願意而是轉到查詢路由,意識到您要查詢的類型不是cm:文件夾,而是dl:dataList。您可以使用cm:標題方面進行連接,以獲得數據列表標題屬性,如下所示:

SELECT t.cm:title FROM dl:dataList as d join cm:titled as t on d.cmis:objectId = t.cmis:objectId 
相關問題