【发布时间】:2015-06-09 07:15:35
【问题描述】:
我在 Alfresco 的一个文件夹中有很多文件。其中一些是pdf。 我想过滤我所有的 pdf 文档并只检索 pdf 文档。 现在我通过遍历一个非常大的列表来做到这一点,该列表是我通过 opencmis 从 alfresco 获得的,并查看文档名称并过滤它们(如果它们是 .pdf)。 我研究了 api 并看到了为此目的使用 OperationContext 的可能性,但我不知道该怎么做。 任何例子都会受到欢迎。
在我让所有文档过滤它们之前,有没有更好的方法来做到这一点?
这就是我现在要做的:
public List< Document > retrieveAllPdfInFolder( Folder target )
{
List< Document > documentList = GenericsUtil.makeList();
for (CmisObject cmisObject: target.getChildren())
{
if (BaseTypeId.CMIS_DOCUMENT.equals(cmisObject.getBaseTypeId()))
{
Document doc =( Document ) cmisObject;
if(doc.getName().endsWith( ".pdf" ))
documentList.add( doc);
System.out.println("[Docment] " + cmisObject.getName());
}
}
return documentList ;
}
这是我想要达到的目标:
public List< Document > retrieveAllPdfInFolder( Folder target, boolean all )
{
OperationContext operationContext = OperationContextUtils.createOperationContext();
Set<String> propertyFilter = new HashSet<String>();
propertyFilter.add( PropertyIds.CONTENT_STREAM_MIME_TYPE);
operationContext.setFilter( propertyFilter );
operationContext.setFilterString( ".pdf" );
// i dont know how to set filter on operationContext
List< Document > finalDocumentList = GenericsUtil.makeList();
ItemIterable< CmisObject > documents = all ? target.getChildren() : target.getChildren(operationContext);
for (CmisObject cmisObject: documents)
{
if (BaseTypeId.CMIS_DOCUMENT.equals(cmisObject.getBaseTypeId()))
finalDocumentList.add( ( Document ) cmisObject);
}
return finalDocumentList ;
}
【问题讨论】:
标签: java alfresco alfresco-share opencmis