From cf54bb3043d0f50e3989ab232b2c6c83297eb5a4 Mon Sep 17 00:00:00 2001 From: Andrei Solntsev Date: Tue, 12 Nov 2024 21:06:08 +0200 Subject: [PATCH] #442 annotate all methods in package `org.xhtmlrenderer.extend` with @CheckReturnValue --- .../org/xhtmlrenderer/extend/FontResolver.java | 2 -- .../xhtmlrenderer/extend/NamespaceHandler.java | 17 ----------------- .../org/xhtmlrenderer/extend/OutputDevice.java | 2 -- .../extend/ReplacedElementFactory.java | 2 -- .../org/xhtmlrenderer/extend/TextRenderer.java | 2 -- .../xhtmlrenderer/extend/UserAgentCallback.java | 7 ------- .../org/xhtmlrenderer/extend/package-info.java | 2 ++ .../org/xhtmlrenderer/swing/AWTFSImage.java | 5 +++++ .../swing/ImageResourceLoader.java | 9 +++++---- .../org/xhtmlrenderer/swing/MutableFSImage.java | 4 ++++ .../org/xhtmlrenderer/pdf/ITextFSImage.java | 4 ++++ .../java/org/xhtmlrenderer/pdf/PDFAsImage.java | 4 ++++ .../java/org/xhtmlrenderer/swt/SWTFSImage.java | 4 ++++ .../org/xhtmlrenderer/swt/SWTOutputDevice.java | 5 ++++- .../xhtmlrenderer/swt/simple/package-info.java | 2 ++ 15 files changed, 34 insertions(+), 37 deletions(-) diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/FontResolver.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/FontResolver.java index 8807cabd4..0cd0025ea 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/FontResolver.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/FontResolver.java @@ -20,7 +20,6 @@ */ package org.xhtmlrenderer.extend; -import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.css.value.FontSpecification; import org.xhtmlrenderer.layout.SharedContext; @@ -28,7 +27,6 @@ public interface FontResolver { @Nullable - @CheckReturnValue FSFont resolveFont(SharedContext renderingContext, FontSpecification spec); void flushCache(); } diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/NamespaceHandler.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/NamespaceHandler.java index ff16901e6..7a70e17d3 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/NamespaceHandler.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/NamespaceHandler.java @@ -19,7 +19,6 @@ */ package org.xhtmlrenderer.extend; -import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.Nullable; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -36,70 +35,56 @@ */ public interface NamespaceHandler { - @CheckReturnValue String getNamespace(); - @CheckReturnValue Optional getDefaultStylesheet(); @Nullable - @CheckReturnValue String getDocumentTitle(Document doc); /** * @param doc the document * @return all links to CSS stylesheets (type="text/css") in this document */ - @CheckReturnValue List getStylesheets(Document doc); /** * may return null. Required to return null if attribute does not exist and * not null if attribute exists. */ - @CheckReturnValue String getAttributeValue(Element e, String attrName); - @CheckReturnValue String getAttributeValue(Element e, @Nullable String namespaceURI, String attrName); @Nullable - @CheckReturnValue String getClass(Element e); @Nullable - @CheckReturnValue String getID(Element e); @Nullable - @CheckReturnValue String getElementStyling(Element e); /** * @return The corresponding css properties for styling that is obtained in other ways. */ @Nullable - @CheckReturnValue String getNonCssStyling(Element e); - @CheckReturnValue String getLang(Element e); /** * should return null if element is not a link */ @Nullable - @CheckReturnValue String getLinkUri(Element e); @Nullable - @CheckReturnValue String getAnchorName(@Nullable Element e); /** * @return Returns true if the Element represents an image. */ - @CheckReturnValue boolean isImageElement(Element e); /** @@ -109,7 +94,6 @@ public interface NamespaceHandler { * @param e The Element to evaluate. * @return true if the Element is a <form> element, false otherwise. */ - @CheckReturnValue boolean isFormElement(Element e); /** @@ -123,7 +107,6 @@ public interface NamespaceHandler { * @return String containing the URI for the image. */ @Nullable - @CheckReturnValue String getImageSourceURI(Element e); } diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/OutputDevice.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/OutputDevice.java index 49c8ee938..9122fc648 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/OutputDevice.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/OutputDevice.java @@ -19,7 +19,6 @@ */ package org.xhtmlrenderer.extend; -import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.css.parser.FSColor; import org.xhtmlrenderer.css.style.CalculatedStyle; @@ -86,7 +85,6 @@ void paintBackground( Stroke getStroke(); @Nullable - @CheckReturnValue Object getRenderingHint(RenderingHints.Key key); void setRenderingHint(RenderingHints.Key key, Object value); diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/ReplacedElementFactory.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/ReplacedElementFactory.java index 151711115..87718312b 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/ReplacedElementFactory.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/ReplacedElementFactory.java @@ -19,7 +19,6 @@ */ package org.xhtmlrenderer.extend; -import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.Nullable; import org.w3c.dom.Element; import org.xhtmlrenderer.layout.LayoutContext; @@ -39,7 +38,6 @@ public interface ReplacedElementFactory { * {@code ReplacedElement} applies */ @Nullable - @CheckReturnValue ReplacedElement createReplacedElement( LayoutContext c, BlockBox box, UserAgentCallback uac, int cssWidth, int cssHeight); diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/TextRenderer.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/TextRenderer.java index d4408588b..52ee626de 100755 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/TextRenderer.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/TextRenderer.java @@ -20,7 +20,6 @@ */ package org.xhtmlrenderer.extend; -import com.google.errorprone.annotations.CheckReturnValue; import org.xhtmlrenderer.render.FSFont; import org.xhtmlrenderer.render.FSFontMetrics; import org.xhtmlrenderer.render.JustificationInfo; @@ -41,7 +40,6 @@ void drawString( float[] getGlyphPositions(OutputDevice outputDevice, FSFont font, FSGlyphVector fsGlyphVector); Rectangle getGlyphBounds(OutputDevice outputDevice, FSFont font, FSGlyphVector fsGlyphVector, int index, float x, float y); - @CheckReturnValue FSFontMetrics getFSFontMetrics( FontContext context, FSFont font, String string); diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/UserAgentCallback.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/UserAgentCallback.java index 9c1964c5f..b945bee95 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/UserAgentCallback.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/UserAgentCallback.java @@ -19,7 +19,6 @@ */ package org.xhtmlrenderer.extend; -import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.resource.CSSResource; import org.xhtmlrenderer.resource.ImageResource; @@ -63,7 +62,6 @@ public interface UserAgentCallback { * @param uri Location of the image * @return An ImageResource for the content at the URI. */ - @CheckReturnValue ImageResource getImageResource(String uri); /** @@ -72,7 +70,6 @@ public interface UserAgentCallback { * @param uri Location of the XML * @return A XMLResource for the content at the URI. */ - @CheckReturnValue @Nullable XMLResource getXMLResource(String uri); @@ -80,7 +77,6 @@ public interface UserAgentCallback { * Retrieves a binary resource located at a given URI and returns its contents * as a byte array or {@code null} if the resource could not be loaded. */ - @CheckReturnValue byte @Nullable [] getBinaryResource(String uri); /** @@ -90,7 +86,6 @@ public interface UserAgentCallback { * @param uri A URI which may have been visited by this user agent. * @return The visited value */ - @CheckReturnValue boolean isVisited(@Nullable String uri); /** @@ -104,7 +99,6 @@ public interface UserAgentCallback { /** * @return the base uri, possibly in the implementations private uri-space */ - @CheckReturnValue @Nullable String getBaseURL(); @@ -117,7 +111,6 @@ public interface UserAgentCallback { * @return the full uri in uri-spaces known to the current implementation. */ @Nullable - @CheckReturnValue String resolveURI(@Nullable String uri); } diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/package-info.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/package-info.java index 34451eede..a0ed541bc 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/package-info.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/extend/package-info.java @@ -1,4 +1,6 @@ @NullMarked +@CheckReturnValue package org.xhtmlrenderer.extend; +import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.NullMarked; \ No newline at end of file diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/AWTFSImage.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/AWTFSImage.java index 39a64a920..c91bd1e5e 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/AWTFSImage.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/AWTFSImage.java @@ -21,6 +21,7 @@ package org.xhtmlrenderer.swing; import com.google.errorprone.annotations.CheckReturnValue; +import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.extend.FSImage; import org.xhtmlrenderer.util.ImageUtil; @@ -70,6 +71,8 @@ public BufferedImage getImage() { return img; } + @NonNull + @CheckReturnValue @Override public FSImage scale(int width, int height) { if (width > 0 || height > 0) { @@ -107,6 +110,8 @@ public int getHeight() { return 0; } + @NonNull + @CheckReturnValue @Override public FSImage scale(int width, int height) { return this; diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/ImageResourceLoader.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/ImageResourceLoader.java index ac7fa7be4..a5adc627e 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/ImageResourceLoader.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/ImageResourceLoader.java @@ -1,5 +1,6 @@ package org.xhtmlrenderer.swing; +import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.extend.FSImage; import org.xhtmlrenderer.resource.ImageResource; @@ -109,17 +110,17 @@ public synchronized void clear() { _imageCache.clear(); } + @CheckReturnValue public ImageResource get(final String uri) { return get(uri, -1, -1); } + @CheckReturnValue public synchronized ImageResource get(final String uri, final int width, final int height) { if (isEmbeddedBase64Image(uri)) { ImageResource resource = loadEmbeddedBase64ImageResource(uri); - FSImage scaledImage = resource.getImage(); - if (scaledImage != null) { - scaledImage = scaledImage.scale(width, height); - } + FSImage image = resource.getImage(); + FSImage scaledImage = image == null ? null : image.scale(width, height); return new ImageResource(resource.getImageUri(), scaledImage); } else { CacheKey key = new CacheKey(uri, width, height); diff --git a/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/MutableFSImage.java b/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/MutableFSImage.java index 5c00617a9..5d2f46b07 100644 --- a/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/MutableFSImage.java +++ b/flying-saucer-core/src/main/java/org/xhtmlrenderer/swing/MutableFSImage.java @@ -19,6 +19,8 @@ */ package org.xhtmlrenderer.swing; +import com.google.errorprone.annotations.CheckReturnValue; +import org.jspecify.annotations.NonNull; import org.xhtmlrenderer.extend.FSImage; import org.xhtmlrenderer.util.ImageUtil; import org.xhtmlrenderer.util.XRLog; @@ -59,6 +61,8 @@ public synchronized int getHeight() { return img.getHeight(null); } + @NonNull + @CheckReturnValue @Override public synchronized FSImage scale(int width, int height) { img.getScaledInstance(width, height, Image.SCALE_DEFAULT); diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFSImage.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFSImage.java index ce74d584c..8d9a47e0b 100644 --- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFSImage.java +++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFSImage.java @@ -19,7 +19,9 @@ */ package org.xhtmlrenderer.pdf; +import com.google.errorprone.annotations.CheckReturnValue; import com.lowagie.text.Image; +import org.jspecify.annotations.NonNull; import org.xhtmlrenderer.extend.FSImage; public class ITextFSImage implements FSImage, Cloneable { @@ -39,6 +41,8 @@ public int getHeight() { return (int)_image.getPlainHeight(); } + @NonNull + @CheckReturnValue @Override public FSImage scale(int width, int height) { if (width > 0 || height > 0) { diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/PDFAsImage.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/PDFAsImage.java index 3b859d86b..0c49459f9 100644 --- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/PDFAsImage.java +++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/PDFAsImage.java @@ -19,6 +19,8 @@ */ package org.xhtmlrenderer.pdf; +import com.google.errorprone.annotations.CheckReturnValue; +import org.jspecify.annotations.NonNull; import org.xhtmlrenderer.extend.FSImage; import java.net.URI; @@ -57,6 +59,8 @@ public int getHeight() { return (int)_height; } + @NonNull + @CheckReturnValue @Override public FSImage scale(int width, int height) { float targetWidth = width; diff --git a/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTFSImage.java b/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTFSImage.java index 4f599b283..3df7fe52a 100644 --- a/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTFSImage.java +++ b/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTFSImage.java @@ -19,8 +19,10 @@ */ package org.xhtmlrenderer.swt; +import com.google.errorprone.annotations.CheckReturnValue; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Rectangle; +import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.extend.FSImage; import org.xhtmlrenderer.extend.UserAgentCallback; @@ -110,6 +112,8 @@ public void setWidth(int width) { _width = width; } + @NonNull + @CheckReturnValue @Override public FSImage scale(int width, int height) { if (width < 0 && height < 0) { diff --git a/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTOutputDevice.java b/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTOutputDevice.java index 79fe6d98b..c02ab3561 100644 --- a/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTOutputDevice.java +++ b/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/SWTOutputDevice.java @@ -27,6 +27,8 @@ import org.eclipse.swt.graphics.Path; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.graphics.Transform; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.NullUnmarked; import org.jspecify.annotations.Nullable; import org.xhtmlrenderer.css.parser.FSColor; @@ -340,7 +342,7 @@ public void translate(double tx, double ty) { @Nullable @CheckReturnValue @Override - public Object getRenderingHint(RenderingHints.Key key) { + public Object getRenderingHint(RenderingHints.@NonNull Key key) { if (RenderingHints.KEY_ANTIALIASING.equals(key)) { switch (_gc.getAntialias()) { case SWT.DEFAULT: @@ -354,6 +356,7 @@ public Object getRenderingHint(RenderingHints.Key key) { return null; } + @NullMarked @Override public void setRenderingHint(RenderingHints.Key key, Object value) { if (RenderingHints.KEY_ANTIALIASING.equals(key)) { diff --git a/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/simple/package-info.java b/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/simple/package-info.java index ee0fbfc64..3f00fa085 100644 --- a/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/simple/package-info.java +++ b/flying-saucer-swt/src/main/java/org/xhtmlrenderer/swt/simple/package-info.java @@ -1,4 +1,6 @@ @NullMarked +@CheckReturnValue package org.xhtmlrenderer.swt.simple; +import com.google.errorprone.annotations.CheckReturnValue; import org.jspecify.annotations.NullMarked; \ No newline at end of file