通过 Java 创建 DSpace 集合
Creating a DSpace collection via Java
我想编写 Java 代码以在 DSpace 5.4.
中创建一个新的 集合
存在一个静态方法org.dspace.content.Collection.create(Context)
,但它是package-private,意味着这个方法只能被同一个包中的类访问org.dspace.content
.
CollinD 的评论对于当前 master 分支中使用的方法是正确的,最终将是 DSpace 6。在 DSpace 5.4 中,使用的方法是 org.dspace.content.Community#createCollection()
(5.x code here) 或此方法的其他版本,它以句柄字符串作为参数。
原因是collection不能单独存在于DSpace中。它必须始终在社区内,因此用于创建 collection 的所有 public API 方法都必须确保指定社区。
要使用我上面提到的方法,您首先需要为您的新 collection 查找 parent 社区 object,例如(如果您知道它的句柄)通过 org.dspace.handle.HandleManager#resolveToObject(String)
(5.x code here).
您可能还需要做其他事情才能获得正确的行为(例如标题等元数据);当在那里创建 collection 时,我会看看 UI 选项之一会发生什么。请参阅此处 XMLUI:org.dspace.app.xmlui.aspect.administrative.FlowContainerUtils#createCollection
(5.x code here)。
我想编写 Java 代码以在 DSpace 5.4.
中创建一个新的 集合存在一个静态方法org.dspace.content.Collection.create(Context)
,但它是package-private,意味着这个方法只能被同一个包中的类访问org.dspace.content
.
CollinD 的评论对于当前 master 分支中使用的方法是正确的,最终将是 DSpace 6。在 DSpace 5.4 中,使用的方法是 org.dspace.content.Community#createCollection()
(5.x code here) 或此方法的其他版本,它以句柄字符串作为参数。
原因是collection不能单独存在于DSpace中。它必须始终在社区内,因此用于创建 collection 的所有 public API 方法都必须确保指定社区。
要使用我上面提到的方法,您首先需要为您的新 collection 查找 parent 社区 object,例如(如果您知道它的句柄)通过 org.dspace.handle.HandleManager#resolveToObject(String)
(5.x code here).
您可能还需要做其他事情才能获得正确的行为(例如标题等元数据);当在那里创建 collection 时,我会看看 UI 选项之一会发生什么。请参阅此处 XMLUI:org.dspace.app.xmlui.aspect.administrative.FlowContainerUtils#createCollection
(5.x code here)。