Coverage Summary for Class: AddMetadataDialog (org.kitodo.production.forms.createprocess)
Class |
Class, %
|
Method, %
|
Line, %
|
AddMetadataDialog |
100%
(1/1)
|
14,3%
(1/7)
|
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.util.List;
import javax.faces.model.SelectItem;
import org.kitodo.data.database.beans.Ruleset;
import org.kitodo.exceptions.InvalidMetadataValueException;
import org.kitodo.production.services.dataeditor.DataEditorService;
import org.primefaces.model.TreeNode;
public class AddMetadataDialog {
private final CreateProcessForm createProcessForm;
private String selectedMetadata = "";
private List<SelectItem> addableMetadata;
AddMetadataDialog(CreateProcessForm createProcessForm) {
this.createProcessForm = createProcessForm;
}
/**
* Get selectedMetadata.
*
* @return value of selectedMetadata
*/
public String getSelectedMetadata() {
return selectedMetadata;
}
/**
* Set selectedMetadata.
*
* @param selectedMetadata as java.lang.String
*/
public void setSelectedMetadata(String selectedMetadata) {
this.selectedMetadata = selectedMetadata;
this.createProcessForm.getProcessMetadata().setAddMetadataKeySelectedItem(selectedMetadata);
}
/**
* Get addableMetadata.
*
* @return value of addableMetadata
*/
public List<SelectItem> getAddableMetadata() {
return addableMetadata;
}
/**
* Check and return whether any further metadata can be added to the currently selected structure element or not.
*
* @return whether any further metadata can be added to currently selected structure element.
*/
public boolean metadataAddableToStructureElement() throws InvalidMetadataValueException {
prepareAddableMetadataForStructure();
return !getAddableMetadata().isEmpty();
}
/**
* Prepare addable metadata for logical structure element.
* @throws InvalidMetadataValueException invalidMetadataValueException
*/
public void prepareAddableMetadataForStructure() throws InvalidMetadataValueException {
createProcessForm.getProcessMetadata().setSelectedMetadataTreeNode(null);
addableMetadata = DataEditorService.getAddableMetadataForStructureElement(
createProcessForm.getRulesetManagement().getStructuralElementView(
createProcessForm.getProcessDataTab().getDocType(),
createProcessForm.getAcquisitionStage(),
createProcessForm.getPriorityList()),
DataEditorService.getExistingMetadataRows(createProcessForm.getProcessMetadata().getLogicalMetadataTree().getChildren()),
createProcessForm.getProcessMetadata().getProcessDetails().getAdditionallySelectedFields(),
createProcessForm.getMainProcess().getRuleset());
}
/**
* Prepare addable metadata for metadata group.
*/
public void prepareAddableMetadataForGroup(Ruleset ruleset, TreeNode treeNode) {
createProcessForm.getProcessMetadata().setSelectedMetadataTreeNode(treeNode);
addableMetadata = DataEditorService.getAddableMetadataForGroup(ruleset, treeNode);
}
}