From ee8172bce7e80d4b1634ace257cfaa6b4ee9773b Mon Sep 17 00:00:00 2001 From: "Kevin S. Clarke" Date: Mon, 10 May 2021 15:55:37 -0400 Subject: [PATCH] Update IRI factory use (#104) Make it work more like our NOID factory (i.e., you must explictly supply it to a TextualBody). --- .../iiif/presentation/v3/TextualBody.java | 13 +++++++++--- .../presentation/v3/id/SkolemIriFactory.java | 2 +- .../iiif/presentation/v3/TextualBodyTest.java | 9 ++++---- .../v3/id/SkolemIriFactoryTest.java | 21 +++---------------- 4 files changed, 18 insertions(+), 27 deletions(-) diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/TextualBody.java b/src/main/java/info/freelibrary/iiif/presentation/v3/TextualBody.java index f938ca68..e2b2d2f0 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/TextualBody.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/TextualBody.java @@ -53,10 +53,17 @@ public class TextualBody implements ContentResource { * Creates a new textual body for an annotation. */ public TextualBody() { - final SkolemIriFactory factory = SkolemIriFactory.getFactory(); + // This is intentionally left empty + } - hasSerializableID = factory.createsSerializableIDs(); - myID = factory.getSkolemIRI(); + /** + * Creates a new textual body for an annotation, supplying an ID factory for ID creation. + * + * @param aFactory A SkolemIriFactory that can create IDs + */ + public TextualBody(final SkolemIriFactory aFactory) { + hasSerializableID = aFactory.createsSerializableIDs(); + myID = aFactory.getSkolemIRI(); } /** diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactory.java b/src/main/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactory.java index 3b9b1045..3b33d8db 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactory.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactory.java @@ -125,7 +125,7 @@ public boolean createsSerializableIDs() { * @param aBoolFlag True if IDs should be serialized; else, false * @return This SkolemIriFactory */ - public SkolemIriFactory useSerializableIDs(final boolean aBoolFlag) { + public SkolemIriFactory createSerializableIDs(final boolean aBoolFlag) { hasSerializableIDs = aBoolFlag; return this; } diff --git a/src/test/java/info/freelibrary/iiif/presentation/v3/TextualBodyTest.java b/src/test/java/info/freelibrary/iiif/presentation/v3/TextualBodyTest.java index 40c652d7..cd5664aa 100644 --- a/src/test/java/info/freelibrary/iiif/presentation/v3/TextualBodyTest.java +++ b/src/test/java/info/freelibrary/iiif/presentation/v3/TextualBodyTest.java @@ -23,7 +23,6 @@ public class TextualBodyTest { */ @Test public final void testTextualBody() { - SkolemIriFactory.getFactory().useSerializableIDs(false); assertEquals(null, new TextualBody().getID()); } @@ -32,8 +31,8 @@ public final void testTextualBody() { */ @Test public final void testTextualBodyNotSerializingID() { - SkolemIriFactory.getFactory().useSerializableIDs(true); - assertNotEquals(null, new TextualBody().getID()); + final SkolemIriFactory idFactory = SkolemIriFactory.getFactory().createSerializableIDs(true); + assertNotEquals(null, new TextualBody(idFactory).getID()); } /** @@ -59,7 +58,7 @@ public final void testSetIDURI() { */ @Test public final void testSerializedID() { - final TextualBody textualBody = new TextualBody().serializeID(true); + final TextualBody textualBody = new TextualBody(SkolemIriFactory.getFactory()).serializeID(true); assertNotEquals(null, textualBody.getID()); } @@ -68,7 +67,7 @@ public final void testSerializedID() { */ @Test public final void testUnserializeID() { - final TextualBody textualBody = new TextualBody().serializeID(false); + final TextualBody textualBody = new TextualBody(SkolemIriFactory.getFactory()).serializeID(false); assertEquals(null, textualBody.getID()); } diff --git a/src/test/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactoryTest.java b/src/test/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactoryTest.java index 4f9f27c7..9e73b51a 100644 --- a/src/test/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactoryTest.java +++ b/src/test/java/info/freelibrary/iiif/presentation/v3/id/SkolemIriFactoryTest.java @@ -72,12 +72,7 @@ public final void testGetSkolemIRI() { */ @Test public final void testHasSerializableIDs() { - final TextualBody textualBody; - - SkolemIriFactory.getFactory().useSerializableIDs(true); - textualBody = new TextualBody(); - - assertNotEquals(null, textualBody.getID()); + assertNotEquals(null, new TextualBody(SkolemIriFactory.getFactory().createSerializableIDs(true)).getID()); } /** @@ -85,12 +80,7 @@ public final void testHasSerializableIDs() { */ @Test public final void testHasNonSerializableIDsDefault() { - final TextualBody textualBody; - - SkolemIriFactory.getFactory().setWellKnownBase(null); - textualBody = new TextualBody(); - - assertEquals(null, textualBody.getID()); + assertEquals(null, new TextualBody(SkolemIriFactory.getFactory().setWellKnownBase(null)).getID()); } /** @@ -98,11 +88,6 @@ public final void testHasNonSerializableIDsDefault() { */ @Test public final void testHasNonSerializableIDs() { - final TextualBody textualBody; - - SkolemIriFactory.getFactory().useSerializableIDs(false); - textualBody = new TextualBody(); - - assertEquals(null, textualBody.getID()); + assertEquals(null, new TextualBody(SkolemIriFactory.getFactory().createSerializableIDs(false)).getID()); } }