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