Coverage Summary for Class: MetadataFormat (org.kitodo.api.schemaconverter)

Class Class, % Method, % Line, %
MetadataFormat 100% (1/1) 50% (2/4) 45% (9/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.api.schemaconverter;
 
 public enum MetadataFormat {
     MODS,
     MARC,
     PICA,
     OTHER,
     KITODO;
 
     /**
      * Determine and return the adequate MetadataFormat for given String 'formatString'.
      *
      * @param formatString
      *          String for which an adequate MetadataFormat will be determined and returned
      * @return MetadataFormat
      *          Adequate MetadataFormat for given String
      */
     public static MetadataFormat getMetadataFormat(String formatString) {
         for (MetadataFormat format : MetadataFormat.values()) {
             if (formatString.compareToIgnoreCase(format.toString()) == 0) {
                 return format;
             }
         }
         return OTHER;
     }
 
     /**
      * Get default record ID XPath for given format.
      *
      * @param format MetadataFormat
      * @return default record ID XPath for given format
      */
     public static String getDefaultRecordIdXpath(String format) {
         switch (format) {
             case "MODS":
                 return ".//*[local-name()='recordInfo']/*[local-name()='recordIdentifier']/text()";
             case "MARC":
                 return ".//*[local-name()='datafield'][@tag='245']/*[local-name()='subfield'][@code='a']/text()";
             case "PICA":
                 return ".//*[local-name()='datafield'][@tag='003@']/*[local-name()='subfield'][@code='0']/text()";
             default:
                 return "";
         }
     }
 
     /**
      * Get default record title XPath for given format.
      *
      * @param format MetadataFormat
      * @return default record title XPath for given format
      */
     public static String getDefaultRecordTitleXpath(String format) {
         switch (format) {
             case "MODS":
                 return ".//*[local-name()='titleInfo']/*[local-name()='title']/text()";
             case "MARC":
                 return ".//*[local-name()='controlfield'][@tag='001']/text()";
             case "PICA":
                 return ".//*[local-name()='datafield'][@tag='021A']/*[local-name()='subfield'][@code='a']/text()";
             default:
                 return "";
         }
     }
 }