Coverage Summary for Class: FileSec (org.kitodo.dataeditor.entities)
Class |
Class, %
|
Method, %
|
Line, %
|
FileSec |
100%
(1/1)
|
100%
(5/5)
|
92%
(23/25)
|
/*
* (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.dataeditor.entities;
import java.util.List;
import java.util.NoSuchElementException;
import org.kitodo.dataeditor.MediaFile;
import org.kitodo.dataeditor.MetsKitodoObjectFactory;
import org.kitodo.dataformat.metskitodo.FileType;
import org.kitodo.dataformat.metskitodo.MetsType;
public class FileSec extends MetsType.FileSec {
private final MetsKitodoObjectFactory objectFactory = new MetsKitodoObjectFactory();
/**
* Constructor to copy the data from parent class.
*
* @param fileSec
* The MetsType.FileSec object.
*/
public FileSec(MetsType.FileSec fileSec) {
super.fileGrp = fileSec.getFileGrp();
super.id = fileSec.getID();
}
/**
* Inserts MediaFile objects into fileSec of mets object.
*
* @param mediaFiles
* The list of media files.
*/
public void insertMediaFiles(List<MediaFile> mediaFiles) {
for (MediaFile mediaFile : mediaFiles) {
insertFileToFileGroupOfMets(mediaFile);
}
writeFileIds();
}
private void insertFileToFileGroupOfMets(MediaFile mediaFile) {
FileType.FLocat fLocat = objectFactory.createFileTypeFLocat();
fLocat.setLOCTYPE(mediaFile.getLocationType().toString());
fLocat.setHref(mediaFile.getFilePath().getPath());
FileType fileType = objectFactory.createFileType();
fileType.setMIMETYPE(mediaFile.getMimeType());
fileType.getFLocat().add(fLocat);
getLocalFileGroup().getFile().add(fileType);
}
/**
* Returns the local file group of given mets object as FileGrp object.
*
* @return The FileGrp object.
*/
public MetsType.FileSec.FileGrp getLocalFileGroup() {
for (MetsType.FileSec.FileGrp fileGrp : this.getFileGrp()) {
if (fileGrp.getUSE().equals("LOCAL")) {
return fileGrp;
}
}
throw new NoSuchElementException("No local file group in mets object");
}
private void writeFileIds() {
int counter = 1;
for (FileType file : getLocalFileGroup().getFile()) {
file.setID("FILE_" + String.format("%04d", counter));
counter++;
}
}
}