Coverage Summary for Class: MetadataHelper (org.kitodo.production.helper.metadata)

Class Class, % Method, % Line, %
MetadataHelper 100% (1/1) 100% (1/1) 94,1% (16/17)


 /*
  * (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.helper.metadata;
 
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map.Entry;
 
 import org.kitodo.production.services.ServiceManager;
 
 public class MetadataHelper {
 
     private MetadataHelper() {
     }
 
     /**
      * prüfen, ob es sich hier um eine rdf- oder um eine mets-Datei handelt.
      */
     public static String getMetaFileType(URI file) throws IOException {
         /*
          * Typen und Suchbegriffe festlegen
          */
         HashMap<String, String> types = new HashMap<>();
         types.put("metsmods", "ugh.fileformats.mets.MetsModsImportExport".toLowerCase());
         types.put("mets", "www.loc.gov/METS/".toLowerCase());
         types.put("rdf", "<RDF:RDF ".toLowerCase());
         types.put("xstream", "<ugh.dl.DigitalDocument>".toLowerCase());
 
         try (InputStreamReader input = new InputStreamReader(ServiceManager.getFileService().read(file),
                 StandardCharsets.UTF_8); BufferedReader bufRead = new BufferedReader(input)) {
             char[] buffer = new char[200];
             while (bufRead.read(buffer) >= 0) {
                 String temp = new String(buffer).toLowerCase();
                 for (Entry<String, String> entry : types.entrySet()) {
                     if (temp.contains(entry.getValue())) {
                         return entry.getKey();
                     }
                 }
             }
         }
         return "-";
     }
 }