Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定文档是否可版本化?_Java_Alfresco_Opencmis - Fatal编程技术网

Java 如何确定文档是否可版本化?

Java 如何确定文档是否可版本化?,java,alfresco,opencmis,Java,Alfresco,Opencmis,如何使用OpenCMIS代码在alfresco中查找文档的版本?以纯CMIS的方式,以下代码片段将实现此目标: // For how to get a Session see: // http://chemistry.apache.org/java/opencmis-client-api.html#sessions Session session = getSession(); CmisObject object = session.getObjectByPath("/path/to/obje

如何使用OpenCMIS代码在alfresco中查找文档的版本?

以纯CMIS的方式,以下代码片段将实现此目标:

// For how to get a Session see:
// http://chemistry.apache.org/java/opencmis-client-api.html#sessions
Session session = getSession();

CmisObject object = session.getObjectByPath("/path/to/object");
ObjectType type = object.getType();
Boolean isVersionable = type instanceOf DocumentType && ((DocumentType)type).isVersionable();
事实上,
cmis:document
节点总是标记为可版本化,而实际上Alfresco使用
cm:versionable
特性将节点标记为可版本化。这与标准CMIS域模型不兼容,在标准CMIS域模型中,版本性是从对象类型定义静态派生的

我认为,当向错过它的节点发出版本控制CMIS调用时,Alfresco会自动添加
cm:versionable
方面,因此上述不兼容性不应导致任何实际问题

另一种更为露天的解决方案要求您使用:


以纯CMIS的方式,以下代码片段将实现此目标:

// For how to get a Session see:
// http://chemistry.apache.org/java/opencmis-client-api.html#sessions
Session session = getSession();

CmisObject object = session.getObjectByPath("/path/to/object");
ObjectType type = object.getType();
Boolean isVersionable = type instanceOf DocumentType && ((DocumentType)type).isVersionable();
事实上,
cmis:document
节点总是标记为可版本化,而实际上Alfresco使用
cm:versionable
特性将节点标记为可版本化。这与标准CMIS域模型不兼容,在标准CMIS域模型中,版本性是从对象类型定义静态派生的

我认为,当向错过它的节点发出版本控制CMIS调用时,Alfresco会自动添加
cm:versionable
方面,因此上述不兼容性不应导致任何实际问题

另一种更为露天的解决方案要求您使用:


斯库罗指出的方法是有效的。另一种方法是使用所有对象都知道其允许的操作的事实。所以您可以这样问(在OpenCMIS工作台Groovy控制台中运行):


如果文档不可版本化,无论出于何种原因,它都不会有“可以签出”允许的操作。

skuro指出的方法是有效的。另一种方法是使用所有对象都知道其允许的操作的事实。所以您可以这样问(在OpenCMIS工作台Groovy控制台中运行):

如果文档不可版本控制,无论出于何种原因,它都不会有允许的CAN_CHECK_OUT操作

doc = session.getObjectByPath("/cmis-demo/temp.txt")
allowableActions = doc.getAllowableActions().getAllowableActions()
if (allowableActions.contains(Action.CAN_CHECK_OUT)) {
    print "Versionable!"
}