mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-17 06:53:09 +00:00
#9806: Refactor WorkspaceItemBuilder to support specific item uuid
(cherry picked from commit b99b1eec29
)
This commit is contained in:

committed by
github-actions[bot]
![github-actions[bot]](/assets/img/avatar_default.png)
parent
8d576f8300
commit
ffc807205f
@@ -10,6 +10,7 @@ package org.dspace.builder;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.dspace.authorize.AuthorizeException;
|
import org.dspace.authorize.AuthorizeException;
|
||||||
import org.dspace.content.Bitstream;
|
import org.dspace.content.Bitstream;
|
||||||
@@ -41,14 +42,31 @@ public class WorkspaceItemBuilder extends AbstractBuilder<WorkspaceItem, Workspa
|
|||||||
|
|
||||||
public static WorkspaceItemBuilder createWorkspaceItem(final Context context, final Collection col) {
|
public static WorkspaceItemBuilder createWorkspaceItem(final Context context, final Collection col) {
|
||||||
WorkspaceItemBuilder builder = new WorkspaceItemBuilder(context);
|
WorkspaceItemBuilder builder = new WorkspaceItemBuilder(context);
|
||||||
return builder.create(context, col);
|
return builder.create(context, col, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private WorkspaceItemBuilder create(final Context context, final Collection col) {
|
public static WorkspaceItemBuilder createWorkspaceItem(final Context context, final Collection col, UUID uuid) {
|
||||||
|
WorkspaceItemBuilder builder = new WorkspaceItemBuilder(context);
|
||||||
|
return builder.create(context, col, uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create with a specific UUID (e.g. restoring items with Packager import)
|
||||||
|
*
|
||||||
|
* @param context DSpace context
|
||||||
|
* @param col Parent collection
|
||||||
|
* @param uuid Item UUID
|
||||||
|
* @return WorkspaceItemBuilder
|
||||||
|
*/
|
||||||
|
private WorkspaceItemBuilder create(final Context context, final Collection col, UUID uuid) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
workspaceItem = workspaceItemService.create(context, col, false);
|
if (uuid == null) {
|
||||||
|
workspaceItem = workspaceItemService.create(context, col, false);
|
||||||
|
} else {
|
||||||
|
workspaceItem = workspaceItemService.create(context, col, uuid, false, false);
|
||||||
|
}
|
||||||
item = workspaceItem.getItem();
|
item = workspaceItem.getItem();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return handleException(e);
|
return handleException(e);
|
||||||
|
Reference in New Issue
Block a user