Coverage Summary for Class: SearchDialog (org.kitodo.production.forms.createprocess)
Class |
Class, %
|
Method, %
|
Line, %
|
SearchDialog |
100%
(1/1)
|
33,3%
(2/6)
|
15%
(3/20)
|
/*
* (c) Kitodo. Key to digital objects e. V. <contact@kitodo.org>
*
* This file is part of the Kitodo project.
*
* It is licensed under GNU General Public License version 3 or later.
*
* For the full copyright and license information, please read the
* GPL3-License.txt file that was distributed with this source code.
*/
package org.kitodo.production.forms.createprocess;
import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kitodo.api.dataformat.LogicalDivision;
import org.kitodo.api.dataformat.Workpiece;
import org.kitodo.data.database.beans.Process;
import org.kitodo.data.database.exceptions.DAOException;
import org.kitodo.data.exceptions.DataException;
import org.kitodo.production.helper.Helper;
import org.kitodo.production.services.ServiceManager;
public class SearchDialog {
private static final Logger logger = LogManager.getLogger(SearchDialog.class);
private final CreateProcessForm createProcessForm;
private Process originalProcess;
SearchDialog(CreateProcessForm createProcessForm) {
this.createProcessForm = createProcessForm;
}
/**
* Get originalProcess.
*
* @return value of originalProcess
*/
public Process getOriginalProcess() {
return originalProcess;
}
/**
* Set originalProcess.
*
* @param originalProcess as java.lang.Process
*/
public void setOriginalProcess(Process originalProcess) {
this.originalProcess = originalProcess;
}
/**
* Get Process templates.
*
* @return list of SelectItem objects
*/
public List<Process> getProcessesForChoiceList() {
try {
return ServiceManager.getProcessService().getTemplateProcesses();
} catch (DataException | DAOException e) {
Helper.setErrorMessage(e);
return new ArrayList<>();
}
}
/**
* Copy metadata of selected process.
*/
public void copyMetadata() {
try {
URI metadataUri = ServiceManager.getProcessService().getMetadataFileUri(this.originalProcess);
Workpiece workpiece = ServiceManager.getMetsService().loadWorkpiece(metadataUri);
LogicalDivision root = workpiece.getLogicalStructure();
if (StringUtils.isNotBlank(root.getType())) {
this.createProcessForm.getProcessDataTab().setDocType(root.getType());
}
if (Objects.nonNull(originalProcess.getParent())) {
this.createProcessForm.getTitleRecordLinkTab().setParentAsTitleRecord(originalProcess.getParent());
}
this.createProcessForm.getProcessMetadata().getProcessDetails().setMetadata(root.getMetadata());
} catch (IOException e) {
Helper.setErrorMessage(CreateProcessForm.ERROR_READING, new Object[] {"template-metadata" }, logger, e);
}
}
}