Skip to content
Snippets Groups Projects
Commit d45e4371 authored by Michael Becker's avatar Michael Becker
Browse files

prevent duplicate language codes in 010@...

prevent duplicate language codes in 010@ (https://git.sc.uni-leipzig.de/mycore_applications/orient/orient-digital-issues/-/issues/1087)
parent a742b6f1
No related merge requests found
Pipeline #33477 passed with stages
in 9 minutes and 54 seconds
......@@ -165,11 +165,17 @@
<xsl:template name="pica_010at">
<xsl:param name="metadata_native"/>
<xsl:if test="$metadata_native/def.mss08/mss08[@xml:lang='x-iso639-2']">
<!--
https://git.sc.uni-leipzig.de/mycore_applications/orient/orient-digital-issues/-/issues/1087
some entries in MyMssLanguage have identical ISO codes. Thus, we have to use distinct values
-->
<xsl:variable name="iso_codes" select="distinct-values($metadata_native/def.mss08/mss08[@xml:lang='x-iso639-2'])"/>
<xsl:if test="count($iso_codes) > 0">
<pica:datafield tag="010@">
<xsl:for-each select="$metadata_native/def.mss08/mss08[@xml:lang='x-iso639-2']">
<xsl:for-each select="$iso_codes">
<pica:subfield code="a">
<xsl:value-of select="text()"/>
<xsl:value-of select="."/>
</pica:subfield>
</xsl:for-each>
</pica:datafield>
......
......@@ -20,6 +20,7 @@ import java.util.List;
import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.is;
public class Manuscript2PICAHTest extends MyMssCommonTest {
......@@ -91,7 +92,8 @@ public class Manuscript2PICAHTest extends MyMssCommonTest {
final List<Element> elements = reader.getDatafield(picaRecord, "010@");
assertThat(elements.size(), is(1));
assertThat(reader.getFirstSubfieldContent(elements.get(0), "a").orElseThrow(), is("ara"));
assertThat(reader.getSubfieldContent(elements.get(0), "a"),
contains("ara", "ira"));
}
@Test
......@@ -201,9 +203,12 @@ public class Manuscript2PICAHTest extends MyMssCommonTest {
final MCRObject manuscript = new MCRObject(this.manuscript);
// set language to LANG0001 which has a x-iso639-2 entry
final MCRMetaClassification lang = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0001");
final MCRMetaClassification lang1 = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0001");
final MCRMetaClassification lang2 = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0164");
final MCRMetaClassification lang3 = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0171");
manuscript.getMetadata().setMetadataElement(
new MCRMetaElement(MCRMetaClassification.class, "def.mss08", false, true, List.of(lang)));
new MCRMetaElement(MCRMetaClassification.class, "def.mss08", false, true, List.of(lang1, lang2, lang3)));
// add a subject with two GND mappings to test for correct export
final MCRMetaClassification clazz = new MCRMetaClassification("mss45", 0, null, "MyMssSubjectMatter",
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment