diff --git a/CHANGELOG.md b/CHANGELOG.md index f750c056a..95250d34c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,4 +5,4 @@ ### Added - British Library tags: 039, 091, 509, 539, 590, 591, 592, 594, 595, 596, 597, 598, 599, - 690, 692, 852$a (code list), 859, 909, 916, 917, 945, 950, 954, 955 \ No newline at end of file + 690, 692, 852$a (code list), 859, 909, 916, 917, 945, 950, 954, 955, 957 \ No newline at end of file diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/Tag957.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/Tag957.java new file mode 100644 index 000000000..f46727a01 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/Tag957.java @@ -0,0 +1,83 @@ +package de.gwdg.metadataqa.marc.definition.tags.bltags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.Indicator; +import de.gwdg.metadataqa.marc.definition.general.validator.RegexValidator; + +/** + * Shelving Location + */ +public class Tag957 extends DataFieldDefinition { + + private static Tag957 uniqueInstance; + + private Tag957() { + initialize(); + postCreation(); + } + + public static Tag957 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag957(); + return uniqueInstance; + } + + private void initialize() { + + tag = "957"; + label = "Acquisitions Data"; + mqTag = "acquisitions"; + cardinality = Cardinality.Repeatable; + // descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd037.html"; + // setCompilanceLevels("O"); + obsolete = true; + + ind1 = new Indicator(); + + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Receipt date and method of acquisition code or Cataloguer initials", "R", + "b", "Receipt date or Name of supplier (Asia, Pacific & Africa Collections)", "R", + "c", "Method of acquisition code", "R", + "d", "Cataloguer initials - reviser", "R", + "r", "Receipt date", "NR", + "s", "British Museum stamp number", "R", + "t", "Legal Deposit Office batch number", "NR" + ); + + getSubfield("a") + .setValidator(new RegexValidator("^((\\d{4}|\\d{6}|\\d{8})?(c|CR|d|w|p)?|[A-Z]+)$")) + .setMqTag("acquisition"); + getSubfield("b").setMqTag("supplier"); + getSubfield("c").setMqTag("method"); + getSubfield("d").setMqTag("cataloguer"); + getSubfield("r").setMqTag("receiptDate"); + + getSubfield("s") + .setCodes( + "1", "ca.1750-1834", + "2", "ca.1830s", + "3", "ca.1811-1834", + "4", "1826-1835", + "5", "Special collections: Clayton Mordaunt, Cracherode", + "6", "Special collections: Frances Hargrave", + "7", "1837-1850", + "8", "1850-1870", + "9", "1870-1912 (copyright), 1870-1923 (donation), 1870-1925 (purchased)", + "10", "1912-1929 (copyright), 1923-1929 (donation), 1925-1929 (purchased)", + "11", "1912-1929 (copyright), 1923-1929 (donation), 1925-1929 (purchased)", + "12", "1929-1972", + "13", "Special collections: The Grenville Library", + "14a", "George III Kings Library", + "14", "Ashley Library", + "14b", "Ashley Library", + "15", "1973-", + "16", "1973-" + ) + .setMqTag("stampNumber"); + + getSubfield("t").setMqTag("batch"); + } +} diff --git a/src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/Tag957Test.java b/src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/Tag957Test.java new file mode 100644 index 000000000..403761340 --- /dev/null +++ b/src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/Tag957Test.java @@ -0,0 +1,23 @@ +package de.gwdg.metadataqa.marc.definition.tags.bltags; + +import org.junit.Test; + +public class Tag957Test extends BLTagTest { + + public Tag957Test() { + super(Tag957.getInstance()); + } + + @Test + public void testValidFields() { + validField("a", "800730p"); + validField("s", "15"); + } + + @Test + public void testInvalidFields() { + invalidField("2", "a", "Priority processing"); + invalidField("s", "17"); + invalidField("e", "Priority processing"); + } +} diff --git a/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java b/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java index a29bc9989..ea01090d7 100644 --- a/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java +++ b/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java @@ -21,7 +21,7 @@ public void testListTag() { List> tags = MarcTagLister.listTags(); assertNotNull(tags); assertNotEquals(0, tags.size()); - assertEquals(346, tags.size()); + assertEquals(347, tags.size()); assertEquals("Tag010", tags.get(0).getSimpleName()); Map versionCounter = new HashMap<>(); Map versionCounter2 = new HashMap<>();