This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 8f78934a1e97bb087d7b67179ca51d6a0bd66a61 Author: Andrus Adamchik <[email protected]> AuthorDate: Sat May 23 18:27:06 2026 -0400 Cleanup: Util.nullSafeEquals is deprecated in favor of plain Java alternatives --- .../project/validation/ObjEntityValidator.java | 3 ++- .../src/main/java/org/apache/cayenne/DataRow.java | 4 ++-- .../java/org/apache/cayenne/ObjectIdCompound.java | 6 +++--- .../java/org/apache/cayenne/ObjectIdSingle.java | 6 +++--- .../cayenne/access/IncrementalFaultList.java | 6 +++--- .../access/MixedResultIncrementalFaultList.java | 4 ++-- .../java/org/apache/cayenne/access/ObjectDiff.java | 4 ++-- .../access/translator/ejbql/EJBQLTableId.java | 6 +++--- .../java/org/apache/cayenne/exp/Expression.java | 5 +++-- .../apache/cayenne/exp/ExpressionParameter.java | 4 +--- .../cayenne/graph/NodePropertyChangeOperation.java | 4 ++-- .../main/java/org/apache/cayenne/map/DataMap.java | 5 +++-- .../main/java/org/apache/cayenne/map/DbEntity.java | 7 ++++--- .../org/apache/cayenne/map/DbRelationship.java | 6 +++--- .../org/apache/cayenne/map/ObjRelationship.java | 7 ++++--- .../org/apache/cayenne/query/ObjectIdQuery.java | 4 +++- .../java/org/apache/cayenne/query/Ordering.java | 7 ++++--- .../org/apache/cayenne/reflect/EnumConverter.java | 4 ++-- .../apache/cayenne/reflect/PropertyDescriptor.java | 6 +++--- .../main/java/org/apache/cayenne/util/Util.java | 22 ++++++---------------- .../cayenne/validation/ValidationResult.java | 7 +++---- .../java/org/apache/cayenne/util/UtilTest.java | 1 + .../modeler/pref/dbconnector/DBConnector.java | 20 ++++++++++---------- .../cayenne/modeler/event/model/ModelEvent.java | 4 ++-- .../apache/cayenne/modeler/toolkit/AppAction.java | 4 ++-- .../modeler/toolkit/table/CMTableModel.java | 4 ++-- .../modeler/ui/action/MultipleObjectsAction.java | 4 ++-- .../ui/dbrelationship/DbRelationshipDialog.java | 6 +++--- .../editor/datadomain/main/DataDomainMainView.java | 6 +++--- .../editor/datamap/main/DataMapMainView.java | 12 ++++++------ .../datamap/main/catalog/CatalogUpdateDialog.java | 5 +++-- .../datamap/main/pkg/PackageUpdateDialog.java | 3 ++- .../datamap/main/schema/SchemaUpdateDialog.java | 5 +++-- .../main/superclass/SuperclassUpdateDialog.java | 3 ++- .../project/editor/datanode/DataSourcePanel.java | 4 ++-- .../editor/dbentity/main/DbEntityMainView.java | 12 ++++++------ .../main/PKCustomSequenceGeneratorPanel.java | 6 +++--- .../dbentity/properties/DbAttributeTableModel.java | 4 ++-- .../properties/DbRelationshipTableModel.java | 4 ++-- .../attributes/EmbeddableAttributeTableModel.java | 4 ++-- .../editor/embeddable/main/EmbeddableMainView.java | 4 ++-- .../editor/objentity/main/ObjEntityMainView.java | 12 ++++++------ .../properties/ObjAttributeTableModel.java | 3 ++- .../relinfo/ObjRelationshipInfoDialog.java | 9 ++++----- .../procedure/ProcedureParameterTableModel.java | 4 ++-- .../editor/procedure/ProcedureQueryView.java | 4 ++-- .../ui/project/editor/procedure/ProcedureTab.java | 8 ++++---- .../ui/project/editor/query/BaseQueryMainTab.java | 4 ++-- .../editor/query/SelectPropertiesPanel.java | 3 ++- .../editor/query/ejbql/EjbqlQueryMainTab.java | 4 ++-- .../editor/query/ejbql/EjbqlQueryScriptsTab.java | 4 ++-- .../query/selectquery/SelectQueryMainTab.java | 4 ++-- .../query/sqltemplate/SQLTemplateScriptsTab.java | 6 +++--- 53 files changed, 154 insertions(+), 153 deletions(-) diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java index fca41fcc7..b44445241 100644 --- a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java @@ -24,6 +24,7 @@ import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.util.Util; import org.apache.cayenne.validation.ValidationResult; +import java.util.Objects; import java.util.function.Supplier; class ObjEntityValidator extends ConfigurationNodeValidator<ObjEntity> { @@ -85,7 +86,7 @@ class ObjEntityValidator extends ConfigurationNodeValidator<ObjEntity> { ObjEntity conflictingEntity = nextMap.getObjEntity(name); if (conflictingEntity != null - && !Util.nullSafeEquals(conflictingEntity.getClassName(), entity.getClassName())) { + && !Objects.equals(conflictingEntity.getClassName(), entity.getClassName())) { addFailure(validationResult, entity, "Duplicate ObjEntity name in another DataMap: '%s'", name); break; } diff --git a/cayenne/src/main/java/org/apache/cayenne/DataRow.java b/cayenne/src/main/java/org/apache/cayenne/DataRow.java index c411b4221..b243832fe 100644 --- a/cayenne/src/main/java/org/apache/cayenne/DataRow.java +++ b/cayenne/src/main/java/org/apache/cayenne/DataRow.java @@ -21,11 +21,11 @@ package org.apache.cayenne; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.concurrent.atomic.AtomicLong; import org.apache.cayenne.map.DbRelationship; import org.apache.cayenne.util.ToStringBuilder; -import org.apache.cayenne.util.Util; /** * DataRow a map that holds values retrieved from the database for a given query row. @@ -102,7 +102,7 @@ public class DataRow extends HashMap<String, Object> { Object currentValue = entry.getValue(); Object rowValue = row.get(key); - if (!Util.nullSafeEquals(currentValue, rowValue)) { + if (!Objects.deepEquals(currentValue, rowValue)) { if (diff == null) { diff = new DataRow(this.size()); } diff --git a/cayenne/src/main/java/org/apache/cayenne/ObjectIdCompound.java b/cayenne/src/main/java/org/apache/cayenne/ObjectIdCompound.java index 50db67120..15614437a 100644 --- a/cayenne/src/main/java/org/apache/cayenne/ObjectIdCompound.java +++ b/cayenne/src/main/java/org/apache/cayenne/ObjectIdCompound.java @@ -20,7 +20,7 @@ package org.apache.cayenne; import org.apache.cayenne.util.HashCodeBuilder; -import org.apache.cayenne.util.Util; +import java.util.Objects; import java.util.Arrays; import java.util.Collections; @@ -127,7 +127,7 @@ class ObjectIdCompound implements ObjectId { } ObjectIdCompound id = (ObjectIdCompound) object; - if (!Util.nullSafeEquals(entityName, id.entityName)) { + if (!Objects.equals(entityName, id.entityName)) { return false; } @@ -163,7 +163,7 @@ class ObjectIdCompound implements ObjectId { return o2 instanceof Number n2 && n1.longValue() == n2.longValue(); } - return Util.nullSafeEquals(o1, o2); + return Objects.deepEquals(o1, o2); } @Override diff --git a/cayenne/src/main/java/org/apache/cayenne/ObjectIdSingle.java b/cayenne/src/main/java/org/apache/cayenne/ObjectIdSingle.java index a239e5e0c..ee0df252e 100644 --- a/cayenne/src/main/java/org/apache/cayenne/ObjectIdSingle.java +++ b/cayenne/src/main/java/org/apache/cayenne/ObjectIdSingle.java @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.cayenne.util.HashCodeBuilder; import org.apache.cayenne.util.SingleEntryMap; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * {@link ObjectId} with single non-numeric value @@ -116,10 +116,10 @@ class ObjectIdSingle implements ObjectId { return false; } ObjectIdSingle that = (ObjectIdSingle) o; - if(!Util.nullSafeEquals(entityName, that.entityName)) { + if(!Objects.equals(entityName, that.entityName)) { return false; } - return Util.nullSafeEquals(value, that.value); + return Objects.deepEquals(value, that.value); } @Override diff --git a/cayenne/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java b/cayenne/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java index ce4d7bdcf..e0749d7cc 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java @@ -27,7 +27,7 @@ import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.query.ObjectSelect; import org.apache.cayenne.query.Query; import org.apache.cayenne.query.QueryMetadata; -import org.apache.cayenne.util.Util; +import java.util.Objects; import java.io.Serializable; import java.util.ArrayList; @@ -807,7 +807,7 @@ public class IncrementalFaultList<E> implements List<E>, Serializable { for (Map.Entry<?, ?> entry : id.entrySet()) { Object key = entry.getKey(); Object value = entry.getValue(); - if (!Util.nullSafeEquals(value, map.get(key))) { + if (!Objects.deepEquals(value, map.get(key))) { return false; } } @@ -831,7 +831,7 @@ public class IncrementalFaultList<E> implements List<E>, Serializable { for (Map.Entry<?, ?> entry : id.entrySet()) { Object key = entry.getKey(); Object value = entry.getValue(); - if (!Util.nullSafeEquals(value, map.get(key))) { + if (!Objects.deepEquals(value, map.get(key))) { return false; } } diff --git a/cayenne/src/main/java/org/apache/cayenne/access/MixedResultIncrementalFaultList.java b/cayenne/src/main/java/org/apache/cayenne/access/MixedResultIncrementalFaultList.java index c2a0d2582..d33261988 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/MixedResultIncrementalFaultList.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/MixedResultIncrementalFaultList.java @@ -36,7 +36,7 @@ import org.apache.cayenne.query.EntityResultSegment; import org.apache.cayenne.query.ObjectSelect; import org.apache.cayenne.query.Query; import org.apache.cayenne.query.QueryMetadata; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * FaultList that is used for paginated {@link ColumnSelect} queries. @@ -219,7 +219,7 @@ class MixedResultIncrementalFaultList<E> extends IncrementalFaultList<E> { } for (Map.Entry<?, ?> entry : id.entrySet()) { - if (!Util.nullSafeEquals(entry.getValue(), map.get(entry.getKey()))) { + if (!Objects.deepEquals(entry.getValue(), map.get(entry.getKey()))) { return false; } } diff --git a/cayenne/src/main/java/org/apache/cayenne/access/ObjectDiff.java b/cayenne/src/main/java/org/apache/cayenne/access/ObjectDiff.java index a2ba349e7..d05939f63 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/ObjectDiff.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/ObjectDiff.java @@ -40,7 +40,7 @@ import org.apache.cayenne.reflect.ClassDescriptor; import org.apache.cayenne.reflect.PropertyVisitor; import org.apache.cayenne.reflect.ToManyProperty; import org.apache.cayenne.reflect.ToOneProperty; -import org.apache.cayenne.util.Util; +import java.util.Objects; import java.util.ArrayList; import java.util.Collection; @@ -491,7 +491,7 @@ public class ObjectDiff extends NodeDiff { if (!(object instanceof ArcOperation other)) { return false; } - return arcId.equals(other.arcId) && Util.nullSafeEquals(targetNodeId, other.targetNodeId); + return arcId.equals(other.arcId) && Objects.equals(targetNodeId, other.targetNodeId); } @Override diff --git a/cayenne/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java b/cayenne/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java index 9f3b2a3c9..4f7009025 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java @@ -19,11 +19,11 @@ package org.apache.cayenne.access.translator.ejbql; import java.util.Iterator; +import java.util.Objects; import org.apache.cayenne.map.DbEntity; import org.apache.cayenne.map.DbRelationship; import org.apache.cayenne.reflect.ClassDescriptor; -import org.apache.cayenne.util.Util; /** * A helper class representing an "id" of a database table during EJBQL translation. EJBQL @@ -126,11 +126,11 @@ class EJBQLTableId { EJBQLTableId id = (EJBQLTableId) object; - if (!Util.nullSafeEquals(entityId, id.entityId)) { + if (!Objects.equals(entityId, id.entityId)) { return false; } - if (!Util.nullSafeEquals(dbPath, id.dbPath)) { + if (!Objects.equals(dbPath, id.dbPath)) { return false; } 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 5b845ab14..6f25938b0 100644 --- a/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java +++ b/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java @@ -33,8 +33,9 @@ import org.apache.cayenne.configuration.ConfigurationNodeVisitor; import org.apache.cayenne.exp.parser.ASTScalar; import org.apache.cayenne.util.ConversionUtil; import org.apache.cayenne.util.HashCodeBuilder; -import org.apache.cayenne.util.Util; import org.apache.cayenne.util.XMLEncoder; + +import java.util.Objects; import org.apache.cayenne.util.XMLSerializable; /** @@ -285,7 +286,7 @@ public abstract class Expression implements Serializable, XMLSerializable { // compare operands int len = e.getOperandCount(); for (int i = 0; i < len; i++) { - if (!Util.nullSafeEquals(e.getOperand(i), getOperand(i))) { + if (!Objects.deepEquals(e.getOperand(i), getOperand(i))) { return false; } } diff --git a/cayenne/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java b/cayenne/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java index 73136b70a..0c887a0e7 100644 --- a/cayenne/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java +++ b/cayenne/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java @@ -19,8 +19,6 @@ package org.apache.cayenne.exp; -import org.apache.cayenne.util.Util; - import java.io.Serializable; import java.util.Objects; @@ -59,7 +57,7 @@ public class ExpressionParameter implements Serializable { } ExpressionParameter parameter = (ExpressionParameter) o; - return Util.nullSafeEquals(name, parameter.name); + return Objects.equals(name, parameter.name); } @Override diff --git a/cayenne/src/main/java/org/apache/cayenne/graph/NodePropertyChangeOperation.java b/cayenne/src/main/java/org/apache/cayenne/graph/NodePropertyChangeOperation.java index 286a3140a..9d968495c 100644 --- a/cayenne/src/main/java/org/apache/cayenne/graph/NodePropertyChangeOperation.java +++ b/cayenne/src/main/java/org/apache/cayenne/graph/NodePropertyChangeOperation.java @@ -19,7 +19,7 @@ package org.apache.cayenne.graph; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * @since 1.2 @@ -69,7 +69,7 @@ public class NodePropertyChangeOperation extends NodeDiff { */ @Override public boolean isNoop() { - return Util.nullSafeEquals(oldValue, newValue); + return Objects.deepEquals(oldValue, newValue); } @Override diff --git a/cayenne/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne/src/main/java/org/apache/cayenne/map/DataMap.java index 706a22438..d113b21b9 100644 --- a/cayenne/src/main/java/org/apache/cayenne/map/DataMap.java +++ b/cayenne/src/main/java/org/apache/cayenne/map/DataMap.java @@ -37,6 +37,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.TreeMap; import static java.util.Collections.emptyList; @@ -590,7 +591,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable throw new NullPointerException("Null entity or name"); } String oldName = entity.getName(); - if (Util.nullSafeEquals(oldName, newName)) { + if (Objects.equals(oldName, newName)) { return; } if (dbEntityMap.get(oldName) != entity) { @@ -619,7 +620,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable throw new NullPointerException("Null entity or name"); } String oldName = entity.getName(); - if (Util.nullSafeEquals(oldName, newName)) { + if (Objects.equals(oldName, newName)) { return; } if (objEntityMap.get(oldName) != entity) { diff --git a/cayenne/src/main/java/org/apache/cayenne/map/DbEntity.java b/cayenne/src/main/java/org/apache/cayenne/map/DbEntity.java index ff47d6281..dd7ee1e16 100644 --- a/cayenne/src/main/java/org/apache/cayenne/map/DbEntity.java +++ b/cayenne/src/main/java/org/apache/cayenne/map/DbEntity.java @@ -39,9 +39,10 @@ import org.apache.cayenne.exp.ExpressionException; import org.apache.cayenne.exp.ExpressionFactory; import org.apache.cayenne.exp.path.CayennePath; import org.apache.cayenne.util.CayenneMapEntry; -import org.apache.cayenne.util.Util; import org.apache.cayenne.util.XMLEncoder; +import java.util.Objects; + /** * A DbEntity is a mapping descriptor that defines a structure of a database * table. @@ -292,7 +293,7 @@ public class DbEntity extends Entity<DbEntity, DbAttribute, DbRelationship> } String oldName = attr.getName(); - if (Util.nullSafeEquals(oldName, newName)) { + if (Objects.equals(oldName, newName)) { return; } @@ -339,7 +340,7 @@ public class DbEntity extends Entity<DbEntity, DbAttribute, DbRelationship> } String oldName = rel.getName(); - if (Util.nullSafeEquals(oldName, newName)) { + if (Objects.equals(oldName, newName)) { return; } diff --git a/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java b/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java index 15145ca72..5db9010cb 100644 --- a/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java +++ b/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java @@ -22,10 +22,10 @@ package org.apache.cayenne.map; import org.apache.cayenne.CayenneRuntimeException; import org.apache.cayenne.configuration.ConfigurationNode; import org.apache.cayenne.configuration.ConfigurationNodeVisitor; -import org.apache.cayenne.util.Util; import org.apache.cayenne.util.XMLEncoder; import java.util.ArrayList; +import java.util.Objects; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -507,8 +507,8 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati } DbJoin j = (DbJoin) o; - return j.relationship == this.relationship && Util.nullSafeEquals(j.sourceName, this.sourceName) - && Util.nullSafeEquals(j.targetName, this.targetName); + return j.relationship == this.relationship && Objects.equals(j.sourceName, this.sourceName) + && Objects.equals(j.targetName, this.targetName); } } diff --git a/cayenne/src/main/java/org/apache/cayenne/map/ObjRelationship.java b/cayenne/src/main/java/org/apache/cayenne/map/ObjRelationship.java index 54b8763fa..c95437585 100644 --- a/cayenne/src/main/java/org/apache/cayenne/map/ObjRelationship.java +++ b/cayenne/src/main/java/org/apache/cayenne/map/ObjRelationship.java @@ -33,9 +33,10 @@ import org.apache.cayenne.exp.parser.ASTDbPath; import org.apache.cayenne.exp.path.CayennePath; import org.apache.cayenne.util.CayenneMapEntry; import org.apache.cayenne.util.ToStringBuilder; -import org.apache.cayenne.util.Util; import org.apache.cayenne.util.XMLEncoder; +import java.util.Objects; + /** * Describes an association between two Java classes mapped as source and target * ObjEntity. Maps to a path of DbRelationships. @@ -542,7 +543,7 @@ public class ObjRelationship extends Relationship<ObjEntity, ObjAttribute, ObjRe * @since 5.0 */ public void setDbRelationshipPath(CayennePath relationshipPath) { - if (!Util.nullSafeEquals(getDbRelationshipPath(), relationshipPath)) { + if (!Objects.equals(getDbRelationshipPath(), relationshipPath)) { refreshFromPath(relationshipPath, false); } } @@ -556,7 +557,7 @@ public class ObjRelationship extends Relationship<ObjEntity, ObjAttribute, ObjRe */ public void setDeferredDbRelationshipPath(String relationshipPath) { CayennePath newPath = CayennePath.of(relationshipPath); - if (!Util.nullSafeEquals(getDbRelationshipPath(), newPath)) { + if (!Objects.equals(getDbRelationshipPath(), newPath)) { deferredPath = newPath; } } diff --git a/cayenne/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java b/cayenne/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java index d78d58c11..5ed7f58dd 100644 --- a/cayenne/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java +++ b/cayenne/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java @@ -29,6 +29,8 @@ import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.reflect.ClassDescriptor; import org.apache.cayenne.util.Util; +import java.util.Objects; + /** * A query that matches zero or one object or data row corresponding to the ObjectId. Used * internally by Cayenne to lookup objects by id. Notice that cache policies of @@ -175,7 +177,7 @@ public class ObjectIdQuery extends IndirectQuery { ObjectIdQuery query = (ObjectIdQuery) object; - return Util.nullSafeEquals(objectId, query.getObjectId()); + return Objects.equals(objectId, query.getObjectId()); } /** diff --git a/cayenne/src/main/java/org/apache/cayenne/query/Ordering.java b/cayenne/src/main/java/org/apache/cayenne/query/Ordering.java index 9cb90451d..04ed7c14d 100644 --- a/cayenne/src/main/java/org/apache/cayenne/query/Ordering.java +++ b/cayenne/src/main/java/org/apache/cayenne/query/Ordering.java @@ -35,8 +35,9 @@ import org.apache.cayenne.exp.ExpressionException; import org.apache.cayenne.exp.parser.ASTDbPath; import org.apache.cayenne.exp.parser.ASTObjPath; import org.apache.cayenne.util.ConversionUtil; -import org.apache.cayenne.util.Util; import org.apache.cayenne.util.XMLEncoder; + +import java.util.Objects; import org.apache.cayenne.util.XMLSerializable; /** @@ -144,7 +145,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab Ordering o = (Ordering) object; - if (!Util.nullSafeEquals(sortSpecString, o.sortSpecString)) { + if (!Objects.equals(sortSpecString, o.sortSpecString)) { return false; } @@ -178,7 +179,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab * @since 1.1 */ public void setSortSpecString(String sortSpecString) { - if (!Util.nullSafeEquals(this.sortSpecString, sortSpecString)) { + if (!Objects.equals(this.sortSpecString, sortSpecString)) { this.sortSpecString = sortSpecString; this.sortSpec = null; } diff --git a/cayenne/src/main/java/org/apache/cayenne/reflect/EnumConverter.java b/cayenne/src/main/java/org/apache/cayenne/reflect/EnumConverter.java index ebb419451..6bc4fe0ce 100644 --- a/cayenne/src/main/java/org/apache/cayenne/reflect/EnumConverter.java +++ b/cayenne/src/main/java/org/apache/cayenne/reflect/EnumConverter.java @@ -21,7 +21,7 @@ package org.apache.cayenne.reflect; import org.apache.cayenne.CayenneRuntimeException; import org.apache.cayenne.ExtendedEnumeration; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * @since 1.2 @@ -44,7 +44,7 @@ class EnumConverter<T extends Enum<T> & ExtendedEnumeration> implements Converte } for (ExtendedEnumeration en : values) { - if (Util.nullSafeEquals(en.getDatabaseValue(), object)) { + if (Objects.deepEquals(en.getDatabaseValue(), object)) { return (T) en; } } diff --git a/cayenne/src/main/java/org/apache/cayenne/reflect/PropertyDescriptor.java b/cayenne/src/main/java/org/apache/cayenne/reflect/PropertyDescriptor.java index 90799a775..5194702f5 100644 --- a/cayenne/src/main/java/org/apache/cayenne/reflect/PropertyDescriptor.java +++ b/cayenne/src/main/java/org/apache/cayenne/reflect/PropertyDescriptor.java @@ -19,7 +19,7 @@ package org.apache.cayenne.reflect; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * Defines bean property API used by Cayenne to access object data, do faulting @@ -80,7 +80,7 @@ public interface PropertyDescriptor { /** * Allows to use special logic to compare values for equality * as in rare cases it is not sufficient to use the default equals() method. - * Default implementation uses {@link Util#nullSafeEquals(Object, Object)} method. + * Default implementation uses {@link Objects#deepEquals(Object, Object)}. * * @param value1 to compare * @param value2 to compare @@ -89,7 +89,7 @@ public interface PropertyDescriptor { * @since 4.2 */ default boolean equals(Object value1, Object value2) { - return Util.nullSafeEquals(value1, value2); + return Objects.deepEquals(value1, value2); } } diff --git a/cayenne/src/main/java/org/apache/cayenne/util/Util.java b/cayenne/src/main/java/org/apache/cayenne/util/Util.java index fe40a8b74..07a8be4e9 100644 --- a/cayenne/src/main/java/org/apache/cayenne/util/Util.java +++ b/cayenne/src/main/java/org/apache/cayenne/util/Util.java @@ -66,6 +66,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.StringTokenizer; import java.util.regex.Pattern; @@ -193,24 +194,13 @@ public class Util { * Compares two objects similar to "Object.equals(Object)". Unlike * Object.equals(..), this method doesn't throw an exception if any of the * two objects is null. + * + * @deprecated Use {@link Objects#equals(Object, Object)} for non-array types, + * or {@link Objects#deepEquals(Object, Object)} when the values may be arrays. */ + @Deprecated(since = "5.0", forRemoval = true) public static boolean nullSafeEquals(Object o1, Object o2) { - - if (o1 == null) { - return o2 == null; - } - - // Arrays must be handled differently since equals() only does - // an "==" for an array and ignores equivalence. If an array, use - // the Jakarta Commons Language component EqualsBuilder to determine - // the types contained in the array and do individual comparisons. - if (o1.getClass().isArray()) { - EqualsBuilder builder = new EqualsBuilder(); - builder.append(o1, o2); - return builder.isEquals(); - } else { // It is NOT an array, so use regular equals() - return o1.equals(o2); - } + return Objects.deepEquals(o1, o2); } /** diff --git a/cayenne/src/main/java/org/apache/cayenne/validation/ValidationResult.java b/cayenne/src/main/java/org/apache/cayenne/validation/ValidationResult.java index 3d822759a..b5f723c5d 100644 --- a/cayenne/src/main/java/org/apache/cayenne/validation/ValidationResult.java +++ b/cayenne/src/main/java/org/apache/cayenne/validation/ValidationResult.java @@ -19,10 +19,9 @@ package org.apache.cayenne.validation; -import org.apache.cayenne.util.Util; - import java.io.Serializable; import java.util.ArrayList; +import java.util.Objects; import java.util.Collections; import java.util.List; @@ -72,7 +71,7 @@ public class ValidationResult implements Serializable { public List<ValidationFailure> getFailures(Object source) { ArrayList<ValidationFailure> matchingFailures = new ArrayList<>(5); for (ValidationFailure failure : failures) { - if (Util.nullSafeEquals(source, failure.getSource())) { + if (Objects.equals(source, failure.getSource())) { matchingFailures.add(failure); } } @@ -95,7 +94,7 @@ public class ValidationResult implements Serializable { */ public boolean hasFailures(Object source) { for (ValidationFailure failure : failures) { - if (Util.nullSafeEquals(source, failure.getSource())) { + if (Objects.equals(source, failure.getSource())) { return true; } } diff --git a/cayenne/src/test/java/org/apache/cayenne/util/UtilTest.java b/cayenne/src/test/java/org/apache/cayenne/util/UtilTest.java index 71f8b79f7..b74086992 100644 --- a/cayenne/src/test/java/org/apache/cayenne/util/UtilTest.java +++ b/cayenne/src/test/java/org/apache/cayenne/util/UtilTest.java @@ -166,6 +166,7 @@ public class UtilTest { } @Test + @SuppressWarnings("deprecation") public void nullSafeEquals() throws Exception { // need a special subclass of Object to make "clone" method public class CloneableObject implements Cloneable { diff --git a/modeler/cayenne-modeler-prefs/src/main/java/org/apache/cayenne/modeler/pref/dbconnector/DBConnector.java b/modeler/cayenne-modeler-prefs/src/main/java/org/apache/cayenne/modeler/pref/dbconnector/DBConnector.java index b11b0eab7..3b6acb4e6 100644 --- a/modeler/cayenne-modeler-prefs/src/main/java/org/apache/cayenne/modeler/pref/dbconnector/DBConnector.java +++ b/modeler/cayenne-modeler-prefs/src/main/java/org/apache/cayenne/modeler/pref/dbconnector/DBConnector.java @@ -20,7 +20,7 @@ package org.apache.cayenne.modeler.pref.dbconnector; import org.apache.cayenne.configuration.DataSourceDescriptor; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * Configuration record for a named database connection profile stored in user preferences. @@ -89,27 +89,27 @@ public class DBConnector { public boolean copyTo(DBConnector connector) { boolean updated = false; - if (!Util.nullSafeEquals(connector.getUrl(), getUrl())) { + if (!Objects.equals(connector.getUrl(), getUrl())) { connector.setUrl(getUrl()); updated = true; } - if (!Util.nullSafeEquals(connector.getUserName(), getUserName())) { + if (!Objects.equals(connector.getUserName(), getUserName())) { connector.setUserName(getUserName()); updated = true; } - if (!Util.nullSafeEquals(connector.getPassword(), getPassword())) { + if (!Objects.equals(connector.getPassword(), getPassword())) { connector.setPassword(getPassword()); updated = true; } - if (!Util.nullSafeEquals(connector.getJdbcDriver(), getJdbcDriver())) { + if (!Objects.equals(connector.getJdbcDriver(), getJdbcDriver())) { connector.setJdbcDriver(getJdbcDriver()); updated = true; } - if (!Util.nullSafeEquals(connector.getDbAdapter(), getDbAdapter())) { + if (!Objects.equals(connector.getDbAdapter(), getDbAdapter())) { connector.setDbAdapter(getDbAdapter()); updated = true; } @@ -124,22 +124,22 @@ public class DBConnector { public boolean copyTo(final DataSourceDescriptor dataSourceInfo) { boolean updated = false; - if (!Util.nullSafeEquals(dataSourceInfo.getDataSourceUrl(), getUrl())) { + if (!Objects.equals(dataSourceInfo.getDataSourceUrl(), getUrl())) { dataSourceInfo.setDataSourceUrl(getUrl()); updated = true; } - if (!Util.nullSafeEquals(dataSourceInfo.getUserName(), getUserName())) { + if (!Objects.equals(dataSourceInfo.getUserName(), getUserName())) { dataSourceInfo.setUserName(getUserName()); updated = true; } - if (!Util.nullSafeEquals(dataSourceInfo.getPassword(), getPassword())) { + if (!Objects.equals(dataSourceInfo.getPassword(), getPassword())) { dataSourceInfo.setPassword(getPassword()); updated = true; } - if (!Util.nullSafeEquals(dataSourceInfo.getJdbcDriver(), getJdbcDriver())) { + if (!Objects.equals(dataSourceInfo.getJdbcDriver(), getJdbcDriver())) { dataSourceInfo.setJdbcDriver(getJdbcDriver()); updated = true; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/ModelEvent.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/ModelEvent.java index 529926bf0..047b52622 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/ModelEvent.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/model/ModelEvent.java @@ -19,7 +19,7 @@ package org.apache.cayenne.modeler.event.model; -import org.apache.cayenne.util.Util; +import java.util.Objects; import java.util.EventObject; @@ -60,7 +60,7 @@ public abstract class ModelEvent extends EventObject { } public boolean isNameChange() { - return oldName != null && !Util.nullSafeEquals(oldName, getNewName()); + return oldName != null && !Objects.equals(oldName, getNewName()); } /** diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppAction.java index 87d31490a..919e6c444 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppAction.java @@ -26,7 +26,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; import org.apache.cayenne.modeler.ui.errors.ErrorDialog; import org.apache.cayenne.project.Project; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,7 +81,7 @@ public abstract class AppAction extends AbstractAction { * action. */ public void setName(String newName) { - if (!Util.nullSafeEquals(getValue(Action.NAME), newName)) { + if (!Objects.equals(getValue(Action.NAME), newName)) { super.putValue(Action.NAME, newName); } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/table/CMTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/table/CMTableModel.java index efb3af888..5f2fae576 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/table/CMTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/table/CMTableModel.java @@ -21,7 +21,6 @@ package org.apache.cayenne.modeler.toolkit.table; import org.apache.cayenne.CayenneRuntimeException; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.util.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +34,7 @@ import java.lang.reflect.Method; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Objects; /** * Superclass of CayenneModeler table model classes. @@ -58,7 +58,7 @@ public abstract class CMTableModel<T> extends AbstractTableModel { try { Object oldValue = getValueAt(row, col); - if (!Util.nullSafeEquals(newVal, oldValue)) { + if (!Objects.deepEquals(newVal, oldValue)) { setUpdatedValueAt(newVal, row, col); this.session.app() diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MultipleObjectsAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MultipleObjectsAction.java index da65f8e80..0fb81c70a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MultipleObjectsAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MultipleObjectsAction.java @@ -18,7 +18,7 @@ ****************************************************************/ package org.apache.cayenne.modeler.ui.action; -import org.apache.cayenne.util.Util; +import java.util.Objects; import javax.swing.Action; @@ -38,7 +38,7 @@ public interface MultipleObjectsAction extends Action { String newName = getActionName(selectedObjects > 1); - if (!Util.nullSafeEquals(getValue(Action.NAME), newName)) { + if (!Objects.equals(getValue(Action.NAME), newName)) { putValue(Action.NAME, newName); } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java index 28bcc3b97..b7e6de15c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java @@ -44,7 +44,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit; import org.apache.cayenne.modeler.undo.RelationshipUndoableEdit; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; @@ -391,7 +391,7 @@ public class DbRelationshipDialog extends ProjectDialog { } private void handleNameUpdate(DbRelationship rel, String userInputName) { - if (Util.nullSafeEquals(rel.getName(), userInputName)) { + if (Objects.equals(rel.getName(), userInputName)) { return; } @@ -400,7 +400,7 @@ public class DbRelationshipDialog extends ProjectDialog { .baseName(userInputName) .name(); - if (Util.nullSafeEquals(sourceEntityName, rel.getName())) { + if (Objects.equals(sourceEntityName, rel.getName())) { return; } String oldName = rel.getName(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/main/DataDomainMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/main/DataDomainMainView.java index 38c0fbbdd..112efd8c8 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/main/DataDomainMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/main/DataDomainMainView.java @@ -31,7 +31,7 @@ import org.apache.cayenne.modeler.toolkit.checkbox.CMCheckBox; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -137,7 +137,7 @@ public class DataDomainMainView extends ProjectPanel implements DomainDisplayLis Map<String, String> properties = domain.getProperties(); String oldValue = properties.get(property); - if (!Util.nullSafeEquals(value, oldValue)) { + if (!Objects.equals(value, oldValue)) { properties.put(property, value); DomainEvent e = DomainEvent.ofChange(this, domain); @@ -191,7 +191,7 @@ public class DataDomainMainView extends ProjectPanel implements DomainDisplayLis .getFrame().getProjectSession().project() .getRootNode(); - if (Util.nullSafeEquals(dataChannelDescriptor.getName(), newName)) { + if (Objects.equals(dataChannelDescriptor.getName(), newName)) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java index e6532de26..19f70f647 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java @@ -41,7 +41,7 @@ import org.apache.cayenne.modeler.ui.project.editor.datamap.main.pkg.PackageUpda import org.apache.cayenne.modeler.ui.project.editor.datamap.main.schema.SchemaUpdateDialog; import org.apache.cayenne.modeler.ui.project.editor.datamap.main.superclass.SuperclassUpdateDialog; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -234,7 +234,7 @@ public class DataMapMainView extends ProjectPanel { } String oldPackage = dataMap.getDefaultPackage(); - if (Util.nullSafeEquals(newDefaultPackage, oldPackage)) { + if (Objects.equals(newDefaultPackage, oldPackage)) { return; } @@ -259,7 +259,7 @@ public class DataMapMainView extends ProjectPanel { } String oldCatalog = dataMap.getDefaultCatalog(); - if (Util.nullSafeEquals(newCatalog, oldCatalog)) { + if (Objects.equals(newCatalog, oldCatalog)) { return; } @@ -279,7 +279,7 @@ public class DataMapMainView extends ProjectPanel { } String oldSchema = dataMap.getDefaultSchema(); - if (Util.nullSafeEquals(newSchema, oldSchema)) { + if (Objects.equals(newSchema, oldSchema)) { return; } @@ -299,7 +299,7 @@ public class DataMapMainView extends ProjectPanel { } String oldSuperclass = dataMap.getDefaultSuperclass(); - if (Util.nullSafeEquals(newSuperclass, oldSuperclass)) { + if (Objects.equals(newSuperclass, oldSuperclass)) { return; } @@ -328,7 +328,7 @@ public class DataMapMainView extends ProjectPanel { + "'. Use a different name."); } String oldName = map.getName(); - if (Util.nullSafeEquals(newName, oldName)) { + if (Objects.equals(newName, oldName)) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/catalog/CatalogUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/catalog/CatalogUpdateDialog.java index 9663cab45..beb9beb60 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/catalog/CatalogUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/catalog/CatalogUpdateDialog.java @@ -26,6 +26,7 @@ import org.apache.cayenne.modeler.event.model.ProcedureEvent; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.datamap.defaults.DefaultsUpdateDialog; import org.apache.cayenne.util.Util; +import java.util.Objects; import java.awt.Window; @@ -45,7 +46,7 @@ public class CatalogUpdateDialog extends DefaultsUpdateDialog { for (DbEntity entity : dataMap.getDbEntities()) { if (doAll || Util.isEmptyString(entity.getCatalog())) { - if (!Util.nullSafeEquals(defaultCatalog, entity.getCatalog())) { + if (!Objects.equals(defaultCatalog, entity.getCatalog())) { entity.setCatalog(defaultCatalog); // any way to batch events, a big change will flood the app with entity events? session.fireDbEntityEvent(DbEntityEvent.ofChange(this, entity)); @@ -55,7 +56,7 @@ public class CatalogUpdateDialog extends DefaultsUpdateDialog { for (Procedure procedure : dataMap.getProcedures()) { if (doAll || Util.isEmptyString(procedure.getCatalog())) { - if (!Util.nullSafeEquals(defaultCatalog, procedure.getCatalog())) { + if (!Objects.equals(defaultCatalog, procedure.getCatalog())) { procedure.setCatalog(defaultCatalog); // any way to batch events, a big change will flood the app with procedure events? session.fireProcedureEvent(ProcedureEvent.ofChange(this, procedure)); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/pkg/PackageUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/pkg/PackageUpdateDialog.java index 61e4e83ec..054521c03 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/pkg/PackageUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/pkg/PackageUpdateDialog.java @@ -30,6 +30,7 @@ import org.apache.cayenne.modeler.event.model.ObjEntityEvent; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.datamap.defaults.DefaultsUpdateDialog; import org.apache.cayenne.util.Util; +import java.util.Objects; import java.awt.Window; import java.util.ArrayList; @@ -75,7 +76,7 @@ public class PackageUpdateDialog extends DefaultsUpdateDialog { if (doAll || Util.isEmptyString(oldName) || oldName.indexOf('.') < 0) { String className = extractClassName(Util.isEmptyString(oldName) ? entity.getName() : oldName); String newName = dataMap.getNameWithDefaultPackage(className); - if (!Util.nullSafeEquals(newName, entity.getClassName())) { + if (!Objects.equals(newName, entity.getClassName())) { entity.setClassName(newName); session.fireObjEntityEvent(ObjEntityEvent.ofChange(this, entity)); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/schema/SchemaUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/schema/SchemaUpdateDialog.java index 38df7375b..3ddbab8a9 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/schema/SchemaUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/schema/SchemaUpdateDialog.java @@ -27,6 +27,7 @@ import org.apache.cayenne.modeler.event.model.ProcedureEvent; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.datamap.defaults.DefaultsUpdateDialog; import org.apache.cayenne.util.Util; +import java.util.Objects; import java.awt.Window; @@ -46,7 +47,7 @@ public class SchemaUpdateDialog extends DefaultsUpdateDialog { for (DbEntity entity : dataMap.getDbEntities()) { if (doAll || Util.isEmptyString(entity.getSchema())) { - if (!Util.nullSafeEquals(defaultSchema, entity.getSchema())) { + if (!Objects.equals(defaultSchema, entity.getSchema())) { entity.setSchema(defaultSchema); session.fireDbEntityEvent(DbEntityEvent.ofChange(this, entity)); } @@ -55,7 +56,7 @@ public class SchemaUpdateDialog extends DefaultsUpdateDialog { for (Procedure procedure : dataMap.getProcedures()) { if (doAll || Util.isEmptyString(procedure.getSchema())) { - if (!Util.nullSafeEquals(defaultSchema, procedure.getSchema())) { + if (!Objects.equals(defaultSchema, procedure.getSchema())) { procedure.setSchema(defaultSchema); session.fireProcedureEvent(ProcedureEvent.ofChange(this, procedure)); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java index ea27d3810..4e4b8c7c4 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java @@ -25,6 +25,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.datamap.defaults.DefaultsUpdateDialog; import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.util.Util; +import java.util.Objects; import java.awt.Window; @@ -45,7 +46,7 @@ public class SuperclassUpdateDialog extends DefaultsUpdateDialog { dataMap.getObjEntities().stream() .sorted(ProjectComparators.forDataMapChildren()).forEach(entity -> { if (doAll || Util.isEmptyString(entity.getSuperClassName())) { - if (!Util.nullSafeEquals(defaultSuperclass, entity.getSuperClassName())) { + if (!Objects.equals(defaultSuperclass, entity.getSuperClassName())) { entity.setSuperClassName(defaultSuperclass); // any way to batch events, a big change will flood the app with entity events? session.fireObjEntityEvent(ObjEntityEvent.ofChange(this, entity)); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datanode/DataSourcePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datanode/DataSourcePanel.java index db1dbcdca..02c10201d 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datanode/DataSourcePanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datanode/DataSourcePanel.java @@ -22,7 +22,7 @@ package org.apache.cayenne.modeler.ui.project.editor.datanode; import org.apache.cayenne.configuration.DataNodeDescriptor; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.toolkit.AppPanel; -import org.apache.cayenne.util.Util; +import java.util.Objects; /** * Base for the inner panels of {@link DataNodeEditorPanel} that edit the DataSource portion @@ -44,7 +44,7 @@ public abstract class DataSourcePanel extends AppPanel { } public void setNode(DataNodeDescriptor node) { - if (!Util.nullSafeEquals(this.node, node)) { + if (!Objects.equals(this.node, node)) { this.node = node; refreshView(); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/DbEntityMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/DbEntityMainView.java index e522ca5ec..99dd2128c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/DbEntityMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/DbEntityMainView.java @@ -39,7 +39,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.ExpressionConvertor; import org.apache.cayenne.modeler.ui.project.editor.query.ExistingSelectionProcessor; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.BorderFactory; @@ -216,7 +216,7 @@ public class DbEntityMainView extends ProjectPanel implements ExistingSelectionP DbEntity entity = session.getSelectedDbEntity(); - if (entity == null || Util.nullSafeEquals(newName, entity.getName())) { + if (entity == null || Objects.equals(newName, entity.getName())) { return; } @@ -241,7 +241,7 @@ public class DbEntityMainView extends ProjectPanel implements ExistingSelectionP DbEntity ent = session.getSelectedDbEntity(); - if (ent != null && !Util.nullSafeEquals(ent.getCatalog(), text)) { + if (ent != null && !Objects.equals(ent.getCatalog(), text)) { ent.setCatalog(text); session.fireDbEntityEvent(DbEntityEvent.ofChange(this, ent)); } @@ -255,7 +255,7 @@ public class DbEntityMainView extends ProjectPanel implements ExistingSelectionP DbEntity ent = session.getSelectedDbEntity(); - if (ent != null && !Util.nullSafeEquals(ent.getSchema(), text)) { + if (ent != null && !Objects.equals(ent.getSchema(), text)) { ent.setSchema(text); session.fireDbEntityEvent(DbEntityEvent.ofChange(this, ent)); } @@ -269,10 +269,10 @@ public class DbEntityMainView extends ProjectPanel implements ExistingSelectionP DbEntity ent = session.getSelectedDbEntity(); - if (ent != null && !Util.nullSafeEquals(ent.getQualifier(), qualifier)) { + if (ent != null && !Objects.equals(ent.getQualifier(), qualifier)) { try { String oldQualifier = ExpressionConvertor.asString(ent.getQualifier()); - if (!Util.nullSafeEquals(oldQualifier, qualifier)) { + if (!Objects.equals(oldQualifier, qualifier)) { ent.setQualifier(ExpressionConvertor.fromString(qualifier)); session.fireDbEntityEvent(DbEntityEvent.ofChange(this, ent)); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKCustomSequenceGeneratorPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKCustomSequenceGeneratorPanel.java index 382a6d542..690f0b395 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKCustomSequenceGeneratorPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/main/PKCustomSequenceGeneratorPanel.java @@ -26,7 +26,7 @@ import org.apache.cayenne.map.DbKeyGenerator; import org.apache.cayenne.modeler.event.model.DbEntityEvent; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -114,7 +114,7 @@ public class PKCustomSequenceGeneratorPanel extends PKGeneratorPanel { } DbKeyGenerator generator = session.getSelectedDbEntity().getPrimaryKeyGenerator(); - if (!Util.nullSafeEquals(generator.getKeyCacheSize(), cacheSize)) { + if (!Objects.equals(generator.getKeyCacheSize(), cacheSize)) { generator.setKeyCacheSize(cacheSize); session.fireDbEntityEvent(DbEntityEvent.ofChange(this, generator.getDbEntity())); } @@ -132,7 +132,7 @@ public class PKCustomSequenceGeneratorPanel extends PKGeneratorPanel { } DbKeyGenerator generator = session.getSelectedDbEntity().getPrimaryKeyGenerator(); - if (!Util.nullSafeEquals(text, generator.getName())) { + if (!Objects.equals(text, generator.getName())) { generator.setGeneratorName(text); session.fireDbEntityEvent(DbEntityEvent.ofChange(this, generator.getDbEntity())); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributeTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributeTableModel.java index 654c42149..c726389fa 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributeTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributeTableModel.java @@ -28,7 +28,7 @@ import org.apache.cayenne.modeler.project.DbAttributeOps; import org.apache.cayenne.modeler.toolkit.table.CMTableModel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import javax.swing.*; import java.util.ArrayList; @@ -170,7 +170,7 @@ public class DbAttributeTableModel extends CMTableModel<DbAttribute> { private String setDbAttributeName(DbAttribute attr, String newName) { String oldName = attr.getName(); - if (Util.nullSafeEquals(newName, oldName)) { + if (Objects.equals(newName, oldName)) { return null; } DbEntity parent = attr.getEntity(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipTableModel.java index 2245937ce..187312737 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipTableModel.java @@ -28,7 +28,7 @@ import org.apache.cayenne.modeler.project.DbRelationshipOps; import org.apache.cayenne.modeler.toolkit.table.CMTableModel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import javax.swing.*; import java.util.ArrayList; @@ -138,7 +138,7 @@ public class DbRelationshipTableModel extends CMTableModel<DbRelationship> { if (column == NAME) { String newName = (String) aValue; String oldName = rel.getName(); - if (Util.nullSafeEquals(newName, oldName)) { + if (Objects.equals(newName, oldName)) { return; } DbRelationship clash = entity.getRelationship(newName); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributeTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributeTableModel.java index a3fc9e319..728b19756 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributeTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributeTableModel.java @@ -23,7 +23,7 @@ import org.apache.cayenne.map.EmbeddableAttribute; import org.apache.cayenne.modeler.event.model.EmbeddableAttributeEvent; import org.apache.cayenne.modeler.toolkit.table.CMTableModel; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.util.Util; +import java.util.Objects; import java.util.ArrayList; import java.util.Collection; @@ -63,7 +63,7 @@ public class EmbeddableAttributeTableModel extends CMTableModel { String oldName = attribute.getName(); String newName = value != null ? value.toString().trim() : null; renamedFrom = oldName; - if (!Util.nullSafeEquals(oldName, newName)) { + if (!Objects.equals(oldName, newName)) { attribute.setName(newName); if (embeddable != null) { embeddable.removeAttribute(oldName); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java index a87aaf59e..32ae1e186 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java @@ -36,7 +36,7 @@ import org.apache.cayenne.modeler.event.display.EmbeddableDisplayListener; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -98,7 +98,7 @@ public class EmbeddableMainView extends ProjectPanel implements EmbeddableDispla return; } - if (Util.nullSafeEquals(newClassName, embeddable.getClassName())) { + if (Objects.equals(newClassName, embeddable.getClassName())) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java index de2c43a17..4782a8fed 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java @@ -49,7 +49,7 @@ import org.apache.cayenne.modeler.ui.project.editor.objentity.duplicates.Duplica import org.apache.cayenne.modeler.ui.project.editor.query.ExistingSelectionProcessor; import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -166,7 +166,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL ObjEntity entity = session.getSelectedObjEntity(); - if (!Util.nullSafeEquals(name, entity.getSuperEntityName())) { + if (!Objects.equals(name, entity.getSuperEntityName())) { List<ObjAttribute> duplicateAttributes = null; if (name != null) { duplicateAttributes = getDuplicatedAttributes(superEntity); @@ -312,7 +312,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL ObjEntity entity = session.getSelectedObjEntity(); // "ent" may be null if we quit editing by changing tree selection - if (entity != null && !Util.nullSafeEquals(entity.getClassName(), className)) { + if (entity != null && !Objects.equals(entity.getClassName(), className)) { entity.setClassName(className); session.fireObjEntityEvent(ObjEntityEvent.ofChange(this, entity)); } @@ -326,7 +326,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL ObjEntity ent = session.getSelectedObjEntity(); - if (ent != null && !Util.nullSafeEquals(ent.getSuperClassName(), text)) { + if (ent != null && !Objects.equals(ent.getSuperClassName(), text)) { ent.setSuperClassName(text); session.fireObjEntityEvent(ObjEntityEvent.ofChange(this, ent)); } @@ -341,7 +341,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL if (entity != null) { try { String oldQualifier = ExpressionConvertor.asString(entity.getDeclaredQualifier()); - if (!Util.nullSafeEquals(oldQualifier, text)) { + if (!Objects.equals(oldQualifier, text)) { entity.setDeclaredQualifier(ExpressionConvertor.fromString(text)); session.fireObjEntityEvent(ObjEntityEvent.ofChange(this, entity)); } @@ -362,7 +362,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL return; } - if (Util.nullSafeEquals(newName, entity.getName())) { + if (Objects.equals(newName, entity.getName())) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java index 141110b54..27c3c0f21 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java @@ -40,6 +40,7 @@ import org.apache.cayenne.modeler.toolkit.table.CMTableModel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.Util; +import java.util.Objects; import java.util.ArrayList; import java.util.Arrays; @@ -226,7 +227,7 @@ public class ObjAttributeTableModel extends CMTableModel<ObjAttribute> { private void setObjAttribute(ObjAttribute attribute, Object value) { String newName = value != null ? value.toString().trim() : null; String oldName = attribute.getName(); - if (Util.nullSafeEquals(newName, oldName)) { + if (Objects.equals(newName, oldName)) { return; } ObjEntity parent = attribute.getEntity(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java index 094dc6c12..1af631bb9 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java @@ -45,7 +45,6 @@ import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; import org.apache.cayenne.modeler.toolkit.tree.EntityTreeRelationshipFilter; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.DeleteRuleUpdater; -import org.apache.cayenne.util.Util; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -499,7 +498,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele String userInputName = relationshipName.getText(); String oldName = relationship.getName(); - if (!Util.nullSafeEquals(oldName, userInputName)) { + if (!Objects.equals(oldName, userInputName)) { ObjEntity source = relationship.getSourceEntity(); ObjRelationship clash = source.getRelationship(userInputName); if (clash != null && clash != relationship) { @@ -522,7 +521,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele } } - if (objectTarget == null || !Util.nullSafeEquals(objectTarget.getName(), relationship.getTargetEntityName())) { + if (objectTarget == null || !Objects.equals(objectTarget.getName(), relationship.getTargetEntityName())) { hasChanges = true; // event notification is propagated via the modeler events from the caller — // the model itself doesn't know about the mediator. @@ -547,7 +546,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele String collectionType = ObjRelationship.DEFAULT_COLLECTION_TYPE.equals(targetCollection) || !relationship.isToMany() ? null : targetCollection; - if (!Util.nullSafeEquals(collectionType, relationship.getCollectionType())) { + if (!Objects.equals(collectionType, relationship.getCollectionType())) { hasChanges = true; relationship.setCollectionType(collectionType); } @@ -555,7 +554,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele // map key only makes sense for Map relationships String mapKey = COLLECTION_TYPE_MAP.equals(collectionType) && !DEFAULT_MAP_KEY.equals(this.mapKey) ? this.mapKey : null; - if (!Util.nullSafeEquals(mapKey, relationship.getMapKey())) { + if (!Objects.equals(mapKey, relationship.getMapKey())) { hasChanges = true; relationship.setMapKey(mapKey); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTableModel.java index a65981eb0..91f9d0b2e 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTableModel.java @@ -25,7 +25,7 @@ import org.apache.cayenne.map.Procedure; import org.apache.cayenne.map.ProcedureParameter; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.table.CMTableModel; -import org.apache.cayenne.util.Util; +import java.util.Objects; import javax.swing.JOptionPane; import java.util.ArrayList; @@ -152,7 +152,7 @@ public class ProcedureParameterTableModel extends CMTableModel<ProcedureParamete protected void setParameterName(String newVal, ProcedureParameter parameter) { String newName = newVal.trim(); String oldName = parameter.getName(); - if (Util.nullSafeEquals(oldName, newName)) { + if (Objects.equals(oldName, newName)) { return; } Procedure procedure = parameter.getProcedure(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java index f862a4b8a..73c33b57d 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java @@ -42,7 +42,7 @@ import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.query.CapsStrategy; import org.apache.cayenne.query.ProcedureQuery; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -184,7 +184,7 @@ public class ProcedureQueryView extends ProjectPanel { return; } - if (Util.nullSafeEquals(newName, query.getName())) { + if (Objects.equals(newName, query.getName())) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTab.java index 931eb992e..45c5be296 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTab.java @@ -35,7 +35,7 @@ import org.apache.cayenne.modeler.event.model.ProcedureEvent; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.modeler.toolkit.checkbox.CMCheckBox; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -140,7 +140,7 @@ public class ProcedureTab extends ProjectPanel implements ProcedureDisplayListen Procedure procedure = session.getSelectedProcedure(); - if (procedure == null || Util.nullSafeEquals(newName, procedure.getName())) { + if (procedure == null || Objects.equals(newName, procedure.getName())) { return; } @@ -172,7 +172,7 @@ public class ProcedureTab extends ProjectPanel implements ProcedureDisplayListen Procedure procedure = session.getSelectedProcedure(); - if (procedure != null && !Util.nullSafeEquals(procedure.getSchema(), text)) { + if (procedure != null && !Objects.equals(procedure.getSchema(), text)) { procedure.setSchema(text); session.fireProcedureEvent(ProcedureEvent.ofChange(this, procedure)); } @@ -185,7 +185,7 @@ public class ProcedureTab extends ProjectPanel implements ProcedureDisplayListen Procedure procedure = session.getSelectedProcedure(); - if (procedure != null && !Util.nullSafeEquals(procedure.getCatalog(), text)) { + if (procedure != null && !Objects.equals(procedure.getCatalog(), text)) { procedure.setCatalog(text); session.fireProcedureEvent(ProcedureEvent.ofChange(this, procedure)); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/BaseQueryMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/BaseQueryMainTab.java index 4a9cb4325..0b25f21ab 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/BaseQueryMainTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/BaseQueryMainTab.java @@ -31,7 +31,7 @@ import org.apache.cayenne.modeler.toolkit.Renderers; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -83,7 +83,7 @@ public abstract class BaseQueryMainTab extends ProjectPanel { return; } - if (Util.nullSafeEquals(newName, query.getName())) { + if (Objects.equals(newName, query.getName())) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/SelectPropertiesPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/SelectPropertiesPanel.java index 0266b112e..5a29eb322 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/SelectPropertiesPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/SelectPropertiesPanel.java @@ -39,6 +39,7 @@ import org.apache.cayenne.query.QueryCacheStrategy; import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.query.QueryMetadata; import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import org.slf4j.Logger; @@ -211,7 +212,7 @@ public abstract class SelectPropertiesPanel extends JPanel { if (query != null) { try { Object old = query.getProperty(property); - if (Util.nullSafeEquals(value, old)) { + if (Objects.equals(value, old)) { return; } query.setProperty(property, value); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryMainTab.java index 9d264b34f..acf219b7c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryMainTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryMainTab.java @@ -30,7 +30,7 @@ import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.project.extension.info.ObjectInfo; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import java.awt.BorderLayout; @@ -111,7 +111,7 @@ public class EjbqlQueryMainTab extends ProjectPanel { return; } - if (Util.nullSafeEquals(newName, query.getName())) { + if (Objects.equals(newName, query.getName())) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryScriptsTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryScriptsTab.java index ee41ff9ef..c9a687f8b 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryScriptsTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlQueryScriptsTab.java @@ -39,7 +39,7 @@ import org.apache.cayenne.project.validation.EJBQLStatementValidator.PositionExc import org.apache.cayenne.map.EJBQLQueryDescriptor; import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.modeler.toolkit.text.CMTextPane; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -177,7 +177,7 @@ public class EjbqlQueryScriptsTab extends ProjectPanel implements DocumentListen // Compare the value before modifying the query - text area // will call "verify" even if no changes have occured.... - if (!Util.nullSafeEquals(text, query.getEjbql())) { + if (!Objects.equals(text, query.getEjbql())) { query.setEjbql(text); session.fireQueryEvent(QueryEvent.ofChange(this, query)); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java index b2e17669c..8dfb78c4a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java @@ -40,7 +40,7 @@ import org.apache.cayenne.modeler.ui.project.editor.query.ObjectQueryPropertiesP import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.CayenneMapEntry; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.apache.cayenne.validation.ValidationException; import javax.swing.*; @@ -196,7 +196,7 @@ public class SelectQueryMainTab extends BaseQueryMainTab { try { String oldQualifier = ExpressionConvertor.asString(query.getQualifier()); - if (!Util.nullSafeEquals(oldQualifier, text)) { + if (!Objects.equals(oldQualifier, text)) { Expression exp = ExpressionConvertor.fromString(text); /* diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java index af118a37d..c22d42d43 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java @@ -30,7 +30,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.dbadapter.DbAdapters; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextPane; import org.apache.cayenne.modeler.toolkit.text.CMTextPane; -import org.apache.cayenne.util.Util; +import java.util.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -234,12 +234,12 @@ public class SQLTemplateScriptsTab extends ProjectPanel { // Compare the value before modifying the query - text pane // will call "verify" even if no changes have occured.... if (key.equals(DEFAULT_LABEL)) { - if (!Util.nullSafeEquals(text, query.getSql())) { + if (!Objects.equals(text, query.getSql())) { query.setSql(text); session.fireQueryEvent(QueryEvent.ofChange(this, query)); } } else { - if (!Util.nullSafeEquals(text, query.getAdapterSql().get(key))) { + if (!Objects.equals(text, query.getAdapterSql().get(key))) { query.getAdapterSql().put(key, text); session.fireQueryEvent(QueryEvent.ofChange(this, query)); }
