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

asf-gitbox-commits pushed a commit to branch CAY-2935
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 37ca935988daaff718a1985ee573087e28d74ab9
Author: Andrus Adamchik <[email protected]>
AuthorDate: Thu May 7 13:31:40 2026 -0400

    CAY-2935 Upgrade Cayenne 5.0 to Java 21
    
    syntax upgrade - Modeler instanceof
---
 .../modeler/project/ProjectNavigationHistory.java  |  32 +++---
 .../cayenne/modeler/project/ProjectPrefs.java      |  24 ++---
 .../apache/cayenne/modeler/toolkit/Renderers.java  |  18 ++--
 .../cayenne/modeler/toolkit/border/TopBorder.java  |   3 +-
 .../modeler/toolkit/tree/EntityTreeModel.java      |   8 +-
 .../org/apache/cayenne/modeler/ui/MainToolBar.java |   8 +-
 .../cayenne/modeler/ui/action/FindAction.java      |   8 +-
 .../datamap/cgen/CgenArtefactSelectorPanel.java    |  16 +--
 .../editor/datamap/dbimport/DbImportTree.java      |  12 +--
 .../datamap/dbimport/action/DeleteNodeAction.java  |  12 +--
 .../editor/dbentity/main/PKDBGeneratorPanel.java   |   6 +-
 .../modeler/ui/project/tree/ProjectTree.java       |  42 ++++----
 .../ui/project/validator/AttributeErrorMsg.java    |  12 +--
 .../ui/project/validator/RelationshipErrorMsg.java |  12 +--
 .../cayenne/modeler/undo/CayenneUndoManager.java   |   6 +-
 .../cayenne/modeler/undo/PasteUndoableEdit.java    | 110 +++++++++------------
 .../apache/cayenne/wocompat/EOModelProcessor.java  |  12 +--
 .../wocompat/PropertyListSerialization.java        |   6 +-
 18 files changed, 157 insertions(+), 190 deletions(-)

diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectNavigationHistory.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectNavigationHistory.java
index 84787733b..9fd37adb3 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectNavigationHistory.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectNavigationHistory.java
@@ -96,22 +96,22 @@ public class ProjectNavigationHistory {
     }
 
     private void replay(ProjectSession session, DisplayEvent e) {
-        if (e instanceof ObjEntityDisplayEvent) {
-            session.displayObjEntity((ObjEntityDisplayEvent) e);
-        } else if (e instanceof DbEntityDisplayEvent) {
-            session.displayDbEntity((DbEntityDisplayEvent) e);
-        } else if (e instanceof EmbeddableDisplayEvent) {
-            session.displayEmbeddable((EmbeddableDisplayEvent) e);
-        } else if (e instanceof ProcedureDisplayEvent) {
-            session.displayProcedure((ProcedureDisplayEvent) e);
-        } else if (e instanceof QueryDisplayEvent) {
-            session.displayQuery((QueryDisplayEvent) e);
-        } else if (e instanceof DataMapDisplayEvent) {
-            session.displayDataMap((DataMapDisplayEvent) e);
-        } else if (e instanceof DataNodeDisplayEvent) {
-            session.displayDataNode((DataNodeDisplayEvent) e);
-        } else if (e instanceof DomainDisplayEvent) {
-            session.displayDomain((DomainDisplayEvent) e);
+        if (e instanceof ObjEntityDisplayEvent oe) {
+            session.displayObjEntity(oe);
+        } else if (e instanceof DbEntityDisplayEvent de) {
+            session.displayDbEntity(de);
+        } else if (e instanceof EmbeddableDisplayEvent ee) {
+            session.displayEmbeddable(ee);
+        } else if (e instanceof ProcedureDisplayEvent pe) {
+            session.displayProcedure(pe);
+        } else if (e instanceof QueryDisplayEvent qe) {
+            session.displayQuery(qe);
+        } else if (e instanceof DataMapDisplayEvent dme) {
+            session.displayDataMap(dme);
+        } else if (e instanceof DataNodeDisplayEvent dne) {
+            session.displayDataNode(dne);
+        } else if (e instanceof DomainDisplayEvent doe) {
+            session.displayDomain(doe);
         }
     }
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectPrefs.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectPrefs.java
index 038679ec0..ef63ab6a1 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectPrefs.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectPrefs.java
@@ -714,18 +714,18 @@ public final class ProjectPrefs extends PreferenceAdapter 
{
     }
 
     private static String nameOf(ConfigurationNode object) {
-        if (object instanceof CayenneMapEntry) {
-            return ((CayenneMapEntry) object).getName();
-        } else if (object instanceof DataChannelDescriptor) {
-            return ((DataChannelDescriptor) object).getName();
-        } else if (object instanceof DataNodeDescriptor) {
-            return ((DataNodeDescriptor) object).getName();
-        } else if (object instanceof DataMap) {
-            return ((DataMap) object).getName();
-        } else if (object instanceof Embeddable) {
-            return ((Embeddable) object).getClassName();
-        } else if (object instanceof QueryDescriptor) {
-            return ((QueryDescriptor) object).getName();
+        if (object instanceof CayenneMapEntry cme) {
+            return cme.getName();
+        } else if (object instanceof DataChannelDescriptor dcd) {
+            return dcd.getName();
+        } else if (object instanceof DataNodeDescriptor dnd) {
+            return dnd.getName();
+        } else if (object instanceof DataMap dm) {
+            return dm.getName();
+        } else if (object instanceof Embeddable e) {
+            return e.getClassName();
+        } else if (object instanceof QueryDescriptor qd) {
+            return qd.getName();
         }
         return "";
     }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/Renderers.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/Renderers.java
index b459b8815..cb63960d5 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/Renderers.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/Renderers.java
@@ -81,12 +81,10 @@ public final class Renderers {
      * Converts non-String Object used in renderers (currently CayenneMapEntry 
instances only) to String
      */
     public static String asString(Object obj, MappingNamespace namespace) {
-        if (obj instanceof CayenneMapEntry) {
-            CayenneMapEntry mapObject = (CayenneMapEntry) obj;
+        if (obj instanceof CayenneMapEntry mapObject) {
             String label = mapObject.getName();
 
-            if (mapObject instanceof Entity) {
-                Entity<?, ?, ?> entity = (Entity<?, ?, ?>) mapObject;
+            if (mapObject instanceof Entity<?, ?, ?> entity) {
 
                 DataMap dataMap = entity.getDataMap();
                 if (dataMap != null && dataMap != namespace) {
@@ -95,8 +93,8 @@ public final class Renderers {
             }
 
             return label;
-        } else if (obj instanceof DataMap) {
-            return ((DataMap) obj).getName();
+        } else if (obj instanceof DataMap dm) {
+            return dm.getName();
         }
 
         return obj == null ? null : String.valueOf(obj);
@@ -105,10 +103,10 @@ public final class Renderers {
     public static String asString(Object object) {
         if (object == null) {
             return null;
-        } else if (object instanceof CayenneMapEntry) {
-            return ((CayenneMapEntry) object).getName();
-        } else if (object instanceof String) {
-            return (String) object;
+        } else if (object instanceof CayenneMapEntry cme) {
+            return cme.getName();
+        } else if (object instanceof String s) {
+            return s;
         } else {
             try {
                 // use reflection
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/border/TopBorder.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/border/TopBorder.java
index e962c2e70..d1983640d 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/border/TopBorder.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/border/TopBorder.java
@@ -61,8 +61,7 @@ public class TopBorder extends AbstractBorder {
 
     @Override
     public void paintBorder(Component c, Graphics g, int x, int y, int width, 
int height) {
-        if ((this.thickness > 0) && (g instanceof Graphics2D)) {
-            Graphics2D g2d = (Graphics2D) g;
+        if ((this.thickness > 0) && (g instanceof Graphics2D g2d)) {
 
             Color oldColor = g2d.getColor();
             g2d.setColor(color);
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java
index c6504538b..f225fa4f4 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java
@@ -148,10 +148,10 @@ public class EntityTreeModel implements TreeModel {
     }
 
     private Entity<?,?,?> entityForNonLeafNode(Object node) {
-        if (node instanceof Entity) {
-            return (Entity<?,?,?>) node;
-        } else if (node instanceof Relationship) {
-            return ((Relationship<?,?,?>) node).getTargetEntity();
+        if (node instanceof Entity<?,?,?> e) {
+            return e;
+        } else if (node instanceof Relationship<?,?,?> r) {
+            return r.getTargetEntity();
         }
 
         String className = (node != null) ? node.getClass().getName() : "null";
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainToolBar.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainToolBar.java
index ff13f7799..a72076768 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainToolBar.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainToolBar.java
@@ -113,16 +113,16 @@ class MainToolBar extends AppToolBar {
     @Override
     public void setBorder(Border b) {
         Object border = UIManager.get("MainToolBar.border");
-        if (border instanceof Border) {
-            super.setBorder((Border) border);
+        if (border instanceof Border uiBorder) {
+            super.setBorder(uiBorder);
         }
     }
 
     @Override
     public void setBackground(Color bg) {
         Object background = UIManager.get("MainToolBar.background");
-        if (background instanceof Color) {
-            super.setBackground((Color) background);
+        if (background instanceof Color c) {
+            super.setBackground(c);
         }
     }
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/FindAction.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/FindAction.java
index e420d0061..0003a16b4 100755
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/FindAction.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/FindAction.java
@@ -335,13 +335,13 @@ public class FindAction extends AppAction {
         DataMap map = entity.getDataMap();
         buildAndSelectTreePath(map, entity, projectView);
 
-        if (entity instanceof ObjEntity) {
+        if (entity instanceof ObjEntity oe) {
             ObjEntityDisplayEvent event = new ObjEntityDisplayEvent(
-                    projectView.getProjectTreeView(), domain, map, (ObjEntity) 
entity, true, false);
+                    projectView.getProjectTreeView(), domain, map, oe, true, 
false);
             session.displayObjEntity(event);
-        } else if (entity instanceof DbEntity) {
+        } else if (entity instanceof DbEntity de) {
             DbEntityDisplayEvent event = new DbEntityDisplayEvent(
-                    projectView.getProjectTreeView(), domain, map, (DbEntity) 
entity, true, false);
+                    projectView.getProjectTreeView(), domain, map, de, true, 
false);
             session.displayDbEntity(event);
         }
     }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/CgenArtefactSelectorPanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/CgenArtefactSelectorPanel.java
index 75f28d538..7fd7a5ea9 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/CgenArtefactSelectorPanel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/CgenArtefactSelectorPanel.java
@@ -178,10 +178,10 @@ public class CgenArtefactSelectorPanel extends JPanel {
 
     public JLabel getProblem(Object obj) {
         String name = null;
-        if (obj instanceof ObjEntity) {
-            name = ((ObjEntity) obj).getName();
-        } else if (obj instanceof Embeddable) {
-            name = ((Embeddable) obj).getClassName();
+        if (obj instanceof ObjEntity oe) {
+            name = oe.getName();
+        } else if (obj instanceof Embeddable emb) {
+            name = emb.getClassName();
         }
 
         ValidationFailure validationFailure = null;
@@ -204,11 +204,11 @@ public class CgenArtefactSelectorPanel extends JPanel {
     public JLabel getItemName(Object obj) {
         String className;
         Icon icon;
-        if (obj instanceof Embeddable) {
-            className = ((Embeddable) obj).getClassName();
+        if (obj instanceof Embeddable emb) {
+            className = emb.getClassName();
             icon = IconFactory.iconForObject(new Embeddable());
-        } else if (obj instanceof ObjEntity) {
-            className = ((ObjEntity) obj).getName();
+        } else if (obj instanceof ObjEntity oe) {
+            className = oe.getName();
             icon = IconFactory.iconForObject(new ObjEntity());
         } else {
             className = ((DataMap) obj).getName();
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportTree.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportTree.java
index 1f1181686..92656c61f 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportTree.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportTree.java
@@ -138,8 +138,7 @@ public class DbImportTree extends JTree {
             DbImportTreeNode node = (DbImportTreeNode) parent.getChildAt(i);
             Object userObject = node.getUserObject();
 
-            if (object instanceof Catalog) {
-                Catalog catalog = (Catalog) object;
+            if (object instanceof Catalog catalog) {
                 if (!(userObject instanceof Catalog)) {
                     continue;
                 }
@@ -150,8 +149,7 @@ public class DbImportTree extends JTree {
                 }
             }
 
-            if (object instanceof Schema) {
-                Schema schema = (Schema) object;
+            if (object instanceof Schema schema) {
                 if (!(userObject instanceof Schema)) {
                     continue;
                 }
@@ -162,8 +160,7 @@ public class DbImportTree extends JTree {
                 }
             }
 
-            if (object instanceof IncludeTable) {
-                IncludeTable table = (IncludeTable) object;
+            if (object instanceof IncludeTable table) {
                 if (!(userObject instanceof IncludeTable)) {
                     continue;
                 }
@@ -174,8 +171,7 @@ public class DbImportTree extends JTree {
                 }
             }
 
-            if (object instanceof ExcludeTable) {
-                ExcludeTable table = (ExcludeTable) object;
+            if (object instanceof ExcludeTable table) {
                 if (!(userObject instanceof ExcludeTable)) {
                     continue;
                 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DeleteNodeAction.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DeleteNodeAction.java
index ffe3a1eb1..0d0d6ab62 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DeleteNodeAction.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DeleteNodeAction.java
@@ -134,17 +134,13 @@ public class DeleteNodeAction extends 
TreeManipulationAction {
                 parentElement = selectedElement.getParent();
                 if (parentElement != null) {
                     Object parentUserObject = parentElement.getUserObject();
-                    if (parentUserObject instanceof ReverseEngineering) {
-                        ReverseEngineering reverseEngineering = 
(ReverseEngineering) parentUserObject;
+                    if (parentUserObject instanceof ReverseEngineering 
reverseEngineering) {
                         deleteChilds(reverseEngineering);
-                    } else if (parentUserObject instanceof Catalog) {
-                        Catalog catalog = (Catalog) parentUserObject;
+                    } else if (parentUserObject instanceof Catalog catalog) {
                         deleteChilds(catalog);
-                    } else if (parentUserObject instanceof Schema) {
-                        Schema schema = (Schema) parentUserObject;
+                    } else if (parentUserObject instanceof Schema schema) {
                         deleteChilds(schema);
-                    } else if (parentUserObject instanceof IncludeTable) {
-                        IncludeTable includeTable = (IncludeTable) 
parentUserObject;
+                    } else if (parentUserObject instanceof IncludeTable 
includeTable) {
                         deleteChilds(includeTable);
                     }
                 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKDBGeneratorPanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKDBGeneratorPanel.java
index e07d6a4db..90ad088ef 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKDBGeneratorPanel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKDBGeneratorPanel.java
@@ -113,10 +113,9 @@ public class PKDBGeneratorPanel extends PKGeneratorPanel {
             // listen for selection changes of the new entity
             attributes.addItemListener(e -> {
                 Object item = e.getItem();
-                if (item instanceof DbAttribute) {
+                if (item instanceof DbAttribute a) {
 
                     boolean generated = e.getStateChange() == 
ItemEvent.SELECTED;
-                    DbAttribute a = (DbAttribute) item;
 
                     if (a.isGenerated() != generated) {
                         a.setGenerated(generated);
@@ -139,8 +138,7 @@ public class PKDBGeneratorPanel extends PKGeneratorPanel {
                 boolean isSelected,
                 boolean cellHasFocus) {
 
-            if (value instanceof DbAttribute) {
-                DbAttribute a = (DbAttribute) value;
+            if (value instanceof DbAttribute a) {
                 String type = TypesMapping.getSqlNameByType(a.getType());
                 value = a.getName() + " (" + (type != null ? type : "?") + ")";
             }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java
index a1b1c5d4f..1c84c2ae7 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java
@@ -204,8 +204,8 @@ public class ProjectTree extends JTree
             boolean hasFocus) {
 
         // unwrap
-        while (value instanceof DefaultMutableTreeNode) {
-            value = ((DefaultMutableTreeNode) value).getUserObject();
+        while (value instanceof DefaultMutableTreeNode node) {
+            value = node.getUserObject();
         }
 
         // String - just return it
@@ -214,8 +214,8 @@ public class ProjectTree extends JTree
         }
 
         // Project - return the name of top file
-        if (value instanceof Project) {
-            Resource resource = ((Project) value).getConfigurationResource();
+        if (value instanceof Project p) {
+            Resource resource = p.getConfigurationResource();
             return (resource != null) ? resource.getURL().getPath() : "";
         }
 
@@ -826,62 +826,62 @@ public class ProjectTree extends JTree
 
         DataChannelDescriptor domain = (DataChannelDescriptor) 
session.project().getRootNode();
         Object obj = data[data.length - 1];
-        if (obj instanceof DataChannelDescriptor) {
-            session.displayDomain(new DomainDisplayEvent(this, 
(DataChannelDescriptor) obj));
-        } else if (obj instanceof DataMap) {
+        if (obj instanceof DataChannelDescriptor dcd) {
+            session.displayDomain(new DomainDisplayEvent(this, dcd));
+        } else if (obj instanceof DataMap dm) {
             if (data.length == 2) {
                 session.displayDataMap(new DataMapDisplayEvent(
                         this,
                         domain,
-                        (DataMap) obj,
+                        dm,
                         (DataNodeDescriptor) data[data.length - 2]));
             } else if (data.length == 1) {
                 session.displayDataMap(new DataMapDisplayEvent(
                         this,
                         domain,
-                        (DataMap) obj));
+                        dm));
             }
-        } else if (obj instanceof DataNodeDescriptor) {
+        } else if (obj instanceof DataNodeDescriptor dnd) {
             if (data.length == 1) {
                 session.displayDataNode(new DataNodeDisplayEvent(
                         this,
                         domain,
-                        (DataNodeDescriptor) obj));
+                        dnd));
             }
-        } else if (obj instanceof ObjEntity) {
+        } else if (obj instanceof ObjEntity oe) {
             session.displayObjEntity(new ObjEntityDisplayEvent(
                     this,
                     domain,
                     (DataMap) data[data.length - 2],
-                    (ObjEntity) obj,
+                    oe,
                     false,
                     true));
-        } else if (obj instanceof DbEntity) {
+        } else if (obj instanceof DbEntity de) {
             session.displayDbEntity(new DbEntityDisplayEvent(
                     this,
                     domain,
                     (DataMap) data[data.length - 2],
-                    (DbEntity) obj,
+                    de,
                     false,
                     true));
-        } else if (obj instanceof Embeddable) {
+        } else if (obj instanceof Embeddable emb) {
             session.displayEmbeddable(new EmbeddableDisplayEvent(
                     this,
                     domain,
                     (DataMap) data[data.length - 2],
-                    (Embeddable) obj));
-        } else if (obj instanceof Procedure) {
+                    emb));
+        } else if (obj instanceof Procedure proc) {
             session.displayProcedure(new ProcedureDisplayEvent(
                     this,
                     domain,
                     (DataMap) data[data.length - 2],
-                    (Procedure) obj));
-        } else if (obj instanceof QueryDescriptor) {
+                    proc));
+        } else if (obj instanceof QueryDescriptor qd) {
             session.displayQuery(new QueryDisplayEvent(
                     this,
                     domain,
                     (DataMap) data[data.length - 2],
-                    (QueryDescriptor) obj));
+                    qd));
         }
 
         scrollPathToVisible(path);
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/AttributeErrorMsg.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/AttributeErrorMsg.java
index f2f3a9610..0f31e3cf5 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/AttributeErrorMsg.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/AttributeErrorMsg.java
@@ -60,12 +60,12 @@ public class AttributeErrorMsg extends 
ValidationDisplayHandler {
     public void displayField(ProjectSession session, JFrame frame) {
         // must first display entity, and then switch to attribute display ..
         // so fire twice
-        if (entity instanceof ObjEntity) {
-            session.displayObjEntity(new ObjEntityDisplayEvent(frame, domain, 
map, (ObjEntity) entity));
-            session.displayObjAttribute(new ObjAttributeDisplayEvent(frame, 
domain, map, (ObjEntity) entity, (ObjAttribute) attribute));
-        } else if (entity instanceof DbEntity) {
-            session.displayDbEntity(new DbEntityDisplayEvent(frame, domain, 
map, (DbEntity) entity));
-            session.displayDbAttribute(new DbAttributeDisplayEvent(frame, 
domain, map, (DbEntity) entity, (DbAttribute) attribute));
+        if (entity instanceof ObjEntity oe) {
+            session.displayObjEntity(new ObjEntityDisplayEvent(frame, domain, 
map, oe));
+            session.displayObjAttribute(new ObjAttributeDisplayEvent(frame, 
domain, map, oe, (ObjAttribute) attribute));
+        } else if (entity instanceof DbEntity de) {
+            session.displayDbEntity(new DbEntityDisplayEvent(frame, domain, 
map, de));
+            session.displayDbAttribute(new DbAttributeDisplayEvent(frame, 
domain, map, de, (DbAttribute) attribute));
         }
     }
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/RelationshipErrorMsg.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/RelationshipErrorMsg.java
index cffe02249..21df2526c 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/RelationshipErrorMsg.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/RelationshipErrorMsg.java
@@ -58,12 +58,12 @@ public class RelationshipErrorMsg extends 
ValidationDisplayHandler {
 
     public void displayField(ProjectSession session, JFrame frame) {
         // must first display entity, and then switch to relationship display 
.. so fire twice
-        if (entity instanceof ObjEntity) {
-            session.displayObjEntity(new ObjEntityDisplayEvent(frame, domain, 
map, (ObjEntity) entity));
-            session.displayObjRelationship(new 
ObjRelationshipDisplayEvent(frame, domain, map, (ObjEntity) entity, 
(ObjRelationship) rel));
-        } else if (entity instanceof DbEntity) {
-            session.displayDbEntity(new DbEntityDisplayEvent(frame, domain, 
map, (DbEntity) entity));
-            session.displayDbRelationship(new 
DbRelationshipDisplayEvent(frame, domain, map, (DbEntity) entity, 
(DbRelationship) rel));
+        if (entity instanceof ObjEntity oe) {
+            session.displayObjEntity(new ObjEntityDisplayEvent(frame, domain, 
map, oe));
+            session.displayObjRelationship(new 
ObjRelationshipDisplayEvent(frame, domain, map, oe, (ObjRelationship) rel));
+        } else if (entity instanceof DbEntity de) {
+            session.displayDbEntity(new DbEntityDisplayEvent(frame, domain, 
map, de));
+            session.displayDbRelationship(new 
DbRelationshipDisplayEvent(frame, domain, map, de, (DbRelationship) rel));
         }
     }
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java
index cecdef36e..d3e5e6117 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java
@@ -53,8 +53,7 @@ public class CayenneUndoManager extends UndoManager {
     public void redo() throws CannotRedoException {
         UndoableEdit e = editToBeRedone();
 
-        if (e instanceof TextCompoundEdit) {
-            TextCompoundEdit edit = (TextCompoundEdit) e;
+        if (e instanceof TextCompoundEdit edit) {
 
             edit.watchCaretPosition();
 
@@ -72,8 +71,7 @@ public class CayenneUndoManager extends UndoManager {
     public void undo() throws CannotUndoException {
         UndoableEdit e = editToBeUndone();
 
-        if (e instanceof TextCompoundEdit) {
-            TextCompoundEdit edit = (TextCompoundEdit) e;
+        if (e instanceof TextCompoundEdit edit) {
 
             edit.watchCaretPosition();
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java
index 029668b0b..da3766fda 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java
@@ -93,82 +93,66 @@ public class PasteUndoableEdit extends CayenneUndoableEdit {
         RemoveProcedureParameterAction rProcedureParamAction = globalActions
                 .getAction(RemoveProcedureParameterAction.class);
 
-        if (content instanceof DataMap) {
+        if (content instanceof DataMap dataMap) {
             if (where instanceof DataChannelDescriptor) {
-                rAction.removeDataMap((DataMap) content);
-            } else if (where instanceof DataNodeDescriptor) {
-                rAction.removeDataMapFromDataNode(
-                        (DataNodeDescriptor) where,
-                        (DataMap) content);
+                rAction.removeDataMap(dataMap);
+            } else if (where instanceof DataNodeDescriptor whereNode) {
+                rAction.removeDataMapFromDataNode(whereNode, dataMap);
             }
         } else if (where instanceof DataMap) {
-            if (content instanceof DbEntity) {
-                rAction.removeDbEntity(map, (DbEntity) content);
-            } else if (content instanceof ObjEntity) {
-                rAction.removeObjEntity(map, (ObjEntity) content);
-            } else if (content instanceof Embeddable) {
-                rAction.removeEmbeddable(map, (Embeddable) content);
-            } else if (content instanceof QueryDescriptor) {
-                rAction.removeQuery(map, (QueryDescriptor) content);
-            } else if (content instanceof Procedure) {
-                rAction.removeProcedure(map, (Procedure) content);
+            if (content instanceof DbEntity dbEntity) {
+                rAction.removeDbEntity(map, dbEntity);
+            } else if (content instanceof ObjEntity objEntity) {
+                rAction.removeObjEntity(map, objEntity);
+            } else if (content instanceof Embeddable embeddable) {
+                rAction.removeEmbeddable(map, embeddable);
+            } else if (content instanceof QueryDescriptor queryDescriptor) {
+                rAction.removeQuery(map, queryDescriptor);
+            } else if (content instanceof Procedure proc) {
+                rAction.removeProcedure(map, proc);
             }
-        } else if (where instanceof DbEntity) {
-            if (content instanceof DbEntity) {
-                rAction.removeDbEntity(map, (DbEntity) content);
-            } else if (content instanceof DbAttribute) {
+        } else if (where instanceof DbEntity dbEntityWhere) {
+            if (content instanceof DbEntity dbEntity) {
+                rAction.removeDbEntity(map, dbEntity);
+            } else if (content instanceof DbAttribute dbAttribute) {
                 rAttributeAction.removeDbAttributes(
                         map,
-                        (DbEntity) where,
-                        new DbAttribute[] {
-                            (DbAttribute) content
-                        });
-            } else if (content instanceof DbRelationship) {
+                        dbEntityWhere,
+                        new DbAttribute[] { dbAttribute });
+            } else if (content instanceof DbRelationship dbRelationship) {
                 rRelationShipAction.removeDbRelationships(
-                        (DbEntity) where,
-                        new DbRelationship[] {
-                            (DbRelationship) content
-                        });
+                        dbEntityWhere,
+                        new DbRelationship[] { dbRelationship });
             }
-        } else if (where instanceof ObjEntity) {
-            if (content instanceof ObjEntity) {
-                rAction.removeObjEntity(map, (ObjEntity) content);
-            } else if (content instanceof ObjAttribute) {
+        } else if (where instanceof ObjEntity objEntityWhere) {
+            if (content instanceof ObjEntity objEntity) {
+                rAction.removeObjEntity(map, objEntity);
+            } else if (content instanceof ObjAttribute objAttribute) {
                 rAttributeAction.removeObjAttributes(
-                        (ObjEntity) where,
-                        new ObjAttribute[] {
-                            (ObjAttribute) content
-                        });
-            } else if (content instanceof ObjRelationship) {
+                        objEntityWhere,
+                        new ObjAttribute[] { objAttribute });
+            } else if (content instanceof ObjRelationship objRelationship) {
                 rRelationShipAction.removeObjRelationships(
-                        (ObjEntity) where,
-                        new ObjRelationship[] {
-                            (ObjRelationship) content
-                        });
-            } else if (content instanceof ObjCallbackMethod) {
-                       ObjCallbackMethod[] methods = new ObjCallbackMethod[] {
-                            (ObjCallbackMethod) content };
-                       for(ObjCallbackMethod callbackMethod : methods) {
-                               rCallbackMethodAction.removeCallbackMethod(
-                                               methods[0].getCallbackType(), 
-                                               callbackMethod.getName());
-                       }
+                        objEntityWhere,
+                        new ObjRelationship[] { objRelationship });
+            } else if (content instanceof ObjCallbackMethod callbackMethod) {
+                rCallbackMethodAction.removeCallbackMethod(
+                        callbackMethod.getCallbackType(),
+                        callbackMethod.getName());
             }
-        } else if (where instanceof Procedure) {
-            final Procedure procedure = (Procedure) where;
-            if (content instanceof ProcedureParameter) {
+        } else if (where instanceof Procedure whereProcedure) {
+            if (content instanceof ProcedureParameter param) {
                 rProcedureParamAction.removeProcedureParameters(
-                        procedure,
-                        new ProcedureParameter[] {
-                            (ProcedureParameter) content
-                        });
+                        whereProcedure,
+                        new ProcedureParameter[] { param });
             }
-        } else if (where instanceof Embeddable) {
-            if (content instanceof Embeddable) {
-                rAction.removeEmbeddable(map, (Embeddable) content);
-            } else if (content instanceof EmbeddableAttribute) {
-                rAttributeAction.removeEmbeddableAttributes((Embeddable) where,
-                        new EmbeddableAttribute[]{(EmbeddableAttribute) 
content});
+        } else if (where instanceof Embeddable embeddableWhere) {
+            if (content instanceof Embeddable embeddable) {
+                rAction.removeEmbeddable(map, embeddable);
+            } else if (content instanceof EmbeddableAttribute 
embeddableAttribute) {
+                rAttributeAction.removeEmbeddableAttributes(
+                        embeddableWhere,
+                        new EmbeddableAttribute[]{ embeddableAttribute });
             }
         }
     }
diff --git 
a/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
 
b/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
index 3947f5714..bb7fca52f 100644
--- 
a/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
+++ 
b/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOModelProcessor.java
@@ -238,9 +238,9 @@ public class EOModelProcessor {
                Object fetchLimit = plistMap.get("fetchLimit");
                if (fetchLimit != null) {
                        try {
-                               if (fetchLimit instanceof Number) {
+                               if (fetchLimit instanceof Number n) {
                                        
descriptor.setProperty(QueryMetadata.FETCH_LIMIT_PROPERTY,
-                                                       
String.valueOf(((Number) fetchLimit).intValue()));
+                                                       
String.valueOf(n.intValue()));
                                } else if (isNumeric(fetchLimit.toString())) {
                                        
descriptor.setProperty(QueryMetadata.FETCH_LIMIT_PROPERTY, 
fetchLimit.toString());
                                }
@@ -293,9 +293,9 @@ public class EOModelProcessor {
                Object fetchLimit = plistMap.get("fetchLimit");
                if (fetchLimit != null) {
                        try {
-                               if (fetchLimit instanceof Number) {
+                               if (fetchLimit instanceof Number n) {
                                        
descriptor.setProperty(QueryMetadata.FETCH_LIMIT_PROPERTY,
-                                                       
String.valueOf(((Number) fetchLimit).intValue()));
+                                                       
String.valueOf(n.intValue()));
                                } else if (isNumeric(fetchLimit.toString())) {
                                        
descriptor.setProperty(QueryMetadata.FETCH_LIMIT_PROPERTY, 
fetchLimit.toString());
                                }
@@ -550,8 +550,8 @@ public class EOModelProcessor {
                }
 
                // per CAY-752, value can be a String or a Number, so handle 
both
-               if (value instanceof Number) {
-                       return ((Number) value).intValue();
+               if (value instanceof Number n) {
+                       return n.intValue();
                } else {
                        try {
                                return Integer.parseInt(value.toString());
diff --git 
a/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/PropertyListSerialization.java
 
b/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/PropertyListSerialization.java
index 655ac07d4..197686bae 100644
--- 
a/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/PropertyListSerialization.java
+++ 
b/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/PropertyListSerialization.java
@@ -120,8 +120,7 @@ public class PropertyListSerialization {
                        return;
                }
 
-               if (plist instanceof Collection) {
-                       Collection list = (Collection) plist;
+               if (plist instanceof Collection list) {
 
                        out.write('\n');
                        out.write(offset);
@@ -153,8 +152,7 @@ public class PropertyListSerialization {
                        out.write('\n');
                        out.write(offset);
                        out.write(')');
-               } else if (plist instanceof Map) {
-                       Map map = (Map) plist;
+               } else if (plist instanceof Map map) {
                        out.write('\n');
                        out.write(offset);
 


Reply via email to