From 6ffaba02d0e92f0da9e80cf4ff39ed70da40958a Mon Sep 17 00:00:00 2001 From: AK_ Date: Tue, 23 Sep 2025 17:58:46 -0400 Subject: [PATCH] [REFACTOR] Avoid double lookups in keyed repo checks; trim names; clarify opened check in Nitrite.java --- .../main/java/org/dizitart/no2/Nitrite.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/nitrite/src/main/java/org/dizitart/no2/Nitrite.java b/nitrite/src/main/java/org/dizitart/no2/Nitrite.java index a5be7679a..119e166e1 100644 --- a/nitrite/src/main/java/org/dizitart/no2/Nitrite.java +++ b/nitrite/src/main/java/org/dizitart/no2/Nitrite.java @@ -312,9 +312,11 @@ default boolean hasRepository(Class type) { */ default boolean hasRepository(Class type, String key) { checkOpened(); + Map> keyed = listKeyedRepositories(); + Set entities = keyed.get(key); + if (entities == null) return false; String entityName = ObjectUtils.getEntityName(type); - return listKeyedRepositories().containsKey(key) - && listKeyedRepositories().get(key).contains(entityName); + return entities.contains(entityName); } /** @@ -343,8 +345,10 @@ default boolean hasRepository(EntityDecorator entityDecorator) { */ default boolean hasRepository(EntityDecorator entityDecorator, String key) { checkOpened(); - return listKeyedRepositories().containsKey(key) - && listKeyedRepositories().get(key).contains(entityDecorator.getEntityName()); + Map> keyed = listKeyedRepositories(); + Set entities = keyed.get(key); + if (entities == null) return false; + return entities.contains(entityDecorator.getEntityName()); } /** @@ -355,11 +359,12 @@ default boolean hasRepository(EntityDecorator entityDecorator, String key * reserved names */ default void validateCollectionName(String name) { - notNull(name, "name cannot be null"); - notEmpty(name, "name cannot be empty"); + notNull(name, "name cannot be null"); + String normalized = name.trim(); + notEmpty(normalized, "name cannot be empty"); for (String reservedName : RESERVED_NAMES) { - if (name.contains(reservedName)) { + if (normalized.contains(reservedName)) { throw new ValidationException("Name cannot contain " + reservedName); } }