From 45e1447f6f76e03df2bcd8718d4f6c69bba27043 Mon Sep 17 00:00:00 2001 From: "Kevin S. Clarke" Date: Tue, 18 Jun 2024 01:03:27 -0400 Subject: [PATCH] Update with Sonar suggestions --- .github/workflows/build.yml | 3 +- .../iiif/presentation/v3/AbstractCanvas.java | 14 +++---- .../v3/AbstractCanvasAnnotation.java | 41 +++++++++---------- .../presentation/v3/AbstractResource.java | 2 +- .../presentation/v3/AnnotationCollection.java | 2 +- .../iiif/presentation/v3/AnnotationPage.java | 2 +- .../iiif/presentation/v3/CanvasContent.java | 2 +- .../iiif/presentation/v3/CanvasResource.java | 3 +- .../iiif/presentation/v3/Collection.java | 2 +- .../iiif/presentation/v3/DatasetContent.java | 2 +- .../iiif/presentation/v3/ImageContent.java | 2 +- .../iiif/presentation/v3/Manifest.java | 2 +- .../iiif/presentation/v3/ModelContent.java | 2 +- .../iiif/presentation/v3/Range.java | 2 +- .../iiif/presentation/v3/SoundContent.java | 2 +- .../v3/SupplementingAnnotation.java | 11 ----- .../iiif/presentation/v3/TextContent.java | 2 +- .../iiif/presentation/v3/VideoContent.java | 5 ++- .../v3/properties/AbstractLinkProperty.java | 2 +- 19 files changed, 43 insertions(+), 60 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f9cb5b0..95771289 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,4 +45,5 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | - mvn -B -ntp -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error -Psonar verify + mvn -B -ntp -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error + -Psonar verify javadocs:javadocs diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvas.java b/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvas.java index 850a9851..7acac938 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvas.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvas.java @@ -402,9 +402,10 @@ protected AbstractCanvas setBehaviors(final Behavior... aBehaviorArray) { */ @Override @JsonSetter(JsonKeys.BEHAVIOR) + @SuppressWarnings({ PMD.LOOSE_COUPLING }) protected AbstractCanvas setBehaviors(final List aBehaviorList) { - if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(CanvasBehavior.class, this.getClass()); + if (aBehaviorList instanceof final BehaviorList behaviorList) { + behaviorList.checkType(CanvasBehavior.class, getClass()); } return (AbstractCanvas) super.setBehaviors(aBehaviorList); @@ -659,13 +660,8 @@ private boolean canFrame(final ContentResource aContent, final MediaFragmentS private List> getAnnotations() { final List> annotations = new ArrayList<>(); - getSupplementingPages().forEach(page -> { - annotations.add(page); - }); - - getOtherAnnotations().forEach(page -> { - annotations.add(page); - }); + getSupplementingPages().forEach(annotations::add); + getOtherAnnotations().forEach(annotations::add); return annotations; } diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvasAnnotation.java b/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvasAnnotation.java index 335860b1..5f0828dd 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvasAnnotation.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractCanvasAnnotation.java @@ -120,6 +120,20 @@ protected > AbstractCanvasAnnotation(final String aI this(aID, aCanvas, new MediaFragmentSelector(aCanvasRegion)); } + /** + * Gets the content resources associated with this annotation. + * + * @return The content resources associated with this annotation + */ + @JsonIgnore + public List> getBody() { + if (myResources == null) { + myResources = new ArrayList<>(); + } + + return myResources; + } + /** * Sets the annotation resource's behaviors. The supplied behaviors are checked for compatibility with the resource. * @@ -139,9 +153,10 @@ public AbstractCanvasAnnotation setBehaviors(final Behavior... aBehaviorArray */ @Override @JsonSetter(JsonKeys.BEHAVIOR) + @SuppressWarnings({ PMD.LOOSE_COUPLING }) public AbstractCanvasAnnotation setBehaviors(final List aBehaviorList) { - if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + if (aBehaviorList instanceof final BehaviorList behaviorList) { + behaviorList.checkType(ResourceBehavior.class, getClass()); } return (AbstractCanvasAnnotation) super.setBehaviors(aBehaviorList); @@ -156,20 +171,6 @@ protected boolean bodyHasChoice() { return myBodyHasChoice; } - /** - * Gets the content resources associated with this annotation. - * - * @return The content resources associated with this annotation - */ - @JsonIgnore - protected List> getBody() { - if (myResources == null) { - myResources = new ArrayList<>(); - } - - return myResources; - } - /** * Gets the annotation's motivation. * @@ -320,9 +321,7 @@ private void deserializeContentMap(final Map aMap) { */ private void deserializeListBody(final List aListBody) { if (!aListBody.isEmpty() && aListBody.get(0) instanceof Map) { - aListBody.forEach(mapObject -> { - deserializeContentMap((Map) mapObject); - }); + aListBody.forEach(mapObject -> deserializeContentMap((Map) mapObject)); } } @@ -340,9 +339,7 @@ private void deserializeMapBody(final Map aMapBody) { setChoice(true); if (!items.isEmpty() && items.get(0) instanceof Map) { - items.forEach(mapObject -> { - deserializeContentMap((Map) mapObject); - }); + items.forEach(mapObject -> deserializeContentMap((Map) mapObject)); } } else { deserializeContentMap(aMapBody); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractResource.java b/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractResource.java index 7ce76333..bb07c3fd 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractResource.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/AbstractResource.java @@ -339,7 +339,7 @@ public String getType() { @Override public String toString() { try { - return JSON.getWriter(this.getClass()).writeValueAsString(this); + return JSON.getWriter(getClass()).writeValueAsString(this); } catch (final JsonProcessingException details) { throw new I18nRuntimeException(details); } diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationCollection.java b/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationCollection.java index 578fd9b4..421223d2 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationCollection.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationCollection.java @@ -90,7 +90,7 @@ public AnnotationCollection setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public AnnotationCollection setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (AnnotationCollection) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationPage.java b/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationPage.java index f3291a56..0c878a1e 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationPage.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/AnnotationPage.java @@ -197,7 +197,7 @@ public AnnotationPage setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public AnnotationPage setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (AnnotationPage) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasContent.java index 4b02ab30..afda7b7a 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasContent.java @@ -59,7 +59,7 @@ public CanvasContent setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public CanvasContent setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (CanvasContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasResource.java b/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasResource.java index 1d220e3a..1a57b9a5 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasResource.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/CanvasResource.java @@ -136,8 +136,7 @@ public interface CanvasResource> extends Resource T paintWith(boolean aChoice, List> aContentList); /** - * Paints content resources onto a {@link Minter} initialized canvas using a {@link PaintingAnnotation}. If the - * minter does not exist, a {@link MinterException} is thrown. + * Paints content resources onto a {@link Minter} initialized canvas using a {@link PaintingAnnotation}. *

* Calling this method with a single {@link ContentResource} associates that resource with the canvas using an * annotation with a single body. diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/Collection.java b/src/main/java/info/freelibrary/iiif/presentation/v3/Collection.java index a0f95e6e..db35eefd 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/Collection.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/Collection.java @@ -227,7 +227,7 @@ public Collection setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public Collection setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(CollectionBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(CollectionBehavior.class, getClass()); } return (Collection) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/DatasetContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/DatasetContent.java index 1200afce..7280789a 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/DatasetContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/DatasetContent.java @@ -80,7 +80,7 @@ public DatasetContent setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public DatasetContent setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (DatasetContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/ImageContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/ImageContent.java index 8ff23aed..f9df9c62 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/ImageContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/ImageContent.java @@ -129,7 +129,7 @@ public ImageContent setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public ImageContent setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (ImageContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/Manifest.java b/src/main/java/info/freelibrary/iiif/presentation/v3/Manifest.java index f619a1d7..7f08de5d 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/Manifest.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/Manifest.java @@ -361,7 +361,7 @@ public Manifest setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public Manifest setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ManifestBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ManifestBehavior.class, getClass()); } return (Manifest) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/ModelContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/ModelContent.java index 0bad7d73..9c2657dd 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/ModelContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/ModelContent.java @@ -80,7 +80,7 @@ public ModelContent setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public ModelContent setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (ModelContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/Range.java b/src/main/java/info/freelibrary/iiif/presentation/v3/Range.java index 04597af4..5f82f986 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/Range.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/Range.java @@ -221,7 +221,7 @@ public Range setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public Range setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(RangeBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(RangeBehavior.class, getClass()); } return (Range) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/SoundContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/SoundContent.java index 2242fed1..0e90b710 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/SoundContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/SoundContent.java @@ -103,7 +103,7 @@ public SoundContent setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public SoundContent setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (SoundContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/SupplementingAnnotation.java b/src/main/java/info/freelibrary/iiif/presentation/v3/SupplementingAnnotation.java index e3bf66ec..5f5b738d 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/SupplementingAnnotation.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/SupplementingAnnotation.java @@ -168,17 +168,6 @@ public List getBehaviors() { return super.getBehaviors(); } - /** - * Gets the resources associated with this annotation. - * - * @return The resources associated with this annotation - */ - @Override - @JsonIgnore - public List> getBody() { - return super.getBody(); - } - /** * Gets a list of resource homepages. * diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/TextContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/TextContent.java index 6f8b59f6..e5222239 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/TextContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/TextContent.java @@ -86,7 +86,7 @@ public TextContent setBehaviors(final Behavior... aBehaviorArray) { @JsonSetter(JsonKeys.BEHAVIOR) public TextContent setBehaviors(final List aBehaviorList) { if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, getClass()); } return (TextContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/VideoContent.java b/src/main/java/info/freelibrary/iiif/presentation/v3/VideoContent.java index 526498a4..cae0fa17 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/VideoContent.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/VideoContent.java @@ -131,9 +131,10 @@ public VideoContent setBehaviors(final Behavior... aBehaviorArray) { @Override @JsonSetter(JsonKeys.BEHAVIOR) + @SuppressWarnings({ PMD.LOOSE_COUPLING }) public VideoContent setBehaviors(final List aBehaviorList) { - if (aBehaviorList instanceof BehaviorList) { - ((BehaviorList) aBehaviorList).checkType(ResourceBehavior.class, this.getClass()); + if (aBehaviorList instanceof final BehaviorList behaviorList) { + behaviorList.checkType(ResourceBehavior.class, getClass()); } return (VideoContent) super.setBehaviors(aBehaviorList); diff --git a/src/main/java/info/freelibrary/iiif/presentation/v3/properties/AbstractLinkProperty.java b/src/main/java/info/freelibrary/iiif/presentation/v3/properties/AbstractLinkProperty.java index 20c276cf..2e9f21de 100644 --- a/src/main/java/info/freelibrary/iiif/presentation/v3/properties/AbstractLinkProperty.java +++ b/src/main/java/info/freelibrary/iiif/presentation/v3/properties/AbstractLinkProperty.java @@ -188,7 +188,7 @@ public int hashCode() { @Override public String toString() { try { - return JSON.getWriter(this.getClass()).writeValueAsString(this); + return JSON.getWriter(getClass()).writeValueAsString(this); } catch (final JsonProcessingException details) { throw new JsonParsingException(details); }