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 c03802b0890d999250c114d571416cae94d2d3ea 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 - switch statements --- .../cayenne/di/spi/DefaultAdhocObjectFactory.java | 84 +++++++++------------- .../upgrade/handlers/UpgradeHandler_V8.java | 24 ++----- .../org/apache/cayenne/ObjectContextStateLog.java | 21 +++--- .../java/org/apache/cayenne/PersistenceState.java | 25 +++---- .../cayenne/access/DataContextDeleteAction.java | 61 +++++++--------- .../org/apache/cayenne/access/ObjectStore.java | 81 ++++++--------------- .../cayenne/configuration/xml/DataMapHandler.java | 52 ++++++-------- .../java/org/apache/cayenne/exp/Expression.java | 70 +++++++----------- .../java/org/apache/cayenne/map/DeleteRule.java | 16 ++--- .../org/apache/cayenne/query/MappedSelect.java | 25 ++++--- 10 files changed, 168 insertions(+), 291 deletions(-) diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java index c50ea0025..22452177b 100644 --- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java +++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java @@ -91,41 +91,30 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory { return Class.forName(className, true, classLoader); } catch (ClassNotFoundException e) { if (!className.endsWith("[]")) { - switch (className) { - case "byte": - return Byte.TYPE; - case "int": - return Integer.TYPE; - case "short": - return Short.TYPE; - case "char": - return Character.TYPE; - case "double": - return Double.TYPE; - case "long": - return Long.TYPE; - case "float": - return Float.TYPE; - case "boolean": - return Boolean.TYPE; - case "void": - return Void.TYPE; - + return switch (className) { + case "byte" -> Byte.TYPE; + case "int" -> Integer.TYPE; + case "short" -> Short.TYPE; + case "char" -> Character.TYPE; + case "double" -> Double.TYPE; + case "long" -> Long.TYPE; + case "float" -> Float.TYPE; + case "boolean" -> Boolean.TYPE; + case "void" -> Void.TYPE; // try inner class often specified with "." instead of $ - default: + default -> { int dot = className.lastIndexOf('.'); if (dot > 0 && dot + 1 < className.length()) { - className = className.substring(0, dot) + "$" + className.substring(dot + 1); + String innerClass = className.substring(0, dot) + "$" + className.substring(dot + 1); try { - return Class.forName(className, true, classLoader); + yield Class.forName(innerClass, true, classLoader); } catch (ClassNotFoundException nestedE) { // ignore, throw the original exception... } } - break; - } - - throw new DIRuntimeException("Invalid class: '%s'", e, className); + throw new DIRuntimeException("Invalid class: '%s'", e, className); + } + }; } if (className.length() < 3) { @@ -135,30 +124,23 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory { // TODO: support for multi-dim arrays className = className.substring(0, className.length() - 2); - switch (className) { - case "byte": - return byte[].class; - case "int": - return int[].class; - case "long": - return long[].class; - case "short": - return short[].class; - case "char": - return char[].class; - case "double": - return double[].class; - case "float": - return float[].class; - case "boolean": - return boolean[].class; - } - - try { - return Class.forName("[L" + className + ";", true, classLoader); - } catch (ClassNotFoundException e1) { - throw new DIRuntimeException("Invalid class: '%s'", e1, className); - } + return switch (className) { + case "byte" -> byte[].class; + case "int" -> int[].class; + case "long" -> long[].class; + case "short" -> short[].class; + case "char" -> char[].class; + case "double" -> double[].class; + case "float" -> float[].class; + case "boolean" -> boolean[].class; + default -> { + try { + yield Class.forName("[L" + className + ";", true, classLoader); + } catch (ClassNotFoundException e1) { + throw new DIRuntimeException("Invalid class: '%s'", e1, className); + } + } + }; } } } diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8.java index c94dc68ec..5ce9328f9 100644 --- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8.java @@ -64,23 +64,13 @@ public class UpgradeHandler_V8 implements UpgradeHandler { continue; } - String queryType; - switch (factory) { - case "org.apache.cayenne.map.SelectQueryBuilder": - queryType = QueryDescriptor.SELECT_QUERY; - break; - case "org.apache.cayenne.map.SQLTemplateBuilder": - queryType = QueryDescriptor.SQL_TEMPLATE; - break; - case "org.apache.cayenne.map.EjbqlBuilder": - queryType = QueryDescriptor.EJBQL_QUERY; - break; - case "org.apache.cayenne.map.ProcedureQueryBuilder": - queryType = QueryDescriptor.PROCEDURE_QUERY; - break; - default: - throw new ConfigurationException("Unknown query factory: " + factory); - } + String queryType = switch (factory) { + case "org.apache.cayenne.map.SelectQueryBuilder" -> QueryDescriptor.SELECT_QUERY; + case "org.apache.cayenne.map.SQLTemplateBuilder" -> QueryDescriptor.SQL_TEMPLATE; + case "org.apache.cayenne.map.EjbqlBuilder" -> QueryDescriptor.EJBQL_QUERY; + case "org.apache.cayenne.map.ProcedureQueryBuilder" -> QueryDescriptor.PROCEDURE_QUERY; + default -> throw new ConfigurationException("Unknown query factory: " + factory); + }; queryElement.setAttribute("type", queryType); queryElement.removeAttribute("factory"); diff --git a/cayenne/src/main/java/org/apache/cayenne/ObjectContextStateLog.java b/cayenne/src/main/java/org/apache/cayenne/ObjectContextStateLog.java index ad3c147ad..de67c2541 100644 --- a/cayenne/src/main/java/org/apache/cayenne/ObjectContextStateLog.java +++ b/cayenne/src/main/java/org/apache/cayenne/ObjectContextStateLog.java @@ -63,14 +63,12 @@ class ObjectContextStateLog implements GraphChangeHandler { if (node instanceof Persistent) { Persistent persistentNode = (Persistent) node; switch (persistentNode.getPersistenceState()) { - case PersistenceState.MODIFIED: - case PersistenceState.NEW: - persistentNode.setPersistenceState(PersistenceState.COMMITTED); - break; - case PersistenceState.DELETED: + case PersistenceState.MODIFIED, PersistenceState.NEW -> + persistentNode.setPersistenceState(PersistenceState.COMMITTED); + case PersistenceState.DELETED -> { deletedIds.add(id); persistentNode.setPersistenceState(PersistenceState.TRANSIENT); - break; + } } } } @@ -91,13 +89,10 @@ class ObjectContextStateLog implements GraphChangeHandler { if (node instanceof Persistent) { Persistent persistentNode = (Persistent) node; switch (persistentNode.getPersistenceState()) { - case PersistenceState.MODIFIED: - case PersistenceState.DELETED: - persistentNode.setPersistenceState(PersistenceState.COMMITTED); - break; - case PersistenceState.NEW: - persistentNode.setPersistenceState(PersistenceState.TRANSIENT); - break; + case PersistenceState.MODIFIED, PersistenceState.DELETED -> + persistentNode.setPersistenceState(PersistenceState.COMMITTED); + case PersistenceState.NEW -> + persistentNode.setPersistenceState(PersistenceState.TRANSIENT); } } } diff --git a/cayenne/src/main/java/org/apache/cayenne/PersistenceState.java b/cayenne/src/main/java/org/apache/cayenne/PersistenceState.java index 972c12ca6..6355bea5e 100644 --- a/cayenne/src/main/java/org/apache/cayenne/PersistenceState.java +++ b/cayenne/src/main/java/org/apache/cayenne/PersistenceState.java @@ -37,22 +37,15 @@ public class PersistenceState { * Returns String label for persistence state. Used for debugging. */ public static String persistenceStateName(int persistenceState) { - switch (persistenceState) { - case PersistenceState.TRANSIENT: - return "transient"; - case PersistenceState.NEW: - return "new"; - case PersistenceState.MODIFIED: - return "modified"; - case PersistenceState.COMMITTED: - return "committed"; - case PersistenceState.HOLLOW: - return "hollow"; - case PersistenceState.DELETED: - return "deleted"; - default: - return "unknown"; - } + return switch (persistenceState) { + case PersistenceState.TRANSIENT -> "transient"; + case PersistenceState.NEW -> "new"; + case PersistenceState.MODIFIED -> "modified"; + case PersistenceState.COMMITTED -> "committed"; + case PersistenceState.HOLLOW -> "hollow"; + case PersistenceState.DELETED -> "deleted"; + default -> "unknown"; + }; } /** diff --git a/cayenne/src/main/java/org/apache/cayenne/access/DataContextDeleteAction.java b/cayenne/src/main/java/org/apache/cayenne/access/DataContextDeleteAction.java index 82708f741..9eb4784da 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/DataContextDeleteAction.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/DataContextDeleteAction.java @@ -176,50 +176,43 @@ class DataContextDeleteAction { // process remaining rules switch (relationship.getDeleteRule()) { - case DeleteRule.NO_ACTION: - break; - case DeleteRule.NULLIFY: + case DeleteRule.NO_ACTION -> { /* nothing to do */ } + case DeleteRule.NULLIFY -> { ArcProperty reverseArc = property.getComplimentaryReverseArc(); + if (reverseArc != null) { + reverseArc.visit(new PropertyVisitor() { - if (reverseArc == null) { - // nothing we can do here - break; - } - - reverseArc.visit(new PropertyVisitor() { - - public boolean visitAttribute(AttributeProperty property) { - return false; - } - - public boolean visitToMany(ToManyProperty property) { - for (Persistent relatedObject : relatedObjects) { - property.removeTarget(relatedObject, object, true); + public boolean visitAttribute(AttributeProperty property) { + return false; } - return false; - } - - public boolean visitToOne(ToOneProperty property) { - // Inverse is to-one - find all related objects and - // nullify the reverse relationship - for (Persistent relatedObject : relatedObjects) { - property.setTarget(relatedObject, null, true); + + public boolean visitToMany(ToManyProperty property) { + for (Persistent relatedObject : relatedObjects) { + property.removeTarget(relatedObject, object, true); + } + return false; } - return false; - } - }); - break; - case DeleteRule.CASCADE: - // Delete all related objects + public boolean visitToOne(ToOneProperty property) { + // Inverse is to-one - find all related objects and + // nullify the reverse relationship + for (Persistent relatedObject : relatedObjects) { + property.setTarget(relatedObject, null, true); + } + return false; + } + }); + } + } + case DeleteRule.CASCADE -> { for (Persistent relatedObject : relatedObjects) { performDelete(relatedObject); } - - break; - default: + } + default -> { object.setPersistenceState(oldState); throw new CayenneRuntimeException("Invalid delete rule %s", relationship.getDeleteRule()); + } } } } diff --git a/cayenne/src/main/java/org/apache/cayenne/access/ObjectStore.java b/cayenne/src/main/java/org/apache/cayenne/access/ObjectStore.java index 372fba389..82e1b3e25 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/ObjectStore.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/ObjectStore.java @@ -346,25 +346,16 @@ public class ObjectStore implements Serializable, SnapshotEventListener, GraphMa Persistent object = it.next(); int objectState = object.getPersistenceState(); switch (objectState) { - case PersistenceState.NEW: + case PersistenceState.NEW -> { it.remove(); - object.setObjectContext(null); object.setObjectId(null); object.setPersistenceState(PersistenceState.TRANSIENT); - break; - case PersistenceState.DELETED: - // Do the same as for modified... deleted is only a persistence state, - // so - // rolling the object back will set the state to committed - case PersistenceState.MODIFIED: - // this will clean any modifications and defer refresh from snapshot - // till the next object accessor is called - object.setPersistenceState(PersistenceState.HOLLOW); - break; - default: - // Transient, committed and hollow need no handling - break; + } + // deleted is only a persistence state, so rolling back sets state to committed + case PersistenceState.DELETED, PersistenceState.MODIFIED -> + object.setPersistenceState(PersistenceState.HOLLOW); + default -> { /* Transient, committed and hollow need no handling */ } } } @@ -421,18 +412,16 @@ public class ObjectStore implements Serializable, SnapshotEventListener, GraphMa Persistent object = objectMap.get(id); switch (object.getPersistenceState()) { - case PersistenceState.DELETED: + case PersistenceState.DELETED -> { objectMap.remove(id); - if(trackedFlattenedPaths != null) { + if (trackedFlattenedPaths != null) { trackedFlattenedPaths.remove(id); } object.setObjectContext(null); object.setPersistenceState(PersistenceState.TRANSIENT); - break; - case PersistenceState.NEW: - case PersistenceState.MODIFIED: - object.setPersistenceState(PersistenceState.COMMITTED); - break; + } + case PersistenceState.NEW, PersistenceState.MODIFIED -> + object.setPersistenceState(PersistenceState.COMMITTED); } } @@ -610,41 +599,29 @@ public class ObjectStore implements Serializable, SnapshotEventListener, GraphMa DataContextDelegate delegate; switch (object.getPersistenceState()) { - case PersistenceState.COMMITTED: - case PersistenceState.HOLLOW: - case PersistenceState.DELETED: - - // consult delegate + case PersistenceState.COMMITTED, PersistenceState.HOLLOW, PersistenceState.DELETED -> { delegate = context.nonNullDelegate(); - if (delegate.shouldProcessDelete(object)) { objectMap.remove(nodeId); changes.remove(nodeId); - if(trackedFlattenedPaths != null) { + if (trackedFlattenedPaths != null) { trackedFlattenedPaths.remove(nodeId); } - // setting DataContext to null will also set state to transient object.setObjectContext(null); delegate.finishedProcessDelete(object); } - - break; - - case PersistenceState.MODIFIED: - - // consult delegate + } + case PersistenceState.MODIFIED -> { delegate = context.nonNullDelegate(); if (delegate.shouldProcessDelete(object)) { object.setPersistenceState(PersistenceState.NEW); changes.remove(nodeId); registerNode(nodeId, object); nodeCreated(nodeId); - delegate.finishedProcessDelete(object); } - - break; + } } } } @@ -661,36 +638,22 @@ public class ObjectStore implements Serializable, SnapshotEventListener, GraphMa continue; } - // TODO: refactor "switch" to avoid code duplication - switch (object.getPersistenceState()) { - case PersistenceState.COMMITTED: - object.setPersistenceState(PersistenceState.HOLLOW); - break; - case PersistenceState.MODIFIED: + case PersistenceState.COMMITTED -> + object.setPersistenceState(PersistenceState.HOLLOW); + case PersistenceState.MODIFIED -> { DataContext context = (DataContext) object.getObjectContext(); DataRow diff = getSnapshot(oid); - // consult delegate if it exists DataContextDelegate delegate = context.nonNullDelegate(); if (delegate.shouldMergeChanges(object, diff)) { ClassDescriptor descriptor = context .getEntityResolver() .getClassDescriptor(oid.getEntityName()); - DataRowUtils.forceMergeWithSnapshot( - context, - descriptor, - object, - diff); + DataRowUtils.forceMergeWithSnapshot(context, descriptor, object, diff); delegate.finishedMergeChanges(object); } - - case PersistenceState.HOLLOW: - // do nothing - break; - - case PersistenceState.DELETED: - // TODO: Do nothing? Or treat as merged? - break; + } + case PersistenceState.HOLLOW, PersistenceState.DELETED -> { /* do nothing */ } } } } diff --git a/cayenne/src/main/java/org/apache/cayenne/configuration/xml/DataMapHandler.java b/cayenne/src/main/java/org/apache/cayenne/configuration/xml/DataMapHandler.java index f219277a7..b46f21f32 100644 --- a/cayenne/src/main/java/org/apache/cayenne/configuration/xml/DataMapHandler.java +++ b/cayenne/src/main/java/org/apache/cayenne/configuration/xml/DataMapHandler.java @@ -61,46 +61,34 @@ public class DataMapHandler extends NamespaceAwareNestedTagHandler { @Override protected boolean processElement(String namespaceURI, String localName, Attributes attributes) throws SAXException { - switch (localName) { - case PROPERTY_TAG: + return switch (localName) { + case PROPERTY_TAG -> { addProperty(attributes); - return true; - - case DATA_MAP_TAG: + yield true; + } + case DATA_MAP_TAG -> { this.dataMap = new DataMap(); - return true; - } - - return false; + yield true; + } + default -> false; + }; } @Override protected ContentHandler createChildTagHandler(String namespaceURI, String localName, String qName, Attributes attributes) { - if(namespaceURI.equals(targetNamespace)) { - switch (localName) { - case DB_ENTITY_TAG: - return new DbEntityHandler(this, dataMap); - - case OBJ_ENTITY_TAG: - return new ObjEntityHandler(this, dataMap); - - case DB_RELATIONSHIP_TAG: - return new DbRelationshipHandler(this, dataMap); - - case OBJ_RELATIONSHIP_TAG: - return new ObjRelationshipHandler(this, dataMap); - - case PROCEDURE_TAG: - return new ProcedureHandler(this, dataMap); - - case QUERY_TAG: - return new QueryDescriptorHandler(this, dataMap); - - case EMBEDDABLE_TAG: - return new EmbeddableHandler(this, dataMap); - } + if (namespaceURI.equals(targetNamespace)) { + return switch (localName) { + case DB_ENTITY_TAG -> new DbEntityHandler(this, dataMap); + case OBJ_ENTITY_TAG -> new ObjEntityHandler(this, dataMap); + case DB_RELATIONSHIP_TAG -> new DbRelationshipHandler(this, dataMap); + case OBJ_RELATIONSHIP_TAG -> new ObjRelationshipHandler(this, dataMap); + case PROCEDURE_TAG -> new ProcedureHandler(this, dataMap); + case QUERY_TAG -> new QueryDescriptorHandler(this, dataMap); + case EMBEDDABLE_TAG -> new EmbeddableHandler(this, dataMap); + default -> super.createChildTagHandler(namespaceURI, localName, qName, attributes); + }; } return super.createChildTagHandler(namespaceURI, localName, qName, attributes); diff --git a/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java b/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java index a3319db2b..5b845ab14 100644 --- a/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java +++ b/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java @@ -244,52 +244,30 @@ public abstract class Expression implements Serializable, XMLSerializable { * Returns String label for this expression. Used for debugging. */ public String expName() { - switch (type) { - case AND: - return "AND"; - case OR: - return "OR"; - case NOT: - return "NOT"; - case EQUAL_TO: - return "="; - case NOT_EQUAL_TO: - return "<>"; - case LESS_THAN: - return "<"; - case LESS_THAN_EQUAL_TO: - return "<="; - case GREATER_THAN: - return ">"; - case GREATER_THAN_EQUAL_TO: - return ">="; - case BETWEEN: - return "BETWEEN"; - case IN: - return "IN"; - case LIKE: - return "LIKE"; - case LIKE_IGNORE_CASE: - return "LIKE_IGNORE_CASE"; - case OBJ_PATH: - return "OBJ_PATH"; - case DB_PATH: - return "DB_PATH"; - case LIST: - return "LIST"; - case NOT_BETWEEN: - return "NOT BETWEEN"; - case NOT_IN: - return "NOT IN"; - case NOT_LIKE: - return "NOT LIKE"; - case NOT_LIKE_IGNORE_CASE: - return "NOT LIKE IGNORE CASE"; - case FUNCTION_CALL: - return "FUNCTION_CALL"; - default: - return "other"; - } + return switch (type) { + case AND -> "AND"; + case OR -> "OR"; + case NOT -> "NOT"; + case EQUAL_TO -> "="; + case NOT_EQUAL_TO -> "<>"; + case LESS_THAN -> "<"; + case LESS_THAN_EQUAL_TO -> "<="; + case GREATER_THAN -> ">"; + case GREATER_THAN_EQUAL_TO -> ">="; + case BETWEEN -> "BETWEEN"; + case IN -> "IN"; + case LIKE -> "LIKE"; + case LIKE_IGNORE_CASE -> "LIKE_IGNORE_CASE"; + case OBJ_PATH -> "OBJ_PATH"; + case DB_PATH -> "DB_PATH"; + case LIST -> "LIST"; + case NOT_BETWEEN -> "NOT BETWEEN"; + case NOT_IN -> "NOT IN"; + case NOT_LIKE -> "NOT LIKE"; + case NOT_LIKE_IGNORE_CASE -> "NOT LIKE IGNORE CASE"; + case FUNCTION_CALL -> "FUNCTION_CALL"; + default -> "other"; + }; } @Override diff --git a/cayenne/src/main/java/org/apache/cayenne/map/DeleteRule.java b/cayenne/src/main/java/org/apache/cayenne/map/DeleteRule.java index 987e6db2f..4767f8f05 100644 --- a/cayenne/src/main/java/org/apache/cayenne/map/DeleteRule.java +++ b/cayenne/src/main/java/org/apache/cayenne/map/DeleteRule.java @@ -64,16 +64,12 @@ public class DeleteRule { * with loading old maps. */ public static String deleteRuleName(int deleteRule) { - switch (deleteRule) { - case DeleteRule.NULLIFY : - return NULLIFY_NAME; - case DeleteRule.CASCADE : - return CASCADE_NAME; - case DeleteRule.DENY : - return DENY_NAME; - default : - return NO_ACTION_NAME; - } + return switch (deleteRule) { + case DeleteRule.NULLIFY -> NULLIFY_NAME; + case DeleteRule.CASCADE -> CASCADE_NAME; + case DeleteRule.DENY -> DENY_NAME; + default -> NO_ACTION_NAME; + }; } /** diff --git a/cayenne/src/main/java/org/apache/cayenne/query/MappedSelect.java b/cayenne/src/main/java/org/apache/cayenne/query/MappedSelect.java index 18e5f669b..c6322221f 100644 --- a/cayenne/src/main/java/org/apache/cayenne/query/MappedSelect.java +++ b/cayenne/src/main/java/org/apache/cayenne/query/MappedSelect.java @@ -198,7 +198,7 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { } switch (descriptor.getType()) { - case QueryDescriptor.SELECT_QUERY: + case QueryDescriptor.SELECT_QUERY -> { ObjectSelect<?> selectQuery = (ObjectSelect<?>) query; if (fetchLimit != null) { selectQuery.limit(fetchLimit); @@ -215,8 +215,8 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (cacheStrategyOverride != null) { selectQuery.setCacheStrategy(cacheStrategyOverride); } - break; - case QueryDescriptor.SQL_TEMPLATE: + } + case QueryDescriptor.SQL_TEMPLATE -> { SQLTemplate sqlTemplate = (SQLTemplate) query; if (fetchLimit != null) { sqlTemplate.setFetchLimit(fetchLimit); @@ -227,7 +227,7 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (statementFetchSize != null) { sqlTemplate.setStatementFetchSize(statementFetchSize); } - if(queryTimeout != null) { + if (queryTimeout != null) { sqlTemplate.setQueryTimeout(queryTimeout); } if (pageSize != null) { @@ -236,8 +236,8 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (cacheStrategyOverride != null) { sqlTemplate.setCacheStrategy(cacheStrategyOverride); } - break; - case QueryDescriptor.EJBQL_QUERY: + } + case QueryDescriptor.EJBQL_QUERY -> { EJBQLQuery ejbqlQuery = (EJBQLQuery) query; if (fetchLimit != null) { ejbqlQuery.setFetchLimit(fetchLimit); @@ -248,7 +248,7 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (statementFetchSize != null) { ejbqlQuery.setStatementFetchSize(statementFetchSize); } - if(queryTimeout != null) { + if (queryTimeout != null) { ejbqlQuery.setQueryTimeout(queryTimeout); } if (pageSize != null) { @@ -257,8 +257,8 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (cacheStrategyOverride != null) { ejbqlQuery.setCacheStrategy(cacheStrategyOverride); } - break; - case QueryDescriptor.PROCEDURE_QUERY: + } + case QueryDescriptor.PROCEDURE_QUERY -> { ProcedureQuery procedureQuery = (ProcedureQuery) query; if (fetchLimit != null) { procedureQuery.setFetchLimit(fetchLimit); @@ -269,7 +269,7 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (statementFetchSize != null) { procedureQuery.setStatementFetchSize(statementFetchSize); } - if(queryTimeout != null) { + if (queryTimeout != null) { procedureQuery.setQueryTimeout(queryTimeout); } if (pageSize != null) { @@ -278,9 +278,8 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> { if (cacheStrategyOverride != null) { procedureQuery.setCacheStrategy(cacheStrategyOverride); } - break; - default: - throw new CayenneRuntimeException("Unknown query type: %s", descriptor.getType()); + } + default -> throw new CayenneRuntimeException("Unknown query type: %s", descriptor.getType()); } return query;
