From 7ce48f5e337e82f36298b68033f92bdc0af704c9 Mon Sep 17 00:00:00 2001
From: Andrei Solntsev <andrei.solntsev@gmail.com>
Date: Tue, 12 Nov 2024 21:20:28 +0200
Subject: [PATCH] #442 annotate all methods in package `org.xhtmlrenderer.pdf`
 with @CheckReturnValue

---
 .../main/java/org/xhtmlrenderer/pdf/DOMUtil.java  |  4 ----
 .../java/org/xhtmlrenderer/pdf/ITextFSImage.java  |  2 --
 .../org/xhtmlrenderer/pdf/ITextFontResolver.java  |  8 --------
 .../org/xhtmlrenderer/pdf/ITextOutputDevice.java  |  7 -------
 .../java/org/xhtmlrenderer/pdf/ITextRenderer.java | 15 +--------------
 .../pdf/ITextReplacedElementFactory.java          |  3 ---
 .../org/xhtmlrenderer/pdf/ITextTextRenderer.java  |  2 --
 .../org/xhtmlrenderer/pdf/ITextUserAgent.java     |  3 ---
 .../java/org/xhtmlrenderer/pdf/PDFAsImage.java    |  2 --
 .../java/org/xhtmlrenderer/pdf/TextFormField.java |  2 --
 .../java/org/xhtmlrenderer/pdf/TrueTypeUtil.java  |  9 ---------
 .../java/org/xhtmlrenderer/pdf/package-info.java  |  2 ++
 .../org/xhtmlrenderer/pdf/util/package-info.java  |  6 ++++++
 13 files changed, 9 insertions(+), 56 deletions(-)
 create mode 100644 flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/util/package-info.java

diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/DOMUtil.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/DOMUtil.java
index 8bf97d6a7..74ad72e4b 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/DOMUtil.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/DOMUtil.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import org.jspecify.annotations.Nullable;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -30,7 +29,6 @@
 
 public class DOMUtil {
     @Nullable
-    @CheckReturnValue
     public static Element getChild(Element parent, String name) {
         NodeList children = parent.getChildNodes();
         for (int i = 0; i < children.getLength(); i++) {
@@ -45,7 +43,6 @@ public static Element getChild(Element parent, String name) {
         return null;
     }
 
-    @CheckReturnValue
     public static List<Element> getChildren(Element parent, String name) {
         NodeList children = parent.getChildNodes();
         List<Element> result = new ArrayList<>(children.getLength());
@@ -67,7 +64,6 @@ public static List<Element> getChildren(Element parent, String name) {
      *
      * @return a String with the text content of an element (maybe an empty string but will not be null).
      */
-    @CheckReturnValue
     public static String getText(Element parent) {
         StringBuilder sb = new StringBuilder();
         getText(parent, sb);
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 8d9a47e0b..e94e708a1 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,6 @@
  */
 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;
@@ -42,7 +41,6 @@ public int getHeight() {
     }
 
     @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/ITextFontResolver.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFontResolver.java
index 3a927e05a..d81910e2f 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFontResolver.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextFontResolver.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.DocumentException;
 import com.lowagie.text.pdf.BaseFont;
 import org.jspecify.annotations.Nullable;
@@ -110,7 +109,6 @@ public static Set<String> getDistinctFontFamilyNames(String path, String encodin
     }
 
     @Nullable
-    @CheckReturnValue
     @Override
     public FSFont resolveFont(SharedContext renderingContext, FontSpecification spec) {
         return resolveFont(spec.families, spec.size, spec.fontWeight, spec.fontStyle);
@@ -205,7 +203,6 @@ public void addFontDirectory(String dir, String encoding, boolean embedded) thro
         }
     }
 
-    @CheckReturnValue
     private File[] filesWithExtensions(File f, String... extensions) {
         return requireNonNull(f.listFiles((d, name) -> {
             String lower = name.toLowerCase(ROOT);
@@ -273,7 +270,6 @@ public void addFont(BaseFont font, String path, @Nullable String fontFamilyNameO
         }
     }
 
-    @CheckReturnValue
     private static Collection<String> getFontFamilyNames(BaseFont font, @Nullable String fontFamilyNameOverride) {
         if (fontFamilyNameOverride != null) {
             return singletonList(fontFamilyNameOverride);
@@ -333,18 +329,15 @@ private void addFontFaceFont(@Nullable String fontFamilyNameOverride, @Nullable
         }
     }
 
-    @CheckReturnValue
     private static FontDescription fontDescription(@Nullable IdentValue fontWeightOverride, @Nullable IdentValue fontStyleOverride,
                                                    String uri, byte[] ttfAfm, BaseFont font) {
         return extractDescription(uri, ttfAfm, font, true, fontWeightOverride, fontStyleOverride);
     }
 
-    @CheckReturnValue
     private byte[] readFile(String path) throws IOException {
         return IOUtil.readBytes(Paths.get(path));
     }
 
-    @CheckReturnValue
     private FontFamily getFontFamily(String fontFamilyName) {
         FontFamily fontFamily = getFonts().get(fontFamilyName);
         if (fontFamily == null) {
@@ -355,7 +348,6 @@ private FontFamily getFontFamily(String fontFamilyName) {
     }
 
     @Nullable
-    @CheckReturnValue
     private FSFont resolveFont(String @Nullable [] families, float size, IdentValue weight, IdentValue style) {
         if (!(style == IdentValue.NORMAL || style == IdentValue.OBLIQUE
                 || style == IdentValue.ITALIC)) {
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextOutputDevice.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextOutputDevice.java
index c555c5e04..1f52236e3 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextOutputDevice.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextOutputDevice.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.DocumentException;
 import com.lowagie.text.Image;
 import com.lowagie.text.pdf.CMYKColor;
@@ -254,7 +253,6 @@ private String createRectKey(com.lowagie.text.Rectangle rect) {
         return rect.getLeft() + ":" + rect.getBottom() + ":" + rect.getRight() + ":" + rect.getTop();
     }
 
-    @CheckReturnValue
     private Optional<com.lowagie.text.Rectangle> checkLinkArea(RenderingContext c, Box box) {
         com.lowagie.text.Rectangle targetArea = calcTotalLinkArea(c, box);
         String key = createRectKey(targetArea);
@@ -363,7 +361,6 @@ public float getDeviceLength(float length) {
     }
 
     @Nullable
-    @CheckReturnValue
     private PdfDestination createDestination(RenderingContext c, Box box) {
         PdfDestination result = null;
 
@@ -472,7 +469,6 @@ public void translate(double tx, double ty) {
     }
 
     @Nullable
-    @CheckReturnValue
     @Override
     public Object getRenderingHint(RenderingHints.Key key) {
         return null;
@@ -812,7 +808,6 @@ public void clip(Shape s) {
     }
 
     @Nullable
-    @CheckReturnValue
     @Override
     public Shape getClip() {
         try {
@@ -1106,7 +1101,6 @@ public void addMetadata(String name, String value) {
      *         null.
      */
     @Nullable
-    @CheckReturnValue
     public String getMetadataByName(String name) {
         for (Metadata m : _metadata) {
             if ((m != null) && m.getName().equalsIgnoreCase(name)) {
@@ -1292,7 +1286,6 @@ public List<PagePosition> findPagePositionsByID(CssContext c, Pattern pattern) {
     }
 
     @Nullable
-    @CheckReturnValue
     private PagePosition calcPDFPagePosition(CssContext c, String id, Box box) {
         PageBox page = _root.getLayer().getLastPage(c, box);
         if (page == null) {
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextRenderer.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextRenderer.java
index da6fb51c4..4a6011798 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextRenderer.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextRenderer.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.DocumentException;
 import com.lowagie.text.pdf.PdfWriter;
 import org.jspecify.annotations.Nullable;
@@ -167,22 +166,18 @@ public ITextRenderer(float dotsPerPoint, int dotsPerPixel, ITextOutputDevice out
     }
 
     @Nullable
-    @CheckReturnValue
     public Document getDocument() {
         return _doc;
     }
 
-    @CheckReturnValue
     public ITextFontResolver getFontResolver() {
         return (ITextFontResolver) _sharedContext.getFontResolver();
     }
 
-    @CheckReturnValue
     private Document loadDocument(final String uri) {
         return _sharedContext.getUac().getXMLResource(uri).getDocument();
     }
 
-    @CheckReturnValue
     public static ITextRenderer fromUrl(String uri) {
         ITextRenderer renderer = new ITextRenderer();
         renderer.setDocument(renderer.loadDocument(uri), uri);
@@ -239,6 +234,7 @@ private void setDocument(Document doc, @Nullable String url, NamespaceHandler ns
         getFontResolver().importFontFaces(_sharedContext.getCss().getFontFaceRules(), _sharedContext.getUac());
     }
 
+    @Nullable
     public PDFEncryption getPDFEncryption() {
         return _pdfEncryption;
     }
@@ -504,7 +500,6 @@ private void provideMetadataToPage(PdfWriter writer, PageBox page) {
     }
 
     @Nullable
-    @CheckReturnValue
     private String stringifyMetadata(Element element) {
         Element target = getFirstChildElement(element);
         if (target == null) {
@@ -529,7 +524,6 @@ private String stringifyMetadata(Element element) {
     }
 
     @Nullable
-    @CheckReturnValue
     private static Element getFirstChildElement(Element element) {
         Node n = element.getFirstChild();
         while (n != null) {
@@ -547,12 +541,10 @@ private String createXPacket(String metadata) {
                 "\n<?xpacket end='r'?>";
     }
 
-    @CheckReturnValue
     public ITextOutputDevice getOutputDevice() {
         return _outputDevice;
     }
 
-    @CheckReturnValue
     public SharedContext getSharedContext() {
         return _sharedContext;
     }
@@ -564,17 +556,14 @@ public void exportText(Writer writer) throws IOException {
     }
 
     @Nullable
-    @CheckReturnValue
     public BlockBox getRootBox() {
         return _root;
     }
 
-    @CheckReturnValue
     public float getDotsPerPoint() {
         return _dotsPerPoint;
     }
 
-    @CheckReturnValue
     public List<PagePosition> findPagePositionsByID(Pattern pattern) {
         return _outputDevice.findPagePositionsByID(newLayoutContext(), pattern);
     }
@@ -597,7 +586,6 @@ public boolean isFocus(Element e) {
     }
 
     @Nullable
-    @CheckReturnValue
     public PDFCreationListener getListener() {
         return _listener;
     }
@@ -607,7 +595,6 @@ public void setListener(PDFCreationListener listener) {
     }
 
     @Nullable
-    @CheckReturnValue
     public PdfWriter getWriter() {
         return _writer;
     }
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextReplacedElementFactory.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextReplacedElementFactory.java
index a5ffc2045..810da860f 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextReplacedElementFactory.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextReplacedElementFactory.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import org.jspecify.annotations.Nullable;
 import org.w3c.dom.Element;
 import org.xhtmlrenderer.extend.FSImage;
@@ -46,7 +45,6 @@ public ITextReplacedElementFactory(ITextOutputDevice outputDevice) {
     }
 
     @Nullable
-    @CheckReturnValue
     @Override
     public ReplacedElement createReplacedElement(LayoutContext c, BlockBox box,
                                                  UserAgentCallback uac, int cssWidth, int cssHeight) {
@@ -145,7 +143,6 @@ public void remove(String fieldName) {
     }
 
     @Nullable
-    @CheckReturnValue
     public List<RadioButtonFormField> getRadioButtons(String name) {
         return _radioButtonsByName.get(name);
     }
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextTextRenderer.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextTextRenderer.java
index 9f0995a28..62b53e220 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextTextRenderer.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextTextRenderer.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.pdf.BaseFont;
 import org.xhtmlrenderer.extend.FSGlyphVector;
 import org.xhtmlrenderer.extend.FontContext;
@@ -49,7 +48,6 @@ public void drawString(
         ((ITextOutputDevice)outputDevice).drawString(string, x, y, info);
     }
 
-    @CheckReturnValue
     @Override
     public FSFontMetrics getFSFontMetrics(FontContext context, FSFont font, String string) {
         FontDescription description = ((ITextFSFont)font).getFontDescription();
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextUserAgent.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextUserAgent.java
index faf430008..3cc86f7a4 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextUserAgent.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextUserAgent.java
@@ -20,7 +20,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.BadElementException;
 import com.lowagie.text.Image;
 import com.lowagie.text.Rectangle;
@@ -58,7 +57,6 @@ int getDotsPerPixel() {
         return dotsPerPixel;
     }
 
-    @CheckReturnValue
     @Override
     public ImageResource getImageResource(String uriStr) {
         String unresolvedUri = uriStr;
@@ -82,7 +80,6 @@ public ImageResource getImageResource(String uriStr) {
         }
     }
 
-    @CheckReturnValue
     @Nullable
     private ImageResource loadImageResource(String uriStr) {
         if (isEmbeddedBase64Image(uriStr)) {
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 0c49459f9..8fe238bd5 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,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import org.jspecify.annotations.NonNull;
 import org.xhtmlrenderer.extend.FSImage;
 
@@ -60,7 +59,6 @@ public int getHeight() {
     }
 
     @NonNull
-    @CheckReturnValue
     @Override
     public FSImage scale(int width, int height) {
         float targetWidth = width;
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TextFormField.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TextFormField.java
index fad889fc2..37bf4e0b8 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TextFormField.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TextFormField.java
@@ -19,7 +19,6 @@
  */
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.DocumentException;
 import com.lowagie.text.Rectangle;
 import com.lowagie.text.pdf.PdfAnnotation;
@@ -180,7 +179,6 @@ private int getMaxLength(Element elem)
   }
 
   @Override
-  @CheckReturnValue
   protected String getValue(Element e) {
     return e.getAttribute("value");
   }
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TrueTypeUtil.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TrueTypeUtil.java
index 52f769e28..cfd06e543 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TrueTypeUtil.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/TrueTypeUtil.java
@@ -1,6 +1,5 @@
 package org.xhtmlrenderer.pdf;
 
-import com.google.errorprone.annotations.CheckReturnValue;
 import com.lowagie.text.DocumentException;
 import com.lowagie.text.pdf.BaseFont;
 import com.lowagie.text.pdf.RandomAccessFileOrArray;
@@ -36,7 +35,6 @@ public class TrueTypeUtil {
      */
     private static final boolean AVOID_MEMORY_MAPPED_FILES = true;
 
-    @CheckReturnValue
     private static IdentValue guessStyle(BaseFont font) {
         String[][] names = font.getFullFontName();
 
@@ -52,7 +50,6 @@ private static IdentValue guessStyle(BaseFont font) {
         return NORMAL;
     }
 
-    @CheckReturnValue
     public static Collection<String> getFamilyNames(BaseFont font) {
         String[][] names = font.getFamilyFontName();
 
@@ -70,7 +67,6 @@ public static Collection<String> getFamilyNames(BaseFont font) {
         return result;
     }
 
-    @CheckReturnValue
     // HACK No accessor
     private static Map<String, int[]> extractTables(BaseFont font)
             throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
@@ -90,13 +86,11 @@ private static Map<String, int[]> extractTables(BaseFont font)
         throw new NoSuchFieldException("Could not find tables field");
     }
 
-    @CheckReturnValue
     private static String getTTCName(String name) {
         int index = name.toLowerCase(ROOT).indexOf(".ttc,");
         return index < 0 ? name : name.substring(0, index + 4);
     }
 
-    @CheckReturnValue
     public static FontDescription extractDescription(String path, BaseFont font, @Nullable IdentValue fontWeightOverride) {
         try {
             Decorations decorations = readFontDecorations(path, font, fontWeightOverride);
@@ -114,7 +108,6 @@ private static Decorations readFontDecorations(String path, BaseFont font, @Null
         }
     }
 
-    @CheckReturnValue
     public static FontDescription extractDescription(String path, byte[] contents,
                                                      BaseFont font, boolean isFromFontFace,
                                                      @Nullable IdentValue fontWeightOverride,
@@ -128,7 +121,6 @@ public static FontDescription extractDescription(String path, byte[] contents,
         }
     }
 
-    @CheckReturnValue
     private static Decorations readFontDecorations(String path, byte[] contents, BaseFont font, @Nullable IdentValue fontWeightOverride)
             throws IOException, NoSuchFieldException, IllegalAccessException, DocumentException {
         try (RandomAccessFileOrArray rf = new RandomAccessFileOrArray(contents)) {
@@ -136,7 +128,6 @@ private static Decorations readFontDecorations(String path, byte[] contents, Bas
         }
     }
 
-    @CheckReturnValue
     private static Decorations readFontDecorations(String path, BaseFont font, RandomAccessFileOrArray rf, @Nullable IdentValue fontWeightOverride)
             throws NoSuchFieldException, IllegalAccessException, DocumentException, IOException {
         Map<String, int[]> tables = extractTables(font);
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/package-info.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/package-info.java
index 82eee6490..ce63d8725 100644
--- a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/package-info.java
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/package-info.java
@@ -1,4 +1,6 @@
 @NullMarked
+@CheckReturnValue
 package org.xhtmlrenderer.pdf;
 
+import com.google.errorprone.annotations.CheckReturnValue;
 import org.jspecify.annotations.NullMarked;
\ No newline at end of file
diff --git a/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/util/package-info.java b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/util/package-info.java
new file mode 100644
index 000000000..cd43ff980
--- /dev/null
+++ b/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/util/package-info.java
@@ -0,0 +1,6 @@
+@NullMarked
+@CheckReturnValue
+package org.xhtmlrenderer.pdf.util;
+
+import com.google.errorprone.annotations.CheckReturnValue;
+import org.jspecify.annotations.NullMarked;
\ No newline at end of file