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