From ecc6c13de8f3e2e8106e685057eb8828c60e8fd2 Mon Sep 17 00:00:00 2001 From: Peter Kiraly Date: Sat, 19 Dec 2020 12:30:56 +0100 Subject: [PATCH] issue #75: add tag UNO --- CHANGELOG.md | 7 ++- .../marc/definition/tags/bltags/TagUNO.java | 47 +++++++++++++++++++ .../definition/tags/bltags/TagUNOTest.java | 22 +++++++++ .../marc/utils/MarcTagListerTest.java | 2 +- 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNO.java create mode 100644 src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNOTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a2f6c68c..38a1ff8ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,5 +8,8 @@ 690, 692, 852$a (code list), 859, 909, 916, 917, 945, 950, 954, 955, 957, 959, 960, 961, 962, 963, 964, 966, 968, 970, 975, 976, 979, 980, 985, 990, 992, 996, 997, A02, AQN, BGT, BUF, CFI, CNF, DGM, DRT, EST, EXP, FFP, FIN, LAS, LCS, LDO, LEO, LET, - MIS, MNI, MPX, NEG, NID, OBJ, OHC, ONS, ONX, PLR, RSC, SRC, SSD, TOC - \ No newline at end of file + MIS, MNI, MPX, NEG, NID, OBJ, OHC, ONS, ONX, PLR, RSC, SRC, SSD, TOC, UNO +- new general parameters + - ignorableFields + - ignorableRecords +- set a field as DataFields of the record even if it doesn't have definition \ No newline at end of file diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNO.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNO.java new file mode 100644 index 000000000..350661ba4 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNO.java @@ -0,0 +1,47 @@ +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; + +/** + * Document Supply ETOC (Electronic Table of Contents) Flag + */ +public class TagUNO extends DataFieldDefinition { + + private static TagUNO uniqueInstance; + + private TagUNO() { + initialize(); + postCreation(); + } + + public static TagUNO getInstance() { + if (uniqueInstance == null) + uniqueInstance = new TagUNO(); + return uniqueInstance; + } + + private void initialize() { + + tag = "UNO"; + label = "Unencrypted Download ID"; + mqTag = "UnencryptedDownloadID"; + cardinality = Cardinality.Nonrepeatable; + // descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd037.html"; + // setCompilanceLevels("O"); + + ind1 = new Indicator(); + + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Code", "NR" + ); + + getSubfield("a") + .setCodes( + "Y", "Unencrypted download is allowed" + ).setMqTag("code"); + } +} diff --git a/src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNOTest.java b/src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNOTest.java new file mode 100644 index 000000000..d95321902 --- /dev/null +++ b/src/test/java/de/gwdg/metadataqa/marc/definition/tags/bltags/TagUNOTest.java @@ -0,0 +1,22 @@ +package de.gwdg.metadataqa.marc.definition.tags.bltags; + +import org.junit.Test; + +public class TagUNOTest extends BLTagTest { + + public TagUNOTest() { + super(TagUNO.getInstance()); + } + + @Test + public void testValidFields() { + validField("a", "Y"); + } + + @Test + public void testInvalidFields() { + invalidField("1", "a", "Y"); + invalidField("a", "X"); + invalidField("b", "Y"); + } +} 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 1bff2d465..e3f525885 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(396, tags.size()); + assertEquals(397, tags.size()); assertEquals("Tag010", tags.get(0).getSimpleName()); Map versionCounter = new HashMap<>(); Map versionCounter2 = new HashMap<>();