Skip to content

Commit

Permalink
issue #75: add tag 957
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Dec 8, 2020
1 parent 8aed463 commit ec293f2
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 2 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
690, 692, 852$a (code list), 859, 909, 916, 917, 945, 950, 954, 955, 957
Original file line number Diff line number Diff line change
@@ -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");
}
}
Original file line number Diff line number Diff line change
@@ -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");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public void testListTag() {
List<Class<? extends DataFieldDefinition>> tags = MarcTagLister.listTags();
assertNotNull(tags);
assertNotEquals(0, tags.size());
assertEquals(346, tags.size());
assertEquals(347, tags.size());
assertEquals("Tag010", tags.get(0).getSimpleName());
Map<String, Integer> versionCounter = new HashMap<>();
Map<MarcVersion, Integer> versionCounter2 = new HashMap<>();
Expand Down

0 comments on commit ec293f2

Please sign in to comment.