This is an automated email from the ASF dual-hosted git repository.

pjfanning pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/poi.git


The following commit(s) were added to refs/heads/trunk by this push:
     new bcd3261e8d use java 17 code enhancements (#1140)
bcd3261e8d is described below

commit bcd3261e8d579649f48260316092abc4d6eca827
Author: PJ Fanning <[email protected]>
AuthorDate: Fri Jun 12 14:57:03 2026 +0100

    use java 17 code enhancements (#1140)
    
    Update SlideShowExtractor.java
    
    Update SlideShowExtractor.java
    
    java17
---
 .../org/apache/poi/xdgf/usermodel/XDGFShape.java   | 21 ++----
 .../apache/poi/xslf/draw/SVGRenderExtension.java   | 18 ++---
 .../org/apache/poi/xslf/draw/geom/XSLFPath.java    | 53 +++++---------
 .../poi/xslf/model/ParagraphPropertyFetcher.java   | 34 ++++-----
 .../org/apache/poi/xslf/usermodel/XSLFColor.java   | 13 ++--
 .../poi/xslf/usermodel/XSLFGraphicFrame.java       | 16 ++---
 .../apache/poi/xslf/usermodel/XSLFPictureData.java | 32 ++++-----
 .../poi/xslf/usermodel/XSLFPlaceholderDetails.java | 35 ++++-----
 .../org/apache/poi/xslf/usermodel/XSLFShape.java   | 17 ++---
 .../apache/poi/xslf/usermodel/XSLFSimpleShape.java | 46 ++++--------
 .../apache/poi/xslf/usermodel/XSLFSlideMaster.java | 18 ++---
 .../apache/poi/xslf/usermodel/XSLFTableCell.java   | 44 ++++--------
 .../poi/xslf/usermodel/XSLFTextParagraph.java      | 14 ++--
 .../org/apache/poi/xslf/usermodel/XSLFTextRun.java | 26 +++----
 .../apache/poi/xslf/usermodel/XSLFTextShape.java   | 53 ++++++--------
 .../poi/xslf/usermodel/XSLFTexturePaint.java       | 17 ++---
 .../org/apache/poi/xslf/usermodel/XSLFTheme.java   | 43 ++++-------
 .../org/apache/poi/xslf/util/BitmapFormat.java     | 14 ++--
 .../java/org/apache/poi/xslf/util/PPTX2PNG.java    | 42 ++++-------
 .../xssf/eventusermodel/XSSFSheetXMLHandler.java   |  2 +-
 .../org/apache/poi/xssf/streaming/SXSSFCell.java   | 84 ++++++++++------------
 .../org/apache/poi/xssf/streaming/SXSSFRow.java    | 18 +++--
 .../org/apache/poi/xssf/usermodel/XSSFCell.java    | 55 ++++++--------
 .../org/apache/poi/xssf/usermodel/XSSFDrawing.java | 20 ++----
 .../org/apache/poi/xssf/usermodel/XSSFFont.java    | 16 ++---
 .../org/apache/poi/xssf/usermodel/XSSFRow.java     | 18 +++--
 .../org/apache/poi/xssf/usermodel/XSSFSheet.java   | 22 ++----
 .../usermodel/XSSFSheetConditionalFormatting.java  | 23 +++---
 .../poi/xssf/usermodel/XSSFSignatureLine.java      | 40 ++++-------
 .../apache/poi/xwpf/usermodel/XWPFSettings.java    | 51 +++++++------
 .../poi/xwpf/usermodel/XWPFSignatureLine.java      | 43 ++++-------
 31 files changed, 354 insertions(+), 594 deletions(-)

diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/XDGFShape.java 
b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/XDGFShape.java
index 02f05ad1c5..1c3d4bcc8b 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/XDGFShape.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/XDGFShape.java
@@ -392,7 +392,7 @@ public class XDGFShape extends XDGFSheet {
     }
 
     public boolean isDeleted() {
-        return getXmlObject().isSetDel() ? getXmlObject().getDel() : false;
+        return getXmlObject().isSetDel() && getXmlObject().getDel();
     }
 
     public XDGFText getText() {
@@ -725,19 +725,12 @@ public class XDGFShape extends XDGFSheet {
         int cap;
         int join = BasicStroke.JOIN_MITER;
 
-        switch (getLineCap()) {
-        case 0:
-            cap = BasicStroke.CAP_ROUND;
-            break;
-        case 1:
-            cap = BasicStroke.CAP_SQUARE;
-            break;
-        case 2:
-            cap = BasicStroke.CAP_BUTT; // TODO: what does extended mean?
-            break;
-        default:
-            throw new POIXMLException("Invalid line cap specified");
-        }
+        cap = switch (getLineCap()) {
+            case 0 -> BasicStroke.CAP_ROUND;
+            case 1 -> BasicStroke.CAP_SQUARE;
+            case 2 -> BasicStroke.CAP_BUTT; // TODO: what does extended mean?
+            default -> throw new POIXMLException("Invalid line cap specified");
+        };
 
         float[] dash = null;
 
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/SVGRenderExtension.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/SVGRenderExtension.java
index 53ed325050..d5125e142b 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/SVGRenderExtension.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/SVGRenderExtension.java
@@ -177,19 +177,11 @@ public class SVGRenderExtension extends 
DefaultExtensionHandler {
         gradElem.setAttribute(SVG_GRADIENT_UNITS_ATTRIBUTE, 
SVG_USER_SPACE_ON_USE_VALUE);
 
         // Set cycle method
-        final String cycleVal;
-        switch (gradient.getCycleMethod()) {
-            case REFLECT:
-                cycleVal = SVG_REFLECT_VALUE;
-                break;
-            case REPEAT:
-                cycleVal = SVG_REPEAT_VALUE;
-                break;
-            case NO_CYCLE:
-            default:
-                cycleVal = SVG_PAD_VALUE;
-                break;
-        }
+        final String cycleVal = switch (gradient.getCycleMethod()) {
+            case REFLECT -> SVG_REFLECT_VALUE;
+            case REPEAT -> SVG_REPEAT_VALUE;
+            default -> SVG_PAD_VALUE;
+        };
         gradElem.setAttribute(SVG_SPREAD_METHOD_ATTRIBUTE, cycleVal);
 
         // Set color space
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/geom/XSLFPath.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/geom/XSLFPath.java
index 6b1f95918e..87b0e1904b 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/geom/XSLFPath.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/geom/XSLFPath.java
@@ -98,47 +98,26 @@ public class XSLFPath implements PathIf {
 
     @Override
     public PaintStyle.PaintModifier getFill() {
-        switch (pathXml.getFill().intValue()) {
-            default:
-            case STPathFillMode.INT_NONE:
-                return PaintStyle.PaintModifier.NONE;
-            case STPathFillMode.INT_NORM:
-                return PaintStyle.PaintModifier.NORM;
-            case STPathFillMode.INT_LIGHTEN:
-                return PaintStyle.PaintModifier.LIGHTEN;
-            case STPathFillMode.INT_LIGHTEN_LESS:
-                return PaintStyle.PaintModifier.LIGHTEN_LESS;
-            case STPathFillMode.INT_DARKEN:
-                return PaintStyle.PaintModifier.DARKEN;
-            case STPathFillMode.INT_DARKEN_LESS:
-                return PaintStyle.PaintModifier.DARKEN_LESS;
-        }
+        return switch (pathXml.getFill().intValue()) {
+            case STPathFillMode.INT_NORM -> PaintStyle.PaintModifier.NORM;
+            case STPathFillMode.INT_LIGHTEN -> 
PaintStyle.PaintModifier.LIGHTEN;
+            case STPathFillMode.INT_LIGHTEN_LESS -> 
PaintStyle.PaintModifier.LIGHTEN_LESS;
+            case STPathFillMode.INT_DARKEN -> PaintStyle.PaintModifier.DARKEN;
+            case STPathFillMode.INT_DARKEN_LESS -> 
PaintStyle.PaintModifier.DARKEN_LESS;
+            default -> PaintStyle.PaintModifier.NONE;
+        };
     }
 
     @Override
     public void setFill(PaintStyle.PaintModifier fill) {
-        STPathFillMode.Enum f;
-        switch (fill) {
-            default:
-            case NONE:
-                f = STPathFillMode.NONE;
-                break;
-            case NORM:
-                f = STPathFillMode.NORM;
-                break;
-            case LIGHTEN:
-                f = STPathFillMode.LIGHTEN;
-                break;
-            case LIGHTEN_LESS:
-                f = STPathFillMode.LIGHTEN_LESS;
-                break;
-            case DARKEN:
-                f = STPathFillMode.DARKEN;
-                break;
-            case DARKEN_LESS:
-                f = STPathFillMode.DARKEN_LESS;
-                break;
-        }
+        STPathFillMode.Enum f = switch (fill) {
+            default -> STPathFillMode.NONE;
+            case NORM -> STPathFillMode.NORM;
+            case LIGHTEN -> STPathFillMode.LIGHTEN;
+            case LIGHTEN_LESS -> STPathFillMode.LIGHTEN_LESS;
+            case DARKEN -> STPathFillMode.DARKEN;
+            case DARKEN_LESS -> STPathFillMode.DARKEN_LESS;
+        };
         pathXml.setFill(f);
     }
 
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java
 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java
index c2731adc6c..7a2f213d4a 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java
@@ -141,27 +141,17 @@ public final class ParagraphPropertyFetcher<T> extends 
PropertyFetcher<T> {
             return null;
         }
 
-        switch (_level) {
-            case 0:
-                return dts.getLvl1PPr();
-            case 1:
-                return dts.getLvl2PPr();
-            case 2:
-                return dts.getLvl3PPr();
-            case 3:
-                return dts.getLvl4PPr();
-            case 4:
-                return dts.getLvl5PPr();
-            case 5:
-                return dts.getLvl6PPr();
-            case 6:
-                return dts.getLvl7PPr();
-            case 7:
-                return dts.getLvl8PPr();
-            case 8:
-                return dts.getLvl9PPr();
-            default:
-                return null;
-        }
+        return switch (_level) {
+            case 0 -> dts.getLvl1PPr();
+            case 1 -> dts.getLvl2PPr();
+            case 2 -> dts.getLvl3PPr();
+            case 3 -> dts.getLvl4PPr();
+            case 4 -> dts.getLvl5PPr();
+            case 5 -> dts.getLvl6PPr();
+            case 6 -> dts.getLvl7PPr();
+            case 7 -> dts.getLvl8PPr();
+            case 8 -> dts.getLvl9PPr();
+            default -> null;
+        };
     }
 }
\ No newline at end of file
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFColor.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFColor.java
index db46847340..c03f6a7b23 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFColor.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFColor.java
@@ -167,14 +167,11 @@ public class XSLFColor {
     }
 
     private static XmlObject nextObject(XmlObject obj, XmlCursor cur, int idx) 
{
-        switch (idx) {
-            case 0:
-                return obj;
-            case 1:
-                return cur.toFirstChild() ? cur.getObject() : null;
-            default:
-                return cur.toNextSibling() ? cur.getObject() : null;
-        }
+        return switch (idx) {
+            case 0 -> obj;
+            case 1 -> cur.toFirstChild() ? cur.getObject() : null;
+            default -> cur.toNextSibling() ? cur.getObject() : null;
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
index 983b9decb0..38914ef2b7 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
@@ -114,16 +114,12 @@ public class XSLFGraphicFrame extends XSLFShape 
implements GraphicalFrame<XSLFSh
 
     static XSLFGraphicFrame create(CTGraphicalObjectFrame shape, XSLFSheet 
sheet){
         final String uri = getUri(shape);
-        switch (uri == null ? "" : uri) {
-        case XSLFTable.TABLE_URI:
-            return new XSLFTable(shape, sheet);
-        case XSLFObjectShape.OLE_URI:
-            return new XSLFObjectShape(shape, sheet);
-        case XSLFDiagram.DRAWINGML_DIAGRAM_URI:
-            return new XSLFDiagram(shape, sheet);
-        default:
-            return new XSLFGraphicFrame(shape, sheet);
-        }
+        return switch (uri == null ? "" : uri) {
+            case XSLFTable.TABLE_URI -> new XSLFTable(shape, sheet);
+            case XSLFObjectShape.OLE_URI -> new XSLFObjectShape(shape, sheet);
+            case XSLFDiagram.DRAWINGML_DIAGRAM_URI -> new XSLFDiagram(shape, 
sheet);
+            default -> new XSLFGraphicFrame(shape, sheet);
+        };
     }
 
     private static String getUri(CTGraphicalObjectFrame shape) {
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java
index e7eea4f513..77b421660d 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java
@@ -245,22 +245,22 @@ public final class XSLFPictureData extends 
POIXMLDocumentPart implements Picture
     }
     
     /* package */ static XSLFRelation getRelationForType(PictureType pt) {
-        switch (pt) {
-            case EMF: return XSLFRelation.IMAGE_EMF;
-            case WMF: return XSLFRelation.IMAGE_WMF;
-            case PICT: return XSLFRelation.IMAGE_PICT;
-            case JPEG: return XSLFRelation.IMAGE_JPEG;
-            case PNG: return XSLFRelation.IMAGE_PNG;
-            case DIB: return XSLFRelation.IMAGE_DIB;
-            case GIF: return XSLFRelation.IMAGE_GIF;
-            case EPS: return XSLFRelation.IMAGE_EPS;
-            case BMP: return XSLFRelation.IMAGE_BMP;
-            case WPG: return XSLFRelation.IMAGE_WPG;
-            case WDP: return XSLFRelation.HDPHOTO_WDP;
-            case TIFF: return XSLFRelation.IMAGE_TIFF;
-            case SVG: return XSLFRelation.IMAGE_SVG;
-            default: return null;
-        }
+        return switch (pt) {
+            case EMF -> XSLFRelation.IMAGE_EMF;
+            case WMF -> XSLFRelation.IMAGE_WMF;
+            case PICT -> XSLFRelation.IMAGE_PICT;
+            case JPEG -> XSLFRelation.IMAGE_JPEG;
+            case PNG -> XSLFRelation.IMAGE_PNG;
+            case DIB -> XSLFRelation.IMAGE_DIB;
+            case GIF -> XSLFRelation.IMAGE_GIF;
+            case EPS -> XSLFRelation.IMAGE_EPS;
+            case BMP -> XSLFRelation.IMAGE_BMP;
+            case WPG -> XSLFRelation.IMAGE_WPG;
+            case WDP -> XSLFRelation.HDPHOTO_WDP;
+            case TIFF -> XSLFRelation.IMAGE_TIFF;
+            case SVG -> XSLFRelation.IMAGE_SVG;
+            default -> null;
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPlaceholderDetails.java
 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPlaceholderDetails.java
index 9beb83815b..9b31bf6614 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPlaceholderDetails.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPlaceholderDetails.java
@@ -100,18 +100,13 @@ public class XSLFPlaceholderDetails implements 
PlaceholderDetails {
         if (pl == null) {
             return true;
         }
-        switch (pl) {
-            case DATETIME:
-                return !hf.isSetDt() || hf.getDt();
-            case FOOTER:
-                return !hf.isSetFtr() || hf.getFtr();
-            case HEADER:
-                return !hf.isSetHdr() || hf.getHdr();
-            case SLIDE_NUMBER:
-                return !hf.isSetSldNum() || hf.getSldNum();
-            default:
-                return true;
-        }
+        return switch (pl) {
+            case DATETIME -> !hf.isSetDt() || hf.getDt();
+            case FOOTER -> !hf.isSetFtr() || hf.getFtr();
+            case HEADER -> !hf.isSetHdr() || hf.getHdr();
+            case SLIDE_NUMBER -> !hf.isSetSldNum() || hf.getSldNum();
+            default -> true;
+        };
     }
 
     @Override
@@ -151,16 +146,12 @@ public class XSLFPlaceholderDetails implements 
PlaceholderDetails {
         if (ph == null || !ph.isSetSz()) {
             return null;
         }
-        switch (ph.getSz().intValue()) {
-            case STPlaceholderSize.INT_FULL:
-                return PlaceholderSize.full;
-            case STPlaceholderSize.INT_HALF:
-                return PlaceholderSize.half;
-            case STPlaceholderSize.INT_QUARTER:
-                return PlaceholderSize.quarter;
-            default:
-                return null;
-        }
+        return switch (ph.getSz().intValue()) {
+            case STPlaceholderSize.INT_FULL -> PlaceholderSize.full;
+            case STPlaceholderSize.INT_HALF -> PlaceholderSize.half;
+            case STPlaceholderSize.INT_QUARTER -> PlaceholderSize.quarter;
+            default -> null;
+        };
     }
 
     @Override
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java
index c5858eb2ab..413770ec67 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java
@@ -370,17 +370,12 @@ public abstract class XSLFShape implements 
Shape<XSLFShape,XSLFTextParagraph> {
             return STPlaceholderType.INT_BODY;
         }
 
-        switch (ph.getType().intValue()) {
-            case STPlaceholderType.INT_TITLE:
-            case STPlaceholderType.INT_CTR_TITLE:
-                return STPlaceholderType.INT_TITLE;
-            case STPlaceholderType.INT_FTR:
-            case STPlaceholderType.INT_SLD_NUM:
-            case STPlaceholderType.INT_DT:
-                return ph.getType().intValue();
-            default:
-                return STPlaceholderType.INT_BODY;
-        }
+        return switch (ph.getType().intValue()) {
+            case STPlaceholderType.INT_TITLE, STPlaceholderType.INT_CTR_TITLE 
-> STPlaceholderType.INT_TITLE;
+            case STPlaceholderType.INT_FTR, STPlaceholderType.INT_SLD_NUM, 
STPlaceholderType.INT_DT ->
+                    ph.getType().intValue();
+            default -> STPlaceholderType.INT_BODY;
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
index fce0e6a441..918fcf5c73 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
@@ -439,25 +439,13 @@ public abstract class XSLFSimpleShape extends XSLFShape
                 ln.unsetCmpd();
             }
         } else {
-            STCompoundLine.Enum xCmpd;
-            switch (compound) {
-                default:
-                case SINGLE:
-                    xCmpd = STCompoundLine.SNG;
-                    break;
-                case DOUBLE:
-                    xCmpd = STCompoundLine.DBL;
-                    break;
-                case THICK_THIN:
-                    xCmpd = STCompoundLine.THICK_THIN;
-                    break;
-                case THIN_THICK:
-                    xCmpd = STCompoundLine.THIN_THICK;
-                    break;
-                case TRIPLE:
-                    xCmpd = STCompoundLine.TRI;
-                    break;
-            }
+            STCompoundLine.Enum xCmpd = switch (compound) {
+                case DOUBLE -> STCompoundLine.DBL;
+                case THICK_THIN -> STCompoundLine.THICK_THIN;
+                case THIN_THICK -> STCompoundLine.THIN_THICK;
+                case TRIPLE -> STCompoundLine.TRI;
+                default -> STCompoundLine.SNG;
+            };
             ln.setCmpd(xCmpd);
         }
     }
@@ -487,19 +475,13 @@ public abstract class XSLFSimpleShape extends XSLFShape
         if (cmpd == null) {
             CTLineProperties defaultLn = getDefaultLineProperties();
             if (defaultLn != null && defaultLn.isSetCmpd()) {
-                switch (defaultLn.getCmpd().intValue()) {
-                default:
-                case STCompoundLine.INT_SNG:
-                    return LineCompound.SINGLE;
-                case STCompoundLine.INT_DBL:
-                    return LineCompound.DOUBLE;
-                case STCompoundLine.INT_THICK_THIN:
-                    return LineCompound.THICK_THIN;
-                case STCompoundLine.INT_THIN_THICK:
-                    return LineCompound.THIN_THICK;
-                case STCompoundLine.INT_TRI:
-                    return LineCompound.TRIPLE;
-                }
+                return switch (defaultLn.getCmpd().intValue()) {
+                    case STCompoundLine.INT_DBL -> LineCompound.DOUBLE;
+                    case STCompoundLine.INT_THICK_THIN -> 
LineCompound.THICK_THIN;
+                    case STCompoundLine.INT_THIN_THICK -> 
LineCompound.THIN_THICK;
+                    case STCompoundLine.INT_TRI -> LineCompound.TRIPLE;
+                    default -> LineCompound.SINGLE;
+                };
             }
         }
 
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
index ea0f49abef..08e31fcf9b 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
@@ -139,19 +139,11 @@ import 
org.openxmlformats.schemas.presentationml.x2006.main.SldMasterDocument;
     protected CTTextListStyle getTextProperties(Placeholder textType) {
         CTTextListStyle props;
         CTSlideMasterTextStyles txStyles = getXmlObject().getTxStyles();
-        switch (textType){
-            case TITLE:
-            case CENTERED_TITLE:
-            case SUBTITLE:
-                props = txStyles.getTitleStyle();
-                break;
-            case BODY:
-                props = txStyles.getBodyStyle();
-                break;
-            default:
-                props = txStyles.getOtherStyle();
-                break;
-        }
+        props = switch (textType) {
+            case TITLE, CENTERED_TITLE, SUBTITLE -> txStyles.getTitleStyle();
+            case BODY -> txStyles.getBodyStyle();
+            default -> txStyles.getOtherStyle();
+        };
         return props;
     }
 
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java
index c8a99c6307..47f94c79ac 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java
@@ -595,22 +595,12 @@ public class XSLFTableCell extends XSLFTextShape 
implements TableCell<XSLFShape,
                 cellProps.unsetVert();
             }
         } else {
-            STTextVerticalType.Enum vt;
-            switch (orientation) {
-            default:
-            case HORIZONTAL:
-                vt = STTextVerticalType.HORZ;
-                break;
-            case VERTICAL:
-                vt = STTextVerticalType.VERT;
-                break;
-            case VERTICAL_270:
-                vt = STTextVerticalType.VERT_270;
-                break;
-            case STACKED:
-                vt = STTextVerticalType.WORD_ART_VERT;
-                break;
-            }
+            STTextVerticalType.Enum vt = switch (orientation) {
+                case VERTICAL -> STTextVerticalType.VERT;
+                case VERTICAL_270 -> STTextVerticalType.VERT_270;
+                case STACKED -> STTextVerticalType.WORD_ART_VERT;
+                default -> STTextVerticalType.HORZ;
+            };
 
             cellProps.setVert(vt);
         }
@@ -630,20 +620,14 @@ public class XSLFTableCell extends XSLFTextShape 
implements TableCell<XSLFShape,
             orientation = STTextVerticalType.HORZ;
         }
 
-        switch (orientation.intValue()) {
-        default:
-        case STTextVerticalType.INT_HORZ:
-            return TextDirection.HORIZONTAL;
-        case STTextVerticalType.INT_VERT:
-        case STTextVerticalType.INT_EA_VERT:
-        case STTextVerticalType.INT_MONGOLIAN_VERT:
-            return TextDirection.VERTICAL;
-        case STTextVerticalType.INT_VERT_270:
-            return TextDirection.VERTICAL_270;
-        case STTextVerticalType.INT_WORD_ART_VERT:
-        case STTextVerticalType.INT_WORD_ART_VERT_RTL:
-            return TextDirection.STACKED;
-        }
+        return switch (orientation.intValue()) {
+            case STTextVerticalType.INT_VERT, STTextVerticalType.INT_EA_VERT, 
STTextVerticalType.INT_MONGOLIAN_VERT ->
+                    TextDirection.VERTICAL;
+            case STTextVerticalType.INT_VERT_270 -> TextDirection.VERTICAL_270;
+            case STTextVerticalType.INT_WORD_ART_VERT, 
STTextVerticalType.INT_WORD_ART_VERT_RTL ->
+                    TextDirection.STACKED;
+            default -> TextDirection.HORIZONTAL;
+        };
     }
 
     private CTTableCell getCell() {
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
index 267c7b92d5..00308c73ea 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
@@ -1040,15 +1040,11 @@ public class XSLFTextParagraph implements 
TextParagraph<XSLFShape,XSLFTextParagr
     public boolean isHeaderOrFooter() {
         CTPlaceholder ph = 
_shape.getPlaceholderDetails().getCTPlaceholder(false);
         int phId = (ph == null ? -1 : ph.getType().intValue());
-        switch (phId) {
-            case STPlaceholderType.INT_SLD_NUM:
-            case STPlaceholderType.INT_DT:
-            case STPlaceholderType.INT_FTR:
-            case STPlaceholderType.INT_HDR:
-                return true;
-            default:
-                return false;
-        }
+        return switch (phId) {
+            case STPlaceholderType.INT_SLD_NUM, STPlaceholderType.INT_DT, 
STPlaceholderType.INT_FTR,
+                 STPlaceholderType.INT_HDR -> true;
+            default -> false;
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
index 11cf9dc32d..8da9c28050 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
@@ -674,12 +674,6 @@ public class XSLFTextRun implements TextRun, 
HighlightColorSupport {
             }
             FontGroup fg = FontGroup.getFontGroupFirst(getRawText());
             switch (fg) {
-            default:
-            case LATIN:
-                if (props.isSetLatin()) {
-                    props.unsetLatin();
-                }
-                break;
             case EAST_ASIAN:
                 if (props.isSetEa()) {
                     props.unsetEa();
@@ -695,6 +689,12 @@ public class XSLFTextRun implements TextRun, 
HighlightColorSupport {
                     props.unsetSym();
                 }
                 break;
+            case LATIN:
+            default:
+                if (props.isSetLatin()) {
+                    props.unsetLatin();
+                }
+                break;
             }
         }
 
@@ -777,13 +777,6 @@ public class XSLFTextRun implements TextRun, 
HighlightColorSupport {
 
             CTTextFont font;
             switch (fontGroup) {
-            default:
-            case LATIN:
-                font = props.getLatin();
-                if (font == null && create) {
-                    font = props.addNewLatin();
-                }
-                break;
             case EAST_ASIAN:
                 font = props.getEa();
                 if (font == null && create) {
@@ -802,6 +795,13 @@ public class XSLFTextRun implements TextRun, 
HighlightColorSupport {
                     font = props.addNewSym();
                 }
                 break;
+            case LATIN:
+            default:
+                font = props.getLatin();
+                if (font == null && create) {
+                    font = props.addNewLatin();
+                }
+                break;
             }
 
             if (font == null) {
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
index 707c33aa31..feec0df6f8 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
@@ -341,20 +341,14 @@ public abstract class XSLFTextShape extends 
XSLFSimpleShape
         if (bodyPr != null) {
             STTextVerticalType.Enum val = bodyPr.getVert();
             if (val != null) {
-                switch (val.intValue()) {
-                default:
-                case STTextVerticalType.INT_HORZ:
-                    return TextDirection.HORIZONTAL;
-                case STTextVerticalType.INT_EA_VERT:
-                case STTextVerticalType.INT_MONGOLIAN_VERT:
-                case STTextVerticalType.INT_VERT:
-                    return TextDirection.VERTICAL;
-                case STTextVerticalType.INT_VERT_270:
-                    return TextDirection.VERTICAL_270;
-                case STTextVerticalType.INT_WORD_ART_VERT_RTL:
-                case STTextVerticalType.INT_WORD_ART_VERT:
-                    return TextDirection.STACKED;
-                }
+                return switch (val.intValue()) {
+                    case STTextVerticalType.INT_EA_VERT, 
STTextVerticalType.INT_MONGOLIAN_VERT,
+                         STTextVerticalType.INT_VERT -> TextDirection.VERTICAL;
+                    case STTextVerticalType.INT_VERT_270 -> 
TextDirection.VERTICAL_270;
+                    case STTextVerticalType.INT_WORD_ART_VERT_RTL, 
STTextVerticalType.INT_WORD_ART_VERT ->
+                            TextDirection.STACKED;
+                    default -> TextDirection.HORIZONTAL;
+                };
             }
         }
         return TextDirection.HORIZONTAL;
@@ -758,13 +752,6 @@ public abstract class XSLFTextShape extends XSLFSimpleShape
     @Override
     public void setTextPlaceholder(TextPlaceholder placeholder) {
         switch (placeholder) {
-        default:
-        case NOTES:
-        case HALF_BODY:
-        case QUARTER_BODY:
-        case BODY:
-            setPlaceholder(Placeholder.BODY);
-            break;
         case TITLE:
             setPlaceholder(Placeholder.TITLE);
             break;
@@ -778,6 +765,13 @@ public abstract class XSLFTextShape extends XSLFSimpleShape
         case OTHER:
             setPlaceholder(Placeholder.CONTENT);
             break;
+        case NOTES:
+        case HALF_BODY:
+        case QUARTER_BODY:
+        case BODY:
+        default:
+            setPlaceholder(Placeholder.BODY);
+            break;
         }
     }
 
@@ -787,17 +781,12 @@ public abstract class XSLFTextShape extends 
XSLFSimpleShape
         if (ph == null) {
             return TextPlaceholder.BODY;
         }
-        switch (ph) {
-        case BODY:
-            return TextPlaceholder.BODY;
-        case TITLE:
-            return TextPlaceholder.TITLE;
-        case CENTERED_TITLE:
-            return TextPlaceholder.CENTER_TITLE;
-        default:
-        case CONTENT:
-            return TextPlaceholder.OTHER;
-        }
+        return switch (ph) {
+            case BODY -> TextPlaceholder.BODY;
+            case TITLE -> TextPlaceholder.TITLE;
+            case CENTERED_TITLE -> TextPlaceholder.CENTER_TITLE;
+            default -> TextPlaceholder.OTHER;
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTexturePaint.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTexturePaint.java
index bb9c04e862..cb59cef2fe 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTexturePaint.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTexturePaint.java
@@ -132,17 +132,12 @@ public class XSLFTexturePaint implements 
PaintStyle.TexturePaint {
     @Override
     public PaintStyle.FlipMode getFlipMode() {
         CTTileInfoProperties tile = blipFill.getTile();
-        switch (tile == null || tile.getFlip() == null ? 
STTileFlipMode.INT_NONE : tile.getFlip().intValue()) {
-            default:
-            case STTileFlipMode.INT_NONE:
-                return PaintStyle.FlipMode.NONE;
-            case STTileFlipMode.INT_X:
-                return PaintStyle.FlipMode.X;
-            case STTileFlipMode.INT_Y:
-                return PaintStyle.FlipMode.Y;
-            case STTileFlipMode.INT_XY:
-                return PaintStyle.FlipMode.XY;
-        }
+        return switch (tile == null || tile.getFlip() == null ? 
STTileFlipMode.INT_NONE : tile.getFlip().intValue()) {
+            case STTileFlipMode.INT_X -> FlipMode.X;
+            case STTileFlipMode.INT_Y -> FlipMode.Y;
+            case STTileFlipMode.INT_XY -> FlipMode.XY;
+            default -> FlipMode.NONE;
+        };
     }
 
     @Override
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTheme.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTheme.java
index dccd7c1c6d..4a5db1c0bb 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTheme.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFTheme.java
@@ -97,34 +97,21 @@ public class XSLFTheme extends POIXMLDocumentPart {
         if (mapName == null || scheme == null) {
             return null;
         }
-        switch (mapName) {
-            case "accent1":
-                return scheme.getAccent1();
-            case "accent2":
-                return scheme.getAccent2();
-            case "accent3":
-                return scheme.getAccent3();
-            case "accent4":
-                return scheme.getAccent4();
-            case "accent5":
-                return scheme.getAccent5();
-            case "accent6":
-                return scheme.getAccent6();
-            case "dk1":
-                return scheme.getDk1();
-            case "dk2":
-                return scheme.getDk2();
-            case "folHlink":
-                return scheme.getFolHlink();
-            case "hlink":
-                return scheme.getHlink();
-            case "lt1":
-                return scheme.getLt1();
-            case "lt2":
-                return scheme.getLt2();
-            default:
-                return null;
-        }
+        return switch (mapName) {
+            case "accent1" -> scheme.getAccent1();
+            case "accent2" -> scheme.getAccent2();
+            case "accent3" -> scheme.getAccent3();
+            case "accent4" -> scheme.getAccent4();
+            case "accent5" -> scheme.getAccent5();
+            case "accent6" -> scheme.getAccent6();
+            case "dk1" -> scheme.getDk1();
+            case "dk2" -> scheme.getDk2();
+            case "folHlink" -> scheme.getFolHlink();
+            case "hlink" -> scheme.getHlink();
+            case "lt1" -> scheme.getLt1();
+            case "lt2" -> scheme.getLt2();
+            default -> null;
+        };
     }
 
     /**
diff --git a/poi-ooxml/src/main/java/org/apache/poi/xslf/util/BitmapFormat.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/util/BitmapFormat.java
index de98990257..8f57fead9d 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/util/BitmapFormat.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/util/BitmapFormat.java
@@ -43,16 +43,10 @@ public class BitmapFormat implements OutputFormat {
 
     @Override
     public Graphics2D addSlide(double width, double height) {
-        int type;
-        switch (format) {
-            case "png":
-            case "gif":
-                type = BufferedImage.TYPE_INT_ARGB;
-                break;
-            default:
-                type = BufferedImage.TYPE_INT_RGB;
-                break;
-        }
+        int type = switch (format) {
+            case "png", "gif" -> BufferedImage.TYPE_INT_ARGB;
+            default -> BufferedImage.TYPE_INT_RGB;
+        };
         img = new BufferedImage(MathUtil.safeDoubleToInt(width), 
MathUtil.safeDoubleToInt(height), type);
         graphics = img.createGraphics();
         graphics.setRenderingHint(Drawable.BUFFERED_IMAGE, new 
WeakReference<>(img));
diff --git a/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java 
b/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java
index 13b8eb9024..c5553b05e7 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java
@@ -377,25 +377,13 @@ public final class PPTX2PNG {
     private double getDimensions(MFProxy proxy, Dimension2D dim) {
         final Dimension2D pgsize = proxy.getSize();
 
-        final double lenSide;
-        switch (fixSide) {
-            default:
-            case "scale":
-                lenSide = 1;
-                break;
-            case "long":
-                lenSide = Math.max(pgsize.getWidth(), pgsize.getHeight());
-                break;
-            case "short":
-                lenSide = Math.min(pgsize.getWidth(), pgsize.getHeight());
-                break;
-            case "width":
-                lenSide = pgsize.getWidth();
-                break;
-            case "height":
-                lenSide = pgsize.getHeight();
-                break;
-        }
+        final double lenSide = switch (fixSide) {
+            default -> 1;
+            case "long" -> Math.max(pgsize.getWidth(), pgsize.getHeight());
+            case "short" -> Math.min(pgsize.getWidth(), pgsize.getHeight());
+            case "width" -> pgsize.getWidth();
+            case "height" -> pgsize.getHeight();
+        };
 
         dim.setSize(pgsize.getWidth() * scale / lenSide, pgsize.getHeight() * 
scale / lenSide);
         return lenSide;
@@ -457,17 +445,11 @@ public final class PPTX2PNG {
         if (fm == FileMagic.UNKNOWN) {
             fm = defaultFileType;
         }
-        switch (fm) {
-            case EMF:
-                proxy = new EMFHandler();
-                break;
-            case WMF:
-                proxy = new WMFHandler();
-                break;
-            default:
-                proxy = new PPTHandler();
-                break;
-        }
+        proxy = switch (fm) {
+            case EMF -> new EMFHandler();
+            case WMF -> new WMFHandler();
+            default -> new PPTHandler();
+        };
         proxy.setIgnoreParse(ignoreParse);
         proxy.setQuiet(quiet);
         con.parse(proxy);
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java
 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java
index 28893b8e48..2a82e3e358 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java
@@ -372,7 +372,7 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
         String thisStr = null;
 
         // Process the value contents as required, now we have it all
-        if (formulasNotResults && formula.length() > 0) {
+        if (formulasNotResults && !formula.isEmpty()) {
             thisStr = formula.toString();
         } else {
             switch (nextDataType) {
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFCell.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFCell.java
index 43f1334e73..4c11900cbe 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFCell.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFCell.java
@@ -747,27 +747,22 @@ public class SXSSFCell extends CellBase {
      */
     @Override
     public String toString() {
-        switch (getCellType()) {
-            case BLANK:
-                return "";
-            case BOOLEAN:
-                return getBooleanCellValue() ? "TRUE" : "FALSE";
-            case ERROR:
-                return ErrorEval.getText(getErrorCellValue());
-            case FORMULA:
-                return getCellFormula();
-            case NUMERIC:
+        return switch (getCellType()) {
+            case BLANK -> "";
+            case BOOLEAN -> getBooleanCellValue() ? "TRUE" : "FALSE";
+            case ERROR -> ErrorEval.getText(getErrorCellValue());
+            case FORMULA -> getCellFormula();
+            case NUMERIC -> {
                 if (DateUtil.isCellDateFormatted(this)) {
                     DataFormatter df = new DataFormatter();
                     df.setUseCachedValuesForFormulaCells(true);
-                    return df.formatCellValue(this);
+                    yield df.formatCellValue(this);
                 }
-                return Double.toString(getNumericCellValue());
-            case STRING:
-                return getRichStringCellValue().toString();
-            default:
-                return "Unknown Cell Type: " + getCellType();
-        }
+                yield Double.toString(getNumericCellValue());
+            }
+            case STRING -> getRichStringCellValue().toString();
+            default -> "Unknown Cell Type: " + getCellType();
+        };
     }
 
     /*package*/ void removeProperty(int type)
@@ -980,21 +975,17 @@ public class SXSSFCell extends CellBase {
             cellType = getCachedFormulaResultType();
         }
 
-        switch (cellType) {
-            case BOOLEAN:
-                return getBooleanCellValue();
-            case STRING:
+        return switch (cellType) {
+            case BOOLEAN -> getBooleanCellValue();
+            case STRING -> {
 
                 String text = getStringCellValue();
-                return Boolean.parseBoolean(text);
-            case NUMERIC:
-                return getNumericCellValue() != 0;
-            case ERROR:
-            case BLANK:
-                return false;
-            default:
-                throw new IllegalStateException("Unexpected cell type (" + 
cellType + ")");
-        }
+                yield Boolean.parseBoolean(text);
+            }
+            case NUMERIC -> getNumericCellValue() != 0;
+            case ERROR, BLANK -> false;
+            default -> throw new IllegalStateException("Unexpected cell type 
(" + cellType + ")");
+        };
 
     }
     private String convertCellValueToString() {
@@ -1002,29 +993,26 @@ public class SXSSFCell extends CellBase {
         return convertCellValueToString(cellType);
     }
     private String convertCellValueToString(CellType cellType) {
-        switch (cellType) {
-            case BLANK:
-                return "";
-            case BOOLEAN:
-                return getBooleanCellValue() ? "TRUE" : "FALSE";
-            case STRING:
-                return getStringCellValue();
-            case NUMERIC:
-                return Double.toString( getNumericCellValue() );
-            case ERROR:
+        return switch (cellType) {
+            case BLANK -> "";
+            case BOOLEAN -> getBooleanCellValue() ? "TRUE" : "FALSE";
+            case STRING -> getStringCellValue();
+            case NUMERIC -> Double.toString(getNumericCellValue());
+            case ERROR -> {
                 byte errVal = getErrorCellValue();
-                return FormulaError.forInt(errVal).getString();
-            case FORMULA:
+                yield FormulaError.forInt(errVal).getString();
+            }
+            case FORMULA -> {
                 if (_value != null) {
-                    FormulaValue fv = (FormulaValue)_value;
+                    FormulaValue fv = (FormulaValue) _value;
                     if (fv.getFormulaType() != CellType.FORMULA) {
-                        return convertCellValueToString(fv.getFormulaType());
+                        yield convertCellValueToString(fv.getFormulaType());
                     }
                 }
-                return "";
-            default:
-                throw new IllegalStateException("Unexpected cell type (" + 
cellType + ")");
-        }
+                yield "";
+            }
+            default -> throw new IllegalStateException("Unexpected cell type 
(" + cellType + ")");
+        };
     }
 
 //END OF COPIED CODE
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFRow.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFRow.java
index 0a3bb81b25..ad0702e700 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFRow.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFRow.java
@@ -239,17 +239,15 @@ public class SXSSFRow implements Row, Comparable<SXSSFRow>
         checkBounds(cellnum);
 
         final SXSSFCell cell = _cells.get(cellnum);
-        switch (policy) {
-            case RETURN_NULL_AND_BLANK:
-                return cell;
-            case RETURN_BLANK_AS_NULL:
+        return switch (policy) {
+            case RETURN_NULL_AND_BLANK -> cell;
+            case RETURN_BLANK_AS_NULL -> {
                 boolean isBlank = (cell != null && cell.getCellType() == 
CellType.BLANK);
-                return (isBlank) ? null : cell;
-            case CREATE_NULL_AS_BLANK:
-                return (cell == null) ? createCell(cellnum, CellType.BLANK) : 
cell;
-            default:
-                throw new IllegalArgumentException("Illegal policy " + policy);
-        }
+                yield (isBlank) ? null : cell;
+            }
+            case CREATE_NULL_AS_BLANK -> (cell == null) ? createCell(cellnum, 
CellType.BLANK) : cell;
+            default -> throw new IllegalArgumentException("Illegal policy " + 
policy);
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFCell.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFCell.java
index d0f56ed0d8..30b5138af2 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFCell.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFCell.java
@@ -696,28 +696,24 @@ public final class XSSFCell extends CellBase {
      * Detect cell type based on the "t" attribute of the CTCell bean
      */
     private CellType getBaseCellType(boolean blankCells) {
-        switch (_cell.getT().intValue()) {
-            case STCellType.INT_B:
-                return CellType.BOOLEAN;
-            case STCellType.INT_N:
+        return switch (_cell.getT().intValue()) {
+            case STCellType.INT_B -> CellType.BOOLEAN;
+            case STCellType.INT_N -> {
                 if (!_cell.isSetV() && blankCells) {
                     // ooxml does have a separate cell type of 'blank'.  A 
blank cell gets encoded as
                     // (either not present or) a numeric cell with no value 
set.
                     // The formula evaluator (and perhaps other clients of 
this interface) needs to
                     // distinguish blank values which sometimes get translated 
into zero and sometimes
                     // empty string, depending on context
-                    return CellType.BLANK;
+                    yield CellType.BLANK;
                 }
-                return CellType.NUMERIC;
-            case STCellType.INT_E:
-                return CellType.ERROR;
-            case STCellType.INT_S: // String is in shared strings
-            case STCellType.INT_INLINE_STR: // String is inline in cell
-            case STCellType.INT_STR:
-                return CellType.STRING;
-            default:
-                throw new IllegalStateException("Illegal cell type: " + 
this._cell.getT());
-        }
+                yield CellType.NUMERIC;
+            }
+            case STCellType.INT_E -> CellType.ERROR; // String is in shared 
strings
+            // String is inline in cell
+            case STCellType.INT_S, STCellType.INT_INLINE_STR, 
STCellType.INT_STR -> CellType.STRING;
+            default -> throw new IllegalStateException("Illegal cell type: " + 
this._cell.getT());
+        };
     }
 
     /**
@@ -953,27 +949,22 @@ public final class XSSFCell extends CellBase {
      */
     @Override
     public String toString() {
-        switch (getCellType()) {
-            case NUMERIC:
+        return switch (getCellType()) {
+            case NUMERIC -> {
                 if (DateUtil.isCellDateFormatted(this)) {
                     DataFormatter df = new DataFormatter();
                     df.setUseCachedValuesForFormulaCells(true);
-                    return df.formatCellValue(this);
+                    yield df.formatCellValue(this);
                 }
-                return Double.toString(getNumericCellValue());
-            case STRING:
-                return getRichStringCellValue().toString();
-            case FORMULA:
-                return getCellFormula();
-            case BLANK:
-                return "";
-            case BOOLEAN:
-                return getBooleanCellValue() ? TRUE : FALSE;
-            case ERROR:
-                return ErrorEval.getText(getErrorCellValue());
-            default:
-                return "Unknown Cell Type: " + getCellType();
-        }
+                yield Double.toString(getNumericCellValue());
+            }
+            case STRING -> getRichStringCellValue().toString();
+            case FORMULA -> getCellFormula();
+            case BLANK -> "";
+            case BOOLEAN -> getBooleanCellValue() ? TRUE : FALSE;
+            case ERROR -> ErrorEval.getText(getErrorCellValue());
+            default -> "Unknown Cell Type: " + getCellType();
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java
index 3da88b42ae..fcca1989cb 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java
@@ -535,20 +535,12 @@ public final class XSSFDrawing extends POIXMLDocumentPart 
implements Drawing<XSS
         ctAnchor.addNewClientData();
         anchor.setTo(ctAnchor.getTo());
         anchor.setFrom(ctAnchor.getFrom());
-        STEditAs.Enum editAs;
-        switch (anchor.getAnchorType()) {
-        case DONT_MOVE_AND_RESIZE:
-            editAs = STEditAs.ABSOLUTE;
-            break;
-        case MOVE_AND_RESIZE:
-            editAs = STEditAs.TWO_CELL;
-            break;
-        case MOVE_DONT_RESIZE:
-            editAs = STEditAs.ONE_CELL;
-            break;
-        default:
-            editAs = STEditAs.ONE_CELL;
-        }
+        STEditAs.Enum editAs = switch (anchor.getAnchorType()) {
+            case DONT_MOVE_AND_RESIZE -> STEditAs.ABSOLUTE;
+            case MOVE_AND_RESIZE -> STEditAs.TWO_CELL;
+            case MOVE_DONT_RESIZE -> STEditAs.ONE_CELL;
+            default -> STEditAs.ONE_CELL;
+        };
         ctAnchor.setEditAs(editAs);
         return ctAnchor;
     }
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFFont.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFFont.java
index f2bc4fa6b8..c5821ec875 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFFont.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFFont.java
@@ -274,16 +274,12 @@ public class XSSFFont implements Font {
             return Font.SS_NONE;
         }
         int val = vAlign.getVal().intValue();
-        switch (val) {
-            case STVerticalAlignRun.INT_BASELINE:
-                return Font.SS_NONE;
-            case STVerticalAlignRun.INT_SUBSCRIPT:
-                return Font.SS_SUB;
-            case STVerticalAlignRun.INT_SUPERSCRIPT:
-                return Font.SS_SUPER;
-            default:
-                throw new POIXMLException("Wrong offset value " + val);
-        }
+        return switch (val) {
+            case STVerticalAlignRun.INT_BASELINE -> Font.SS_NONE;
+            case STVerticalAlignRun.INT_SUBSCRIPT -> Font.SS_SUB;
+            case STVerticalAlignRun.INT_SUPERSCRIPT -> Font.SS_SUPER;
+            default -> throw new POIXMLException("Wrong offset value " + val);
+        };
     }
 
     /**
diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java
index 83d421aa5a..5f08082c3a 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java
@@ -283,17 +283,15 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
         // Performance optimization for bug 57840: explicit boxing is slightly 
faster than auto-unboxing, though may use more memory
         final Integer colI = Integer.valueOf(cellnum); // NOSONAR
         XSSFCell cell = _cells.get(colI);
-        switch (policy) {
-            case RETURN_NULL_AND_BLANK:
-                return cell;
-            case RETURN_BLANK_AS_NULL:
+        return switch (policy) {
+            case RETURN_NULL_AND_BLANK -> cell;
+            case RETURN_BLANK_AS_NULL -> {
                 boolean isBlank = (cell != null && cell.getCellType() == 
CellType.BLANK);
-                return (isBlank) ? null : cell;
-            case CREATE_NULL_AS_BLANK:
-                return (cell == null) ? createCell(cellnum, CellType.BLANK) : 
cell;
-            default:
-                throw new IllegalArgumentException("Illegal policy " + policy);
-        }
+                yield (isBlank) ? null : cell;
+            }
+            case CREATE_NULL_AS_BLANK -> (cell == null) ? createCell(cellnum, 
CellType.BLANK) : cell;
+            default -> throw new IllegalArgumentException("Illegal policy " + 
policy);
+        };
     }
 
     /**
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
index 98f06ada70..1ed7115df2 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
@@ -805,22 +805,12 @@ public class XSSFSheet extends POIXMLDocumentPart 
implements Sheet, OoxmlSheetEx
         if (xSplitPos > 0 || ySplitPos > 0) {
             final CTPane pane = getPane(true);
             pane.setState(STPaneState.SPLIT);
-            STPane.Enum stPaneEnum;
-            switch (activePane) {
-                case LOWER_RIGHT:
-                    stPaneEnum = STPane.BOTTOM_RIGHT;
-                    break;
-                case UPPER_RIGHT:
-                    stPaneEnum = STPane.TOP_RIGHT;
-                    break;
-                case LOWER_LEFT:
-                    stPaneEnum = STPane.BOTTOM_LEFT;
-                    break;
-                case UPPER_LEFT:
-                default:
-                    stPaneEnum = STPane.TOP_LEFT;
-                    break;
-            }
+            STPane.Enum stPaneEnum = switch (activePane) {
+                case LOWER_RIGHT -> STPane.BOTTOM_RIGHT;
+                case UPPER_RIGHT -> STPane.TOP_RIGHT;
+                case LOWER_LEFT -> STPane.BOTTOM_LEFT;
+                default -> STPane.TOP_LEFT;
+            };
             pane.setActivePane(stPaneEnum);
         }
     }
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java
 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java
index 979250173f..70186da30a 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java
@@ -84,18 +84,17 @@ public class XSSFSheetConditionalFormatting implements 
SheetConditionalFormattin
         cfRule.addFormula(formula1);
         if(formula2 != null) cfRule.addFormula(formula2);
         cfRule.setType(STCfType.CELL_IS);
-        STConditionalFormattingOperator.Enum operator;
-        switch (comparisonOperation){
-            case ComparisonOperator.BETWEEN: operator = 
STConditionalFormattingOperator.BETWEEN; break;
-            case ComparisonOperator.NOT_BETWEEN: operator = 
STConditionalFormattingOperator.NOT_BETWEEN; break;
-            case ComparisonOperator.LT: operator = 
STConditionalFormattingOperator.LESS_THAN; break;
-            case ComparisonOperator.LE: operator = 
STConditionalFormattingOperator.LESS_THAN_OR_EQUAL; break;
-            case ComparisonOperator.GT: operator = 
STConditionalFormattingOperator.GREATER_THAN; break;
-            case ComparisonOperator.GE: operator = 
STConditionalFormattingOperator.GREATER_THAN_OR_EQUAL; break;
-            case ComparisonOperator.EQUAL: operator = 
STConditionalFormattingOperator.EQUAL; break;
-            case ComparisonOperator.NOT_EQUAL: operator = 
STConditionalFormattingOperator.NOT_EQUAL; break;
-            default: throw new IllegalArgumentException("Unknown comparison 
operator: " + comparisonOperation);
-        }
+        STConditionalFormattingOperator.Enum operator = switch 
(comparisonOperation) {
+            case ComparisonOperator.BETWEEN -> 
STConditionalFormattingOperator.BETWEEN;
+            case ComparisonOperator.NOT_BETWEEN -> 
STConditionalFormattingOperator.NOT_BETWEEN;
+            case ComparisonOperator.LT -> 
STConditionalFormattingOperator.LESS_THAN;
+            case ComparisonOperator.LE -> 
STConditionalFormattingOperator.LESS_THAN_OR_EQUAL;
+            case ComparisonOperator.GT -> 
STConditionalFormattingOperator.GREATER_THAN;
+            case ComparisonOperator.GE -> 
STConditionalFormattingOperator.GREATER_THAN_OR_EQUAL;
+            case ComparisonOperator.EQUAL -> 
STConditionalFormattingOperator.EQUAL;
+            case ComparisonOperator.NOT_EQUAL -> 
STConditionalFormattingOperator.NOT_EQUAL;
+            default -> throw new IllegalArgumentException("Unknown comparison 
operator: " + comparisonOperation);
+        };
         cfRule.setOperator(operator);
 
         return rule;
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSignatureLine.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSignatureLine.java
index 99a6ddd58b..625a46a961 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSignatureLine.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSignatureLine.java
@@ -103,31 +103,19 @@ public class XSSFSignatureLine extends SignatureLine {
 
 
     private static POIXMLRelation mapType(PictureType type) throws 
InvalidFormatException {
-        switch (type) {
-            case BMP:
-                return XSSFRelation.IMAGE_BMP;
-            case DIB:
-                return XSSFRelation.IMAGE_DIB;
-            case EMF:
-                return XSSFRelation.IMAGE_EMF;
-            case EPS:
-                return XSSFRelation.IMAGE_EPS;
-            case GIF:
-                return XSSFRelation.IMAGE_GIF;
-            case JPEG:
-                return XSSFRelation.IMAGE_JPEG;
-            case PICT:
-                return XSSFRelation.IMAGE_PICT;
-            case PNG:
-                return XSSFRelation.IMAGE_PNG;
-            case TIFF:
-                return XSSFRelation.IMAGE_TIFF;
-            case WMF:
-                return XSSFRelation.IMAGE_WMF;
-            case WPG:
-                return XSSFRelation.IMAGE_WPG;
-            default:
-                throw new InvalidFormatException("Unsupported picture format 
"+type);
-        }
+        return switch (type) {
+            case BMP -> XSSFRelation.IMAGE_BMP;
+            case DIB -> XSSFRelation.IMAGE_DIB;
+            case EMF -> XSSFRelation.IMAGE_EMF;
+            case EPS -> XSSFRelation.IMAGE_EPS;
+            case GIF -> XSSFRelation.IMAGE_GIF;
+            case JPEG -> XSSFRelation.IMAGE_JPEG;
+            case PICT -> XSSFRelation.IMAGE_PICT;
+            case PNG -> XSSFRelation.IMAGE_PNG;
+            case TIFF -> XSSFRelation.IMAGE_TIFF;
+            case WMF -> XSSFRelation.IMAGE_WMF;
+            case WPG -> XSSFRelation.IMAGE_WPG;
+            default -> throw new InvalidFormatException("Unsupported picture 
format " + type);
+        };
     }
 }
\ No newline at end of file
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java 
b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java
index 73b5efb217..6c01a43b94 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java
@@ -234,39 +234,38 @@ public class XWPFSettings extends POIXMLDocumentPart {
                 hashAlgo = HashAlgorithm.sha1;
             }
 
-            switch (hashAlgo) {
-                case md2:
+            sid = switch (hashAlgo) {
+                case md2 -> {
                     providerType = STCryptProv.RSA_FULL;
-                    sid = 1;
-                    break;
-                case md4:
+                    yield 1;
+                }
+                case md4 -> {
                     providerType = STCryptProv.RSA_FULL;
-                    sid = 2;
-                    break;
-                case md5:
+                    yield 2;
+                }
+                case md5 -> {
                     providerType = STCryptProv.RSA_FULL;
-                    sid = 3;
-                    break;
-                case sha1:
+                    yield 3;
+                }
+                case sha1 -> {
                     providerType = STCryptProv.RSA_FULL;
-                    sid = 4;
-                    break;
-                case sha256:
+                    yield 4;
+                }
+                case sha256 -> {
                     providerType = STCryptProv.RSA_AES;
-                    sid = 12;
-                    break;
-                case sha384:
+                    yield 12;
+                }
+                case sha384 -> {
                     providerType = STCryptProv.RSA_AES;
-                    sid = 13;
-                    break;
-                case sha512:
+                    yield 13;
+                }
+                case sha512 -> {
                     providerType = STCryptProv.RSA_AES;
-                    sid = 14;
-                    break;
-                default:
-                    throw new EncryptedDocumentException
-                            ("Hash algorithm '" + hashAlgo + "' is not 
supported for document write protection.");
-            }
+                    yield 14;
+                }
+                default -> throw new EncryptedDocumentException
+                        ("Hash algorithm '" + hashAlgo + "' is not supported 
for document write protection.");
+            };
 
 
             byte[] salt = RandomSingleton.getInstance().generateSeed(16);
diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java 
b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
index a549fd78ce..ed87e35837 100644
--- 
a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
+++ 
b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
@@ -62,33 +62,20 @@ public class XWPFSignatureLine extends SignatureLine {
     }
 
     private static PictureType 
mapType(org.apache.poi.common.usermodel.PictureType type) throws 
InvalidFormatException {
-        switch (type) {
-            case BMP:
-                return PictureType.BMP;
-            case DIB:
-                return PictureType.DIB;
-            case EMF:
-                return PictureType.EMF;
-            case EPS:
-                return PictureType.EPS;
-            case GIF:
-                return PictureType.GIF;
-            case JPEG:
-                return PictureType.JPEG;
-            case PICT:
-                return PictureType.PICT;
-            case PNG:
-                return PictureType.PNG;
-            case TIFF:
-                return PictureType.TIFF;
-            case WMF:
-                return PictureType.WMF;
-            case WPG:
-                return PictureType.WPG;
-            case WDP:
-                return PictureType.WDP;
-            default:
-                throw new InvalidFormatException("Unsupported picture format 
"+type);
-        }
+        return switch (type) {
+            case BMP -> PictureType.BMP;
+            case DIB -> PictureType.DIB;
+            case EMF -> PictureType.EMF;
+            case EPS -> PictureType.EPS;
+            case GIF -> PictureType.GIF;
+            case JPEG -> PictureType.JPEG;
+            case PICT -> PictureType.PICT;
+            case PNG -> PictureType.PNG;
+            case TIFF -> PictureType.TIFF;
+            case WMF -> PictureType.WMF;
+            case WPG -> PictureType.WPG;
+            case WDP -> PictureType.WDP;
+            default -> throw new InvalidFormatException("Unsupported picture 
format " + type);
+        };
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to