Получение других метаданных в ItemRequestForm в DSpace 6x - PullRequest
0 голосов
/ 02 мая 2020

При нажатии ограниченного потока битов в DSpace отобразится форма запроса. Форма отображает заголовок элемента по умолчанию. В версии 5x мне удалось заставить отображать другие метаданные вместо заголовка (например, цитирование).

Код, который я использовал для отображения:

    Metadatum[] titleDC = item.getMetadata("dc", "title", null, Item.ANY);
    Metadatum[] citationDC = item.getMetadata("dc", "identifier", "citation", Item.ANY);
    String document = "";
    if (citationDC != null && citationDC.length > 0) {
        document = citationDC[0].value;
    } else {
        if (titleDC != null && titleDC.length > 0)
            document = titleDC[0].value;
    }
    itemRequest.addPara(document);

Я не могу использовать этот код в версии 6x из-за серьезных изменений в исходном коде. Ниже приведен код по умолчанию в DSpace 6x для отображения названия элемента:

String titleDC = item.getName();
if (titleDC != null && titleDC.length() > 0)
    itemRequest.addPara(titleDC);

Кажется, в версии 6 нет item.getMetadata. Мой вопрос заключается в том, как перевести код версии 5x

Metadatum[] citationDC = item.getMetadata("dc", "identifier", "citation", Item.ANY);

в версию 6?

1 Ответ

0 голосов
/ 04 мая 2020

Оглядываясь в коде DSpace 6x, мне удалось отобразить другие метаданные (например, d c .identifier.citation ) вместо заголовка элемента в ItemRequestForm.java. Добавить в импорт import org.dspace.content.service.ItemService;

private final transient ItemService itemService
    = ContentServiceFactory.getInstance().getItemService();

Для отображения d c .identifier.citation

String citationDC = itemService.getMetadataFirstValue(item, "dc", "identifier", "citation", Item.ANY);
String titleDC = item.getName();
String document = "";
    if (citationDC != null && citationDC.length() > 0) {
        document = citationDC;
    } else {
        if (titleDC != null && titleDC.length() > 0)
        document = titleDC;
    }

itemRequest.addPara(document);

Я добавил тест в качестве запасного варианта, если d c .identifier.citation не существует.

...