You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2026/10/19 21:43:56 UTC
(cayenne) branch master updated (8e1623cd9 -> 0bae84218)
This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
from 8e1623cd9 CAY-3054 Remove ObjRelationship.isReadOnly()
new 06192f48f removing unused APIs, inlining some
new 4fdc44f08 minor cleanup
new 0bae84218 Using new API for map sizing
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../java/org/apache/cayenne/DataRowLayout.java | 2 +-
.../cayenne/access/DataDomainQueryAction.java | 2 +-
.../org/apache/cayenne/access/DataRowStore.java | 2 +-
.../cayenne/access/HierarchicalObjectResolver.java | 2 +-
.../org/apache/cayenne/access/ObjectResolver.java | 4 +-
.../org/apache/cayenne/access/ObjectSnapshots.java | 5 +-
.../cayenne/access/PrefetchProcessorJointNode.java | 2 +-
.../java/org/apache/cayenne/access/ToManyMap.java | 2 +-
.../access/flush/DefaultDataDomainFlushAction.java | 2 +-
.../apache/cayenne/access/flush/EffectiveOpId.java | 2 +-
.../access/flush/operation/DbRowOpGraph.java | 2 +-
.../flush/operation/GraphBasedDbRowOpSorter.java | 8 +--
.../cayenne/access/flush/operation/Qualifier.java | 2 +-
.../cayenne/access/flush/operation/Values.java | 4 +-
.../translator/select/QualifierTranslator.java | 9 ++-
.../sqltemplate/DefaultTemplateContextFactory.java | 2 +-
.../cayenne/ashwood/AshwoodEntitySorter.java | 2 +-
.../main/java/org/apache/cayenne/exp/ValueExp.java | 2 +-
.../org/apache/cayenne/map/DbRelationship.java | 71 +++-------------------
.../org/apache/cayenne/map/EmbeddedResult.java | 2 +-
.../java/org/apache/cayenne/ql/QLParserHelper.java | 2 +-
.../cayenne/reflect/PersistentDescriptor.java | 4 +-
.../org/apache/cayenne/map/DbRelationshipIT.java | 17 ------
23 files changed, 42 insertions(+), 110 deletions(-)
(cayenne) 01/03: removing unused APIs, inlining some
Posted by aa...@apache.org.
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 06192f48fa0115f8e6199fdc87989a51b429b590
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Mon Oct 19 17:26:20 2026 -0400
removing unused APIs, inlining some
---
.../org/apache/cayenne/access/ObjectSnapshots.java | 5 +-
.../translator/select/QualifierTranslator.java | 7 ++-
.../org/apache/cayenne/map/DbRelationship.java | 54 ----------------------
.../org/apache/cayenne/map/DbRelationshipIT.java | 17 -------
4 files changed, 8 insertions(+), 75 deletions(-)
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/ObjectSnapshots.java b/cayenne/src/main/java/org/apache/cayenne/access/ObjectSnapshots.java
index 24f9f3cc2..3755f17d4 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/ObjectSnapshots.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/ObjectSnapshots.java
@@ -240,9 +240,8 @@ public final class ObjectSnapshots {
}
DbRelationship dbRel = rel.getDbRelationships().getFirst();
- Map<String, Object> fk = dbRel.srcFkSnapshotWithTargetSnapshot(idParts);
- for (Map.Entry<String, Object> entry : fk.entrySet()) {
- set(entry.getKey(), entry.getValue());
+ for (DbJoin join : dbRel.getJoins()) {
+ set(join.getSourceName(), idParts.get(join.getTargetName()));
}
}
}
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index f13c6d5fb..2d1806f99 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -98,6 +98,7 @@ import org.apache.cayenne.exp.ThenExp;
import org.apache.cayenne.exp.WhenExp;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.Embeddable;
@@ -462,7 +463,11 @@ class QualifierTranslator implements TraversalHandler {
Map<String, Object> valueSnapshot = getMultiAttributeValueSnapshot(node, parentNode);
// convert snapshot if we have attributes from source, not target
if (result.getLastAttribute().getEntity() == relationship.getSourceEntity()) {
- valueSnapshot = relationship.srcFkSnapshotWithTargetSnapshot(valueSnapshot);
+ Map<String, Object> fkSnapshot = HashMap.newHashMap(relationship.getJoins().size());
+ for (DbJoin join : relationship.getJoins()) {
+ fkSnapshot.put(join.getSourceName(), valueSnapshot.get(join.getTargetName()));
+ }
+ valueSnapshot = fkSnapshot;
}
// build compound PK/FK comparison node
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 1b890c0d7..b012e74aa 100644
--- a/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java
+++ b/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java
@@ -382,60 +382,6 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
}
}
- /**
- * Common code to srcSnapshotWithTargetSnapshot. Both are functionally the
- * same, except for the name, and whether they operate on a toMany or a
- * toOne.
- */
- private Map<String, Object> srcSnapshotWithTargetSnapshot(Map<String, Object> targetSnapshot) {
- int len = joins.size();
-
- // optimize for the most common single column join
- if (len == 1) {
- DbJoin join = joins.get(0);
- Object val = targetSnapshot.get(join.getTargetName());
- return Collections.singletonMap(join.getSourceName(), val);
- }
-
- // general case
- Map<String, Object> idMap = new HashMap<>(len * 2);
- for (DbJoin join : joins) {
- Object val = targetSnapshot.get(join.getTargetName());
- idMap.put(join.getSourceName(), val);
- }
-
- return idMap;
- }
-
- /**
- * Creates a snapshot of foreign key attributes of a source object of this
- * relationship based on a snapshot of a target. Only "to-one" relationships
- * are supported. Throws CayenneRuntimeException if relationship is
- * "to many".
- */
- public Map<String, Object> srcFkSnapshotWithTargetSnapshot(Map<String, Object> targetSnapshot) {
-
- if (isToMany()) {
- throw new CayenneRuntimeException("Only 'to one' relationships support this method.");
- }
-
- return srcSnapshotWithTargetSnapshot(targetSnapshot);
- }
-
- /**
- * Creates a snapshot of primary key attributes of a source object of this
- * relationship based on a snapshot of a target. Only "to-many"
- * relationships are supported. Throws CayenneRuntimeException if
- * relationship is "to one".
- */
- public Map<String, Object> srcPkSnapshotWithTargetSnapshot(Map<String, Object> targetSnapshot) {
- if (!isToMany()) {
- throw new CayenneRuntimeException("Only 'to many' relationships support this method.");
- }
-
- return srcSnapshotWithTargetSnapshot(targetSnapshot);
- }
-
/**
* Sets relationship multiplicity.
*/
diff --git a/cayenne/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java b/cayenne/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
index b239fd173..2eca64a37 100644
--- a/cayenne/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
@@ -26,10 +26,6 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -45,14 +41,12 @@ public class DbRelationshipIT {
protected DbEntity artistEnt;
protected DbEntity paintingEnt;
- protected DbEntity galleryEnt;
@BeforeEach
public void setUp() throws Exception {
runtime = env.runtime();
artistEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("ARTIST");
paintingEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("PAINTING");
- galleryEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("GALLERY");
}
@Test
@@ -72,17 +66,6 @@ public class DbRelationshipIT {
assertTrue(toPaintingInfo.getReverseRelationship().isFromFK());
}
- @Test
- public void srcFkSnapshotWithTargetSnapshot() throws Exception {
- Map<String, Object> map = new HashMap<>();
- Integer id = 44;
- map.put("GALLERY_ID", id);
-
- DbRelationship dbRel = galleryEnt.getRelationship("paintingArray");
- Map<String, Object> targetMap = dbRel.getReverseRelationship().srcFkSnapshotWithTargetSnapshot(map);
- assertEquals(id, targetMap.get("GALLERY_ID"));
- }
-
@Test
public void getReverseRelationship1() throws Exception {
// start with "to many"
(cayenne) 03/03: Using new API for map sizing
Posted by aa...@apache.org.
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 0bae842186c41e5a4e7b3946225819fec56fa7f3
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Mon Oct 19 17:41:00 2026 -0400
Using new API for map sizing
some of it fixes incorrectly-sized maps, others are just syntactic sugar
---
cayenne/src/main/java/org/apache/cayenne/DataRowLayout.java | 2 +-
.../java/org/apache/cayenne/access/DataDomainQueryAction.java | 2 +-
cayenne/src/main/java/org/apache/cayenne/access/DataRowStore.java | 2 +-
.../org/apache/cayenne/access/HierarchicalObjectResolver.java | 2 +-
.../src/main/java/org/apache/cayenne/access/ObjectResolver.java | 4 ++--
.../org/apache/cayenne/access/PrefetchProcessorJointNode.java | 2 +-
cayenne/src/main/java/org/apache/cayenne/access/ToManyMap.java | 2 +-
.../apache/cayenne/access/flush/DefaultDataDomainFlushAction.java | 2 +-
.../main/java/org/apache/cayenne/access/flush/EffectiveOpId.java | 2 +-
.../org/apache/cayenne/access/flush/operation/DbRowOpGraph.java | 2 +-
.../cayenne/access/flush/operation/GraphBasedDbRowOpSorter.java | 8 ++++----
.../java/org/apache/cayenne/access/flush/operation/Qualifier.java | 2 +-
.../java/org/apache/cayenne/access/flush/operation/Values.java | 4 ++--
.../cayenne/access/translator/select/QualifierTranslator.java | 2 +-
.../translator/sqltemplate/DefaultTemplateContextFactory.java | 2 +-
.../main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java | 2 +-
cayenne/src/main/java/org/apache/cayenne/exp/ValueExp.java | 2 +-
cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java | 2 +-
cayenne/src/main/java/org/apache/cayenne/map/EmbeddedResult.java | 2 +-
cayenne/src/main/java/org/apache/cayenne/ql/QLParserHelper.java | 2 +-
.../java/org/apache/cayenne/reflect/PersistentDescriptor.java | 4 ++--
21 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/cayenne/src/main/java/org/apache/cayenne/DataRowLayout.java b/cayenne/src/main/java/org/apache/cayenne/DataRowLayout.java
index 505c6448e..43436652b 100644
--- a/cayenne/src/main/java/org/apache/cayenne/DataRowLayout.java
+++ b/cayenne/src/main/java/org/apache/cayenne/DataRowLayout.java
@@ -41,7 +41,7 @@ public final class DataRowLayout implements Serializable {
private final transient Map<String, Integer> indexes;
private DataRowLayout(String[] names) {
- this.indexes = new HashMap<>((int) Math.ceil(names.length / 0.75));
+ this.indexes = HashMap.newHashMap(names.length);
// the array is owned, so the duplicates are renamed in place
for (int i = names.length - 1; i >= 0; i--) {
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java b/cayenne/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
index b9d2cca3a..0c216a232 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
@@ -674,7 +674,7 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
// distinct filtering
if (!metadata.isSuppressingDistinct()) {
- Set<List<?>> seen = new HashSet<>(result.size());
+ Set<List<?>> seen = HashSet.newHashSet(result.size());
result.removeIf(objects -> !seen.add(Arrays.asList(objects)));
}
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/DataRowStore.java b/cayenne/src/main/java/org/apache/cayenne/access/DataRowStore.java
index b6744bb95..d10cbd7aa 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/DataRowStore.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/DataRowStore.java
@@ -444,7 +444,7 @@ public class DataRowStore {
Object newValue = newSnapshot.get(name);
if (!Objects.deepEquals(oldValue, newValue)) {
if (changes == null) {
- changes = new HashMap<>(newSnapshot.size());
+ changes = HashMap.newHashMap(newSnapshot.size());
}
changes.put(name, newValue);
}
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolver.java b/cayenne/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolver.java
index e0a08c405..e0c098d67 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolver.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolver.java
@@ -408,7 +408,7 @@ class HierarchicalObjectResolver {
if (processorNode.isJointChildren()) {
List<Persistent> objects = processorNode.getObjects();
if (objects != null && objects.size() > 1) {
- Set<Persistent> seen = new HashSet<>(objects.size());
+ Set<Persistent> seen = HashSet.newHashSet(objects.size());
objects.removeIf(persistent -> !seen.add(persistent));
}
}
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/ObjectResolver.java b/cayenne/src/main/java/org/apache/cayenne/access/ObjectResolver.java
index 320ca1e77..5c1b822aa 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/ObjectResolver.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/ObjectResolver.java
@@ -168,7 +168,7 @@ class ObjectResolver {
return ObjectId.of(name, pkNames[0], val);
}
- Map<String, Object> idMap = new HashMap<>(pkNames.length * 2);
+ Map<String, Object> idMap = HashMap.newHashMap(pkNames.length);
for (int i = 0; i < pkNames.length; i++) {
Object val = reader.get(row, pkColumns[i]);
if (val == null) {
@@ -321,7 +321,7 @@ class ObjectResolver {
// ... handle generic case - PK.size > 1
- Map<String, Object> idMap = new HashMap<>(pk.size() * 2);
+ Map<String, Object> idMap = HashMap.newHashMap(pk.size());
for (final DbAttribute attribute : pk) {
String key = namePrefix.dot(attribute.getName()).value();
Object val = dataRow.get(key);
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java b/cayenne/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
index d1e2ac9bb..93993556c 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
@@ -85,7 +85,7 @@ class PrefetchProcessorJointNode extends PrefetchProcessorNode {
}
objects = new ArrayList<>(capacity);
- resolved = new HashMap<>(capacity);
+ resolved = HashMap.newHashMap(capacity);
resolvedRows = new ArrayList<>(capacity);
buildRowMapping();
buildPKIndex();
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/ToManyMap.java b/cayenne/src/main/java/org/apache/cayenne/access/ToManyMap.java
index 35f05c080..4c598c6d0 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/ToManyMap.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/ToManyMap.java
@@ -98,7 +98,7 @@ class ToManyMap<K, V> extends ToManyHolder<V> implements Map<K, V> {
*/
@SuppressWarnings("unchecked")
protected Map<K, V> indexCollection(Collection<V> collection) {
- Map<K, V> map = new HashMap<>((int) (collection.size() * 1.33d) + 1);
+ Map<K, V> map = HashMap.newHashMap(collection.size());
for (V next : collection) {
K key = (K) mapKeyAccessor.getValue(next);
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/flush/DefaultDataDomainFlushAction.java b/cayenne/src/main/java/org/apache/cayenne/access/flush/DefaultDataDomainFlushAction.java
index 7e0f9dfa7..8903d8020 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/flush/DefaultDataDomainFlushAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/flush/DefaultDataDomainFlushAction.java
@@ -133,7 +133,7 @@ public class DefaultDataDomainFlushAction implements DataDomainFlushAction {
* @return collection of ops with merged duplicates
*/
protected List<DbRowOp> mergeSameObjectIds(List<DbRowOp> dbRowOps) {
- Map<ObjectId, DbRowOp> index = new HashMap<>(dbRowOps.size());
+ Map<ObjectId, DbRowOp> index = HashMap.newHashMap(dbRowOps.size());
// new EffectiveOpId()
dbRowOps.forEach(row -> index.merge(OpIdFactory.idForOperation(row.getChangeId()), row, new DbRowOpMerger()));
// reuse list
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/flush/EffectiveOpId.java b/cayenne/src/main/java/org/apache/cayenne/access/flush/EffectiveOpId.java
index 6f4c8fa52..596af0642 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/flush/EffectiveOpId.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/flush/EffectiveOpId.java
@@ -54,7 +54,7 @@ public class EffectiveOpId {
if(idSnapshot.size() == 1 && !(idSnapshot.values().iterator().next() instanceof DeferredValue)) {
this.snapshot = idSnapshot;
} else {
- this.snapshot = new HashMap<>(idSnapshot.size());
+ this.snapshot = HashMap.newHashMap(idSnapshot.size());
idSnapshot.forEach((key, value) -> {
Object resolved = DeferredValue.resolve(value);
// keep the unresolved value if it resolves to null, preserving the original snapshot entry
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/DbRowOpGraph.java b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/DbRowOpGraph.java
index 0d78e4404..4e925561a 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/DbRowOpGraph.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/DbRowOpGraph.java
@@ -62,7 +62,7 @@ class DbRowOpGraph {
* Return (as a Map) the in-degree of each vertex.
*/
private Map<DbRowOp, Integer> inDegree() {
- Map<DbRowOp, Integer> result = new LinkedHashMap<>(neighbors.size());
+ Map<DbRowOp, Integer> result = LinkedHashMap.newLinkedHashMap(neighbors.size());
neighbors.forEach((from, neighbors) -> {
neighbors.forEach(to -> result.compute(to, (k, old) -> {
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/GraphBasedDbRowOpSorter.java b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/GraphBasedDbRowOpSorter.java
index 552f91fd2..f058d049b 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/GraphBasedDbRowOpSorter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/GraphBasedDbRowOpSorter.java
@@ -100,7 +100,7 @@ public class GraphBasedDbRowOpSorter implements DbRowOpSorter {
initDataSync();
// build index op by ID
- Map<EffectiveOpId, List<DbRowOp>> indexById = new HashMap<>(dbRows.size());
+ Map<EffectiveOpId, List<DbRowOp>> indexById = HashMap.newHashMap(dbRows.size());
dbRows.forEach(op -> indexById
.computeIfAbsent(effectiveIdFor(op), id -> new ArrayList<>(1))
.add(op)
@@ -195,7 +195,7 @@ public class GraphBasedDbRowOpSorter implements DbRowOpSorter {
return Collections.emptyMap();
}
} else {
- Map<EffectiveOpId, Map<String, Object>> effectiveOpIds = new HashMap<>(parentIdSnapshots.size());
+ Map<EffectiveOpId, Map<String, Object>> effectiveOpIds = HashMap.newHashMap(parentIdSnapshots.size());
parentIdSnapshots.forEach(snapshot -> {
EffectiveOpId id = this.effectiveIdFor(relationship, snapshot);
if(id != null) {
@@ -214,7 +214,7 @@ public class GraphBasedDbRowOpSorter implements DbRowOpSorter {
int len = relationship.getJoins().size();
Map<String, Object> idMap = len == 1
? new SingleEntryMap<>(relationship.getJoins().get(0).getTargetName())
- : new HashMap<>(len);
+ : HashMap.newHashMap(len);
relationship.getJoins().forEach(join -> {
Object value = opSnapshot.get(join.getSourceName());
if(value == null) {
@@ -282,7 +282,7 @@ public class GraphBasedDbRowOpSorter implements DbRowOpSorter {
int joinSize = relationship.getJoins().size();
Map<String, Object> snapshot = joinSize == 1
? new SingleEntryMap<>(relationship.getJoins().get(0).getSourceName())
- : new HashMap<>(joinSize);
+ : HashMap.newHashMap(joinSize);
relationship.getJoins().forEach(join -> {
Object value = dataRow.get(join.getSourceName());
if(value != null) {
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Qualifier.java b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Qualifier.java
index 0589e0a2d..9e473cd16 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Qualifier.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Qualifier.java
@@ -53,7 +53,7 @@ public class Qualifier {
return new HashMap<>(idSnapshot);
}
- Map<String, Object> qualifier = new HashMap<>(additionalQualifier.size() + idSnapshot.size());
+ Map<String, Object> qualifier = HashMap.newHashMap(additionalQualifier.size() + idSnapshot.size());
AtomicBoolean hasPK = new AtomicBoolean(!idSnapshot.isEmpty());
idSnapshot.forEach((attr, value) -> {
if(value != null) {
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Values.java b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Values.java
index 2d5591463..2181f3638 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Values.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/flush/operation/Values.java
@@ -80,13 +80,13 @@ public class Values {
} else {
if(other.attributeSnapshot != null) {
if(this.attributeSnapshot == null) {
- this.attributeSnapshot = new HashMap<>(other.attributeSnapshot.size());
+ this.attributeSnapshot = HashMap.newHashMap(other.attributeSnapshot.size());
}
other.attributeSnapshot.forEach(attributeSnapshot::putIfAbsent);
}
if(other.fkSnapshot != null) {
if(this.fkSnapshot == null) {
- this.fkSnapshot = new HashMap<>(other.fkSnapshot.size());
+ this.fkSnapshot = HashMap.newHashMap(other.fkSnapshot.size());
}
other.fkSnapshot.forEach(fkSnapshot::putIfAbsent);
}
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index 2d1806f99..104a014ac 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -438,7 +438,7 @@ class QualifierTranslator implements TraversalHandler {
}
if (operand instanceof EmbeddableObject embeddableObject) {
- Map<String, Object> snapshot = new HashMap<>(embeddable.getAttributes().size());
+ Map<String, Object> snapshot = HashMap.newHashMap(embeddable.getAttributes().size());
embeddable.getAttributeMap().forEach((name, attr) ->
snapshot.put(attr.getDbAttributeName(), embeddableObject.readPropertyDirectly(name)));
return snapshot;
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/DefaultTemplateContextFactory.java b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/DefaultTemplateContextFactory.java
index f3b35417f..eaca1a7b9 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/DefaultTemplateContextFactory.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/DefaultTemplateContextFactory.java
@@ -57,7 +57,7 @@ public class DefaultTemplateContextFactory implements TemplateContextFactory {
@Override
public Context createContext(Map<String, ?> parameters, boolean positionalMode, DbAdapter adapter) {
- Map<String, Object> realParameters = new HashMap<>(parameters.size() + 1);
+ Map<String, Object> realParameters = HashMap.newHashMap(parameters.size() + 1);
realParameters.putAll(parameters);
realParameters.put("helper", helper);
return new Context(directives, realParameters, positionalMode, adapter);
diff --git a/cayenne/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java b/cayenne/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
index bd19fdb45..c64197c36 100644
--- a/cayenne/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
@@ -125,7 +125,7 @@ public class AshwoodEntitySorter implements EntitySorter {
IndegreeTopologicalSort<Collection<DbEntity>> sorter = new IndegreeTopologicalSort<>(
contractedReferentialDigraph);
- Map<DbEntity, ComponentRecord> components = new HashMap<>(contractedReferentialDigraph.order());
+ Map<DbEntity, ComponentRecord> components = HashMap.newHashMap(contractedReferentialDigraph.order());
int componentIndex = 0;
while (sorter.hasNext()) {
Collection<DbEntity> component = sorter.next();
diff --git a/cayenne/src/main/java/org/apache/cayenne/exp/ValueExp.java b/cayenne/src/main/java/org/apache/cayenne/exp/ValueExp.java
index f10712dca..025178cab 100644
--- a/cayenne/src/main/java/org/apache/cayenne/exp/ValueExp.java
+++ b/cayenne/src/main/java/org/apache/cayenne/exp/ValueExp.java
@@ -57,7 +57,7 @@ public abstract sealed class ValueExp extends Expression permits ArithmeticExp,
if(firstChild instanceof Map) {
@SuppressWarnings("unchecked")
Map<Object, Object> child = (Map<Object, Object>) firstChild;
- Map<Object, Object> result = new HashMap<>(child.size());
+ Map<Object, Object> result = HashMap.newHashMap(child.size());
for(Map.Entry<Object, Object> entry : child.entrySet()) {
result.put(entry.getKey(), evaluateSubNode(entry.getValue(), evaluatedChildren));
}
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 c56b93bf2..336002db0 100644
--- a/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java
+++ b/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java
@@ -352,7 +352,7 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
}
// handle generic case: numJoins > 1
else {
- idMap = new HashMap<>(numJoins * 2);
+ idMap = HashMap.newHashMap(numJoins);
for (DbJoin join : joins) {
DbAttribute source = join.getSource();
Object val = srcSnapshot.get(join.getSourceName());
diff --git a/cayenne/src/main/java/org/apache/cayenne/map/EmbeddedResult.java b/cayenne/src/main/java/org/apache/cayenne/map/EmbeddedResult.java
index 553c9d269..02fc673cf 100644
--- a/cayenne/src/main/java/org/apache/cayenne/map/EmbeddedResult.java
+++ b/cayenne/src/main/java/org/apache/cayenne/map/EmbeddedResult.java
@@ -37,7 +37,7 @@ public class EmbeddedResult {
public EmbeddedResult(Embeddable embeddable, int size) {
this.embeddable = embeddable;
- this.fields = new HashMap<>((int) Math.ceil(size / 0.75));
+ this.fields = HashMap.newHashMap(size);
}
public void addAttribute(ObjAttribute attr) {
diff --git a/cayenne/src/main/java/org/apache/cayenne/ql/QLParserHelper.java b/cayenne/src/main/java/org/apache/cayenne/ql/QLParserHelper.java
index 1378d5e92..5a70399d4 100644
--- a/cayenne/src/main/java/org/apache/cayenne/ql/QLParserHelper.java
+++ b/cayenne/src/main/java/org/apache/cayenne/ql/QLParserHelper.java
@@ -45,7 +45,7 @@ class QLParserHelper {
}
String[] pathSegments = path.split("\\.");
- Map<String, String> aliasMap = new HashMap<>(pathSegments.length);
+ Map<String, String> aliasMap = HashMap.newHashMap(pathSegments.length);
for (int i = 0; i < pathSegments.length; i++) {
if (pathSegments[i].contains("#")) {
String[] splitSegment = pathSegments[i].split("#");
diff --git a/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java b/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
index 6a22beb1d..55fc6d21e 100644
--- a/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
+++ b/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
@@ -164,8 +164,8 @@ public class PersistentDescriptor implements ClassDescriptor {
List<Entry<String, PropertyDescriptor>> entries = new ArrayList<>(properties.entrySet());
entries.sort(PropertyComparator.comparator);
- Map<String, PropertyDescriptor> orderedProperties = new LinkedHashMap<>((int) (entries.size() / 0.75));
- Map<String, PropertyDescriptor> orderedDeclared = new LinkedHashMap<>((int) (declaredProperties.size() / 0.75));
+ Map<String, PropertyDescriptor> orderedProperties = LinkedHashMap.newLinkedHashMap(entries.size());
+ Map<String, PropertyDescriptor> orderedDeclared = LinkedHashMap.newLinkedHashMap(declaredProperties.size());
for (Entry<String, PropertyDescriptor> e : entries) {
orderedProperties.put(e.getKey(), e.getValue());
(cayenne) 02/03: minor cleanup
Posted by aa...@apache.org.
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 4fdc44f08c32d3bd7314839305d823789d7eb9c5
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Mon Oct 19 17:36:03 2026 -0400
minor cleanup
---
.../main/java/org/apache/cayenne/map/DbRelationship.java | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
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 b012e74aa..c56b93bf2 100644
--- a/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java
+++ b/cayenne/src/main/java/org/apache/cayenne/map/DbRelationship.java
@@ -68,7 +68,7 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
*
* @since 1.1
*/
- public void encodeAsXML(XMLEncoder encoder, ProjectNodeVisitor delegate) {
+ public void encodeAsXML(XMLEncoder encoder, ProjectNodeVisitor<?> delegate) {
encoder.start("dbRelationship")
.attribute("name", getName())
.attribute("source", getSourceEntity().getName());
@@ -123,12 +123,12 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
}
private Collection<DbAttribute> mapJoinsToAttributes(Function<DbJoin, DbAttribute> mapper) {
- if (joins.size() == 0) {
+ if (joins.isEmpty()) {
return Collections.emptyList();
}
// fast path for common case
if(joins.size() == 1) {
- return Collections.singletonList(mapper.apply(joins.get(0)));
+ return Collections.singletonList(mapper.apply(joins.getFirst()));
}
Collection<DbAttribute> result = new ArrayList<>(joins.size());
for(DbJoin join : joins) {
@@ -186,7 +186,7 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
DbEntity src = this.getSourceEntity();
// special case - relationship to self with no joins...
- if (target == src && joins.size() == 0) {
+ if (target == src && joins.isEmpty()) {
return null;
}
@@ -270,7 +270,7 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
*/
public boolean isValidForDepPk() {
// handle case with no joins
- if (getJoins().size() == 0) {
+ if (getJoins().isEmpty()) {
return false;
}
@@ -341,7 +341,7 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
// optimize for the most common single column join
if (numJoins == 1) {
- DbJoin join = joins.get(0);
+ DbJoin join = joins.getFirst();
Object val = srcSnapshot.get(join.getSourceName());
if (val == null) {
foundNulls++;
@@ -406,11 +406,10 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
return true;
}
- if (!(o instanceof DbJoin)) {
+ if (!(o instanceof DbJoin j)) {
return false;
}
- DbJoin j = (DbJoin) o;
return j.relationship == this.relationship && Objects.equals(j.sourceName, this.sourceName)
&& Objects.equals(j.targetName, this.targetName);
}