Skip to content

Commit

Permalink
Update KBR custom schema #404: add 997
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Jan 16, 2024
1 parent 2a35c42 commit 41c9b1e
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public boolean validate(BibliographicRecord bibliographicRecord) {
return validationErrors.isEmpty();
}

logger.info("Validating record " + bibliographicRecord.getId());
// logger.info("Validating record " + bibliographicRecord.getId());
if (!bibliographicRecord.getSchemaType().equals(SchemaType.PICA)) {
validateLeader();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public enum TagCategory {
BL(20, "bltags", "BL", "Locally defined tags of the British Library", false),
UVA(21, "uvatags", "UvA", "Locally defined tags of University of Amsterdam", false),
B3KAT(22, "b3kattags", "B3Kat", "Locally defined tags of a German union cataogue B3Kat", false),
KBR(23, "kbrtags", "KBR", "Locally defined tags of the Royal Library of Belgium", false),
PICA_0(50, "pica0", "0...", "PICA+ bibliographic description", false),
PICA_1(51, "pica1", "1...", "PICA+ holding", false),
PICA_2(52, "pica2", "2...", "PICA+ item", false),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package de.gwdg.metadataqa.marc.definition.tags.kbrtags;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.structure.Indicator;

/**
* Item information
*/
public class Tag997 extends DataFieldDefinition {

private static Tag997 uniqueInstance;

private Tag997() {
initialize();
postCreation();
}

public static Tag997 getInstance() {
if (uniqueInstance == null)
uniqueInstance = new Tag997();
return uniqueInstance;
}

private void initialize() {

tag = "997";
label = "Item information";
mqTag = "ItemInformation";
cardinality = Cardinality.Repeatable;
// descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd037.html";
// setCompilanceLevels("O");

ind1 = new Indicator();
ind2 = new Indicator();

setSubfieldsWithCardinality(
"*", "Link with identifier", "NR", // (number)
"a", "Barcode number", "NR", // (number)
"c", "Library (holding institution)", "NR", // (text, mostly 'KBR')
"d", "Section (department of holding institution)", "NR", // (text, like 'M-MAN' for (manuscripts))
"g", "Call Number", "NR", // (text)
"h", "Rating2", "NR", // (text)
"i", "Rating3", "NR", // (text)
"t", "Document type", "NR" // (text)
);

getSubfield("*").setMqTag("link");
getSubfield("a").setMqTag("barcode");
getSubfield("c").setMqTag("library");
getSubfield("d").setMqTag("section");
getSubfield("g").setMqTag("callNumber");
getSubfield("h").setMqTag("rating2");
getSubfield("i").setMqTag("rating3");
getSubfield("t").setMqTag("documentType");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ public void testStatistics() {
assertEquals( 229, statistics.get(DataElementType.coreFields));
assertEquals( 184, statistics.get(DataElementType.coreIndicators));
assertEquals(2667, statistics.get(DataElementType.coreSubfields));
assertEquals( 214, statistics.get(DataElementType.localFields));
assertEquals( 215, statistics.get(DataElementType.localFields));
assertEquals( 28, statistics.get(DataElementType.localIndicators));
assertEquals(1743, statistics.get(DataElementType.localSubfields));
assertEquals(5283, statistics.total());
assertEquals(1751, statistics.get(DataElementType.localSubfields));
assertEquals(5292, statistics.total());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public void testListTag() {
List<Class<? extends DataFieldDefinition>> tags = MarcTagLister.listTags();
assertNotNull(tags);
assertNotEquals(0, tags.size());
assertEquals(443, tags.size());
assertEquals(444, 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 41c9b1e

Please sign in to comment.