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

ahuber pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/main by this push:
     new f42b5bed7f1 CAUSEWAY-3859: Java record refactoring (part 16)
f42b5bed7f1 is described below

commit f42b5bed7f1f4103cd2dc466139312bd6f17f6ab
Author: Andi Huber <[email protected]>
AuthorDate: Wed Feb 19 08:07:45 2025 +0100

    CAUSEWAY-3859: Java record refactoring (part 16)
---
 .../members/layout/group/GroupIdAndName.java       | 34 +++++++-----------
 .../members/layout/group/LayoutGroupFacet.java     |  4 +--
 .../DomainObjectAnnotationFacetFactory.java        |  6 ++--
 .../MetaModelValidatorForMixinTypes.java           | 19 ++++------
 ...ainObjectLayoutAnnotationUsingTitleUiEvent.java |  6 ++--
 .../facets/object/entity/EntityOrmMetadata.java    | 42 +++++++++-------------
 .../object/entity/_EntityFacetForTesting.java      | 14 ++++----
 .../mixin/MixinFacetForDomainObjectAnnotation.java | 33 +++++++++--------
 .../ident/TitleFacetFromProjectionFacet.java       |  2 +-
 .../metamodel/facets/object/title/TitleFacet.java  |  4 +--
 .../facets/object/title/TitleRenderRequest.java    | 34 ++++++++----------
 .../annotation/TitleFacetViaTitleAnnotation.java   |  9 +++--
 .../methods/TitleFacetFromToStringMethod.java      |  2 +-
 .../title/methods/TitleFacetViaTitleMethod.java    |  7 ++--
 .../title/parser/TitleFacetFromValueFacet.java     | 16 ++++-----
 .../core/metamodel/object/MmTitleUtils.java        |  5 +--
 .../core/metamodel/object/_InternalTitleUtil.java  | 13 +++----
 .../grid/bootstrap/GridSystemServiceBootstrap.java |  2 +-
 .../services/grid/bootstrap/_GridModel.java        | 16 ++++-----
 .../services/title/TitleServiceDefault.java        |  9 ++---
 .../spec/impl/ObjectSpecificationDefault.java      |  2 +-
 .../memberorder/DeweyOrderComparatorTest.java      |  2 +-
 .../ordering/memberorder/DeweyOrderSetTest.java    |  2 +-
 23 files changed, 116 insertions(+), 167 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
index c4b630536da..a33565e49d9 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
@@ -32,32 +32,24 @@
 import org.apache.causeway.commons.internal.base._Strings;
 
 import org.jspecify.annotations.NonNull;
-import lombok.Value;
-
-@Value(staticConstructor = "of")
-public class GroupIdAndName
-implements
-    Comparable<GroupIdAndName>,
-    Serializable {
-
-    private static final long serialVersionUID = 1L;
 
+public record GroupIdAndName(
     /**
      * Id of a layout group (a <i>FieldSet</i> or a <i>Collection panel</i>).
      */
-    private final @NonNull String id;
-
+    @NonNull String id,
     /**
      * (Friendly) name of a layout group (a <i>FieldSet</i> or a <i>Collection 
panel</i>).
      */
-    private final @NonNull String name;
+    @NonNull String name)
+implements
+    Comparable<GroupIdAndName>,
+    Serializable {
 
     @Override
     public int compareTo(final GroupIdAndName other) {
-        if(other==null) {
-            return -1; // null last
-        }
-        return this.getId().compareTo(other.getId());
+        if(other==null) return -1; // null last
+        return this.id().compareTo(other.id());
     }
 
     // -- FACTORIES FOR ANNOTATIONS
@@ -77,9 +69,7 @@ public static Optional<GroupIdAndName> forActionLayout(
                 actionLayout.fieldSetId(),
                 actionLayout.fieldSetName());
 
-        if(explicit.isPresent()) {
-            return explicit;
-        }
+        if(explicit.isPresent()) return explicit;
 
         return GroupIdAndName.inferIfOneMissing(
                 actionLayout.associateWith(),
@@ -141,12 +131,12 @@ private static Optional<GroupIdAndName> inferIfOneMissing(
             if(inferredId.isEmpty()) {
                 return Optional.empty(); // cannot infer a usable id, so don't 
create a LayoutGroupFacet down the line
             }
-            return Optional.of(GroupIdAndName.of(inferredId, name));
+            return Optional.of(new GroupIdAndName(inferredId, name));
         } else if(isNameUnspecified) {
             var inferredName = inferNameFromId(id);
-            return Optional.of(GroupIdAndName.of(id, inferredName));
+            return Optional.of(new GroupIdAndName(id, inferredName));
         }
-        return Optional.of(GroupIdAndName.of(id, name));
+        return Optional.of(new GroupIdAndName(id, name));
     }
 
     /**
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
index 1b075b5c53c..32f685191aa 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
@@ -58,14 +58,14 @@ public interface LayoutGroupFacet extends Facet {
      * Id of the layout group this member is associated with.
      */
     public default String getGroupId() {
-        return getGroupIdAndName().getId();
+        return getGroupIdAndName().id();
     }
 
     /**
      * (Friendly) name of the layout group this member is associated with.
      */
     public default String getGroupName() {
-        return getGroupIdAndName().getName();
+        return getGroupIdAndName().name();
     }
 
     /**
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index ee31c6ca353..c7a7a402e38 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -26,7 +26,9 @@
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
 
+import org.jspecify.annotations.NonNull;
 import org.jspecify.annotations.Nullable;
+
 import org.springframework.util.ClassUtils;
 
 import org.apache.causeway.applib.Identifier;
@@ -71,7 +73,6 @@
 import 
org.apache.causeway.core.metamodel.facets.object.domainobject.editing.ImmutableFacetForDomainObjectAnnotation;
 import 
org.apache.causeway.core.metamodel.facets.object.domainobject.entitychangepublishing.EntityChangePublishingFacetForDomainObjectAnnotation;
 import 
org.apache.causeway.core.metamodel.facets.object.domainobject.introspection.IntrospectionPolicyFacetForDomainObjectAnnotation;
-import 
org.apache.causeway.core.metamodel.facets.object.mixin.MetaModelValidatorForMixinTypes;
 import 
org.apache.causeway.core.metamodel.facets.object.mixin.MixinFacetForDomainObjectAnnotation;
 import 
org.apache.causeway.core.metamodel.facets.object.viewmodel.ViewModelFacetForDomainObjectAnnotation;
 import org.apache.causeway.core.metamodel.object.MmEventUtils;
@@ -82,7 +83,6 @@
 
 import static org.apache.causeway.commons.internal.base._NullSafe.stream;
 
-import org.jspecify.annotations.NonNull;
 import lombok.extern.log4j.Log4j2;
 
 @Log4j2
@@ -353,7 +353,7 @@ void processNature(
 
         addFacetIfPresent(
                 MixinFacetForDomainObjectAnnotation
-                .create(mixinDomainObjectIfAny, cls, facetHolder, 
mixinTypeValidator));
+                    .create(mixinDomainObjectIfAny, cls, facetHolder));
 
     }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/MetaModelValidatorForMixinTypes.java
similarity index 87%
rename from 
core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java
rename to 
core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/MetaModelValidatorForMixinTypes.java
index fe020290c6b..76cb5efcb52 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobject/MetaModelValidatorForMixinTypes.java
@@ -16,7 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.core.metamodel.facets.object.mixin;
+package org.apache.causeway.core.metamodel.facets.object.domainobject;
+
+import org.jspecify.annotations.NonNull;
 
 import org.apache.causeway.applib.Identifier;
 import org.apache.causeway.applib.id.LogicalType;
@@ -26,15 +28,8 @@
 
 import static 
org.apache.causeway.commons.internal.reflection._Reflect.predicates.paramCount;
 
-import org.jspecify.annotations.NonNull;
-
-public class MetaModelValidatorForMixinTypes {
-
-    private final String annotation;
-
-    public MetaModelValidatorForMixinTypes(final String annotation) {
-        this.annotation = annotation;
-    }
+record MetaModelValidatorForMixinTypes(
+    @NonNull String annotation) {
 
     public boolean ensureMixinType(
             final @NonNull FacetHolder facetHolder,
@@ -44,9 +39,7 @@ public boolean ensureMixinType(
                 .getPublicConstructors(candidateMixinType)
                 .filter(paramCount(1));
 
-        if(mixinContructors.getCardinality().isOne()) {
-            return true; // happy case
-        }
+        if(mixinContructors.getCardinality().isOne()) return true; // happy 
case
 
         if(mixinContructors.getCardinality().isZero()) {
             ValidationFailure.raise(
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
index 80c2f560773..3ce94788718 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
@@ -89,11 +89,9 @@ public 
TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent(
     @Override
     public String title(final TitleRenderRequest titleRenderRequest) {
 
-        final ManagedObject owningAdapter = titleRenderRequest.getObject();
+        final ManagedObject owningAdapter = titleRenderRequest.object();
 
-        if(ManagedObjects.isNullOrUnspecifiedOrEmpty(owningAdapter)) {
-            return null;
-        }
+        if(ManagedObjects.isNullOrUnspecifiedOrEmpty(owningAdapter)) return 
null;
 
         final TitleUiEvent<Object> titleUiEvent = 
newTitleUiEvent(owningAdapter);
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/EntityOrmMetadata.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/EntityOrmMetadata.java
index 533282f4dd2..4a1cc2e3c2f 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/EntityOrmMetadata.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/EntityOrmMetadata.java
@@ -20,35 +20,25 @@
 
 import java.util.Optional;
 
-import org.apache.causeway.commons.collections.Can;
-import 
org.apache.causeway.core.config.beans.CausewayBeanMetaData.PersistenceStack;
-
 import org.jspecify.annotations.NonNull;
-import lombok.experimental.Accessors;
-
-// record candidate
[email protected] @Accessors(fluent=true)
-public class EntityOrmMetadata {
-
-    @lombok.Value @Accessors(fluent=true)
-    public static class ColumnOrmMetadata {
-
-        final @NonNull String name;
-        final @NonNull String memberId;
-        final @NonNull String javaType;
-        //final @NonNull String sqlType;
 
-        final @NonNull Object vendorColumnMetadata;
+import org.apache.causeway.commons.collections.Can;
+import 
org.apache.causeway.core.config.beans.CausewayBeanMetaData.PersistenceStack;
 
+public record EntityOrmMetadata(
+    @NonNull PersistenceStack persistenceStack,
+    @NonNull Optional<String> table,
+    @NonNull Optional<String> schema,
+    @NonNull Class<?> primaryKeyClass,
+    @NonNull Can<ColumnOrmMetadata> columns,
+    @NonNull Object vendorEntityMetadata) {
+
+    public record ColumnOrmMetadata(
+        @NonNull String name,
+        @NonNull String memberId,
+        @NonNull String javaType,
+        //@NonNull String sqlType,
+        @NonNull Object vendorColumnMetadata) {
     }
 
-    final @NonNull PersistenceStack persistenceStack;
-    final @NonNull Optional<String> table;
-    final @NonNull Optional<String> schema;
-    final @NonNull Class<?> primaryKeyClass;
-
-    final @NonNull Can<ColumnOrmMetadata> columns;
-
-    final @NonNull Object vendorEntityMetadata;
-
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/_EntityFacetForTesting.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/_EntityFacetForTesting.java
index 16e9a59fd11..f8cd794c669 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/_EntityFacetForTesting.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/entity/_EntityFacetForTesting.java
@@ -22,6 +22,7 @@
 import java.util.Optional;
 import java.util.function.BiConsumer;
 
+import org.jspecify.annotations.NonNull;
 import org.jspecify.annotations.Nullable;
 
 import org.apache.causeway.applib.query.Query;
@@ -34,15 +35,12 @@
 import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 
-import lombok.Getter;
-import org.jspecify.annotations.NonNull;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-class _EntityFacetForTesting implements EntityFacet {
+record _EntityFacetForTesting(
+    PersistenceStack persistenceStack,
+    FacetHolder facetHolder) implements EntityFacet {
 
-    @Getter private final PersistenceStack persistenceStack;
-    @Getter private final FacetHolder facetHolder;
+    @Override public PersistenceStack getPersistenceStack() { return 
persistenceStack(); }
+    @Override public FacetHolder getFacetHolder() { return facetHolder(); }
 
     @Override
     public Class<? extends Facet> facetType() {
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MixinFacetForDomainObjectAnnotation.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MixinFacetForDomainObjectAnnotation.java
index 2d7c7dfc46b..91b0cea37c2 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MixinFacetForDomainObjectAnnotation.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/mixin/MixinFacetForDomainObjectAnnotation.java
@@ -32,25 +32,24 @@ public class MixinFacetForDomainObjectAnnotation
     public static Optional<MixinFacetForDomainObjectAnnotation> create(
             final Optional<DomainObject> domainObjectIfAny,
             final Class<?> candidateMixinType,
-            final FacetHolder facetHolder,
-            final MetaModelValidatorForMixinTypes mixinTypeValidator) {
+            final FacetHolder facetHolder) {
 
         return domainObjectIfAny
-        .filter(domainObject -> domainObject.nature() == Nature.MIXIN)
-        .map(domainObject -> {
-
-            var mixinContructors =
-                    
ProgrammingModelConstants.MixinConstructor.PUBLIC_SINGLE_ARG_RECEIVING_MIXEE
-                    .getConstructors(candidateMixinType);
-
-            return mixinContructors.getSingleton() // empty if cardinality!=1
-            .map(constructor -> new MixinFacetForDomainObjectAnnotation(
-                        candidateMixinType,
-                        domainObject.mixinMethod(),
-                        constructor,
-                        facetHolder))
-            .orElse(null);
-        });
+            .filter(domainObject -> domainObject.nature() == Nature.MIXIN)
+            .map(domainObject -> {
+
+                var mixinContructors =
+                        
ProgrammingModelConstants.MixinConstructor.PUBLIC_SINGLE_ARG_RECEIVING_MIXEE
+                        .getConstructors(candidateMixinType);
+
+                return mixinContructors.getSingleton() // empty if 
cardinality!=1
+                .map(constructor -> new MixinFacetForDomainObjectAnnotation(
+                            candidateMixinType,
+                            domainObject.mixinMethod(),
+                            constructor,
+                            facetHolder))
+                .orElse(null);
+            });
     }
 
     private MixinFacetForDomainObjectAnnotation(
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/projection/ident/TitleFacetFromProjectionFacet.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/projection/ident/TitleFacetFromProjectionFacet.java
index 1e99bfcf6ef..b4958677dc9 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/projection/ident/TitleFacetFromProjectionFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/projection/ident/TitleFacetFromProjectionFacet.java
@@ -40,7 +40,7 @@ public TitleFacetFromProjectionFacet(
 
     @Override
     public String title(final TitleRenderRequest titleRenderRequest) {
-        final ManagedObject targetAdapter = titleRenderRequest.getObject();
+        final ManagedObject targetAdapter = titleRenderRequest.object();
         var projectedAdapter = projectionFacet.projected(targetAdapter);
         return projectedAdapter.getTitle();
     }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleFacet.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleFacet.java
index 25abd612523..6bb19e12cba 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleFacet.java
@@ -40,9 +40,7 @@ public interface TitleFacet extends Facet {
     String title(TitleRenderRequest titleRenderRequest);
 
     default String title(final ManagedObject targetAdapter) {
-        return title(TitleRenderRequest.builder()
-                .object(targetAdapter)
-                .build());
+        return title(TitleRenderRequest.forObject(targetAdapter));
     }
 
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleRenderRequest.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleRenderRequest.java
index 0c283728157..b7bfcbadb5c 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleRenderRequest.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/TitleRenderRequest.java
@@ -20,28 +20,16 @@
 
 import java.util.function.Predicate;
 
+import org.jspecify.annotations.NonNull;
 import org.jspecify.annotations.Nullable;
 
 import org.apache.causeway.commons.internal.functions._Predicates;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
 
-import lombok.Builder;
-import org.jspecify.annotations.NonNull;
-import lombok.Value;
-
-@Value @Builder
-public class TitleRenderRequest {
-
-    public static TitleRenderRequest forObject(final ManagedObject object) {
-        return TitleRenderRequest.builder()
-        .object(object)
-        .build();
-    }
-
-    private final @Nullable ObjectFeature feature;
-    private final @NonNull ManagedObject object;
-
+public record TitleRenderRequest(
+    @NonNull ManagedObject object,
+    @Nullable ObjectFeature feature,
     /**
      * Provide a title for the target object, possibly abbreviated (according 
to supplied predicate)
      * <p>
@@ -51,8 +39,16 @@ public static TitleRenderRequest forObject(final 
ManagedObject object) {
      * In such a context, the title might be shortened so that it does not 
needlessly incorporate
      * the title of the parent (context) object.
      */
-    @Builder.Default
-    private final @NonNull Predicate<ManagedObject> skipTitlePartEvaluator =
-        _Predicates.alwaysFalse();
+    @NonNull Predicate<ManagedObject> skipTitlePartEvaluator) {
+
+    public static TitleRenderRequest forObject(final ManagedObject object) {
+        return new TitleRenderRequest(object, null);
+    }
+
+    public TitleRenderRequest(
+        @NonNull final ManagedObject object,
+        @Nullable final ObjectFeature feature) {
+        this(object, feature, _Predicates.alwaysFalse());
+    }
 
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
index c67989a076d..129b634e4b4 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
@@ -116,12 +116,11 @@ public Intent getIntent() {
     @Override
     public String title(final TitleRenderRequest titleRenderRequest) {
 
-        final ManagedObject targetAdapter = titleRenderRequest.getObject();
+        final ManagedObject targetAdapter = titleRenderRequest.object();
 
         var pojo = targetAdapter.getPojo();
-        if(pojo==null) {
-            return "";
-        }
+        if(pojo==null) return "";
+
         var stringBuilder = new StringBuilder();
         var objectManager = getObjectManager();
 
@@ -133,7 +132,7 @@ public String title(final TitleRenderRequest 
titleRenderRequest) {
                 }
                 // ignore context, if provided
                 var titlePartAdapter = objectManager.adapt(titlePart);
-                
if(titleRenderRequest.getSkipTitlePartEvaluator().test(titlePartAdapter)) {
+                
if(titleRenderRequest.skipTitlePartEvaluator().test(titlePartAdapter)) {
                     continue;
                 }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetFromToStringMethod.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetFromToStringMethod.java
index cc0e8de6dff..14a08e92da2 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetFromToStringMethod.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetFromToStringMethod.java
@@ -62,7 +62,7 @@ private TitleFacetFromToStringMethod(
 
     @Override
     public String title(final TitleRenderRequest titleRenderRequest) {
-        return imperativeAspect.eval(titleRenderRequest.getObject(), "(not 
present)");
+        return imperativeAspect.eval(titleRenderRequest.object(), "(not 
present)");
     }
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
index a9219521000..032e3bfdd79 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
@@ -73,11 +73,10 @@ private TitleFacetViaTitleMethod(
     @Override
     public String title(final TitleRenderRequest titleRenderRequest) {
 
-        final ManagedObject owningAdapter = titleRenderRequest.getObject();
+        final ManagedObject owningAdapter = titleRenderRequest.object();
+
+        if(ManagedObjects.isNullOrUnspecifiedOrEmpty(owningAdapter)) return 
null;
 
-        if(ManagedObjects.isNullOrUnspecifiedOrEmpty(owningAdapter)) {
-            return null;
-        }
         try {
             var returnValue = 
imperativeAspect.invokeSingleMethod(owningAdapter);
             if(returnValue instanceof String) {
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/parser/TitleFacetFromValueFacet.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/parser/TitleFacetFromValueFacet.java
index c14c4ff61ac..16fea5e1b3b 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/parser/TitleFacetFromValueFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/title/parser/TitleFacetFromValueFacet.java
@@ -55,7 +55,7 @@ public String title(final TitleRenderRequest renderRequest) {
         if (renderRequest == null) {
             return null;
         }
-        final Object pojo = renderRequest.getObject().getPojo();
+        final Object pojo = renderRequest.object().getPojo();
         if (pojo == null) {
             return null;
         }
@@ -64,16 +64,16 @@ public String title(final TitleRenderRequest renderRequest) 
{
          * and alternatively object-support method 'title()',
          * by letting the SpecificationLoader introspect enum types and 
populate the meta-model
          * with TitleFacets (that have higher priority than this one). */
-        
if(renderRequest.getObject().getSpecification().getCorrespondingClass().isEnum())
 {
+        
if(renderRequest.object().getSpecification().getCorrespondingClass().isEnum()) {
             return Enums.getFriendlyNameOf((Enum<?>)pojo);
         }
 
         // support for qualified value semantics, requires a 'where' context, 
that is,
         // what property, collection, action return or action param this is to 
be rendered for ...
-        if(renderRequest.getFeature()!=null) {
-            switch(renderRequest.getFeature().getFeatureType()) {
+        if(renderRequest.feature()!=null) {
+            switch(renderRequest.feature().getFeatureType()) {
             case PROPERTY: {
-                var prop = (OneToOneAssociation)renderRequest.getFeature();
+                var prop = (OneToOneAssociation)renderRequest.feature();
                 final Renderer renderer = valueFacet
                         .selectRendererForPropertyElseFallback(prop);
                 return renderer
@@ -81,7 +81,7 @@ public String title(final TitleRenderRequest renderRequest) {
                                 .createValueSemanticsContext(prop), pojo);
             }
             case COLLECTION: {
-                var coll = (OneToManyAssociation)renderRequest.getFeature();
+                var coll = (OneToManyAssociation)renderRequest.feature();
                 final Renderer renderer = valueFacet
                         .selectRendererForCollectionElseFallback(coll);
                 return renderer
@@ -90,7 +90,7 @@ public String title(final TitleRenderRequest renderRequest) {
             }
             case ACTION_PARAMETER_SINGULAR:
             case ACTION_PARAMETER_PLURAL:{
-                var param = (ObjectActionParameter)renderRequest.getFeature();
+                var param = (ObjectActionParameter)renderRequest.feature();
                 final Renderer renderer = valueFacet
                         .selectRendererForParameterElseFallback(param);
                 return 
renderer.titlePresentation(valueFacet.createValueSemanticsContext(param), pojo);
@@ -109,7 +109,7 @@ public String title(final TitleRenderRequest renderRequest) 
{
         .map(renderer->(Renderer) renderer)
         
.map(renderer->renderer.titlePresentation(valueFacet.createValueSemanticsContext(feature),
 pojo))
         .orElseGet(()->String.format("Value type %s has no value semantics for 
title rendering.",
-                
renderRequest.getObject().getSpecification().getCorrespondingClass()));
+                
renderRequest.object().getSpecification().getCorrespondingClass()));
 
     }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmTitleUtils.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmTitleUtils.java
index 931a4a91007..b9353d9bdba 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmTitleUtils.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmTitleUtils.java
@@ -49,10 +49,7 @@ public String getTitleHonoringTitlePartSkipping(
                 ? "(multiple objects)"
                 : managedObject != null
                     ? _InternalTitleUtil.titleString(
-                            TitleRenderRequest.builder()
-                            .object(managedObject)
-                            .skipTitlePartEvaluator(skipTitlePart)
-                            .build())
+                            new TitleRenderRequest(managedObject, null, 
skipTitlePart))
                     : "(no object)";
     }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/_InternalTitleUtil.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/_InternalTitleUtil.java
index c6c4f42448f..7b2280795d6 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/_InternalTitleUtil.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/_InternalTitleUtil.java
@@ -35,11 +35,9 @@ final class _InternalTitleUtil {
 
     String titleString(final @NonNull TitleRenderRequest titleRenderRequest) {
 
-        var managedObject = titleRenderRequest.getObject();
+        var managedObject = titleRenderRequest.object();
 
-        if(managedObject.getSpecialization().isUnspecified()) {
-            return managedObject.getTitle();
-        }
+        if(managedObject.getSpecialization().isUnspecified()) return 
managedObject.getTitle();
 
         var objSpec = managedObject.getSpecification();
 
@@ -58,12 +56,11 @@ String abbreviated(final String str, final int maxLength, 
final String suffix) {
     }
 
     private String objectTitleString(final @NonNull TitleRenderRequest 
titleRenderRequest) {
-        var managedObject = titleRenderRequest.getObject();
+        var managedObject = titleRenderRequest.object();
 
         //TODO we have value-semantics now, don't skip it for strings
-        if (managedObject.getPojo() instanceof String) {
-            return (String) managedObject.getPojo();
-        }
+        if (managedObject.getPojo() instanceof String) return (String) 
managedObject.getPojo();
+
         var spec = managedObject.getSpecification();
         return Optional.ofNullable(spec.getTitle(titleRenderRequest))
                 .orElseGet(()->getDefaultTitle(managedObject));
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
index 91e51327cc6..310d1d4329f 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
@@ -280,7 +280,7 @@ protected boolean validateAndNormalize(
             var fieldSetId = GroupIdAndName.forFieldSet(fieldSet)
                 .orElseThrow(()->_Exceptions.illegalArgument("invalid fieldSet 
detected, "
                         + "requires at least an id or a name"))
-                .getId();
+                .id();
             Set<String> boundAssociationIds = 
boundAssociationIdsByFieldSetId.get(fieldSetId);
             if(boundAssociationIds == null) {
                 boundAssociationIds = stream(fieldSet.getProperties())
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/_GridModel.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/_GridModel.java
index ff40c92e87b..582c9052f1f 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/_GridModel.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/bootstrap/_GridModel.java
@@ -55,17 +55,17 @@ final class _GridModel {
 
         private boolean gridErrorsDetected = false;
 
-        public boolean contains(String id) {
+        public boolean contains(final String id) {
             return allIds.contains(id);
         }
 
         public Collection<FieldSet> fieldSets() {
             return fieldSets.values();
         }
-        public boolean containsFieldSetId(String id) {
+        public boolean containsFieldSetId(final String id) {
             return fieldSets.containsKey(id);
         }
-        public FieldSet getFieldSet(String id) {
+        public FieldSet getFieldSet(final String id) {
             return fieldSets.get(id);
         }
 
@@ -77,7 +77,7 @@ public FieldSet getFieldSet(String id) {
          * @param bsGrid
          * @return empty if not valid
          */
-        public static Optional<_GridModel> createFrom(BSGrid bsGrid) {
+        public static Optional<_GridModel> createFrom(final BSGrid bsGrid) {
 
             var gridModel = new _GridModel();
 
@@ -118,7 +118,7 @@ public void visit(final FieldSet fieldSet) {
                         gridModel.gridErrorsDetected = true;
                         return;
                     }
-                    String id = groupIdAndName.get().getId();
+                    String id = groupIdAndName.get().id();
                     if(gridModel.contains(id)) {
                         fieldSet.setMetadataError("There is another element in 
the grid with this id: " + id);
                         gridModel.gridErrorsDetected = true;
@@ -211,15 +211,15 @@ public void visit(final BSTabGroup bsTabGroup) {
 
         }
 
-        private void putRow(String id, BSRow bsRow) {
+        private void putRow(final String id, final BSRow bsRow) {
             rows.put(id, bsRow);
             allIds.add(id);
         }
-        private void putCol(String id, BSCol bsCol) {
+        private void putCol(final String id, final BSCol bsCol) {
             cols.put(id, bsCol);
             allIds.add(id);
         }
-        private void putFieldSet(String id, FieldSet fieldSet) {
+        private void putFieldSet(final String id, final FieldSet fieldSet) {
             fieldSets.put(id, fieldSet);
             allIds.add(id);
         }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/title/TitleServiceDefault.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/title/TitleServiceDefault.java
index 80c3f417dfa..c6715833ac2 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/title/TitleServiceDefault.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/title/TitleServiceDefault.java
@@ -69,10 +69,7 @@ public String titleOf(final Object domainObject) {
             // here we just mean NOT-ATTACHED (and not the concrete DETACHED 
entity state)
             return "[DETACHED]";
         } else {
-            return objectAdapter.getSpecification().getTitle(
-                    TitleRenderRequest.builder()
-                    .object(objectAdapter)
-                    .build());
+            return 
objectAdapter.getSpecification().getTitle(TitleRenderRequest.forObject(objectAdapter));
         }
     }
 
@@ -86,9 +83,7 @@ public String iconNameOf(final Object domainObject) {
         var pojo = unwrapped(domainObject);
         var objectAdapter = objectManager.adapt(pojo);
 
-        if(ManagedObjects.isNullOrUnspecifiedOrEmpty(objectAdapter)) {
-            return "unspecified";
-        }
+        if(ManagedObjects.isNullOrUnspecifiedOrEmpty(objectAdapter)) return 
"unspecified";
 
         return objectAdapter.getSpecification().getIconName(objectAdapter);
     }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/impl/ObjectSpecificationDefault.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/impl/ObjectSpecificationDefault.java
index c98049291a1..5e27b2f7034 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/impl/ObjectSpecificationDefault.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/spec/impl/ObjectSpecificationDefault.java
@@ -761,7 +761,7 @@ private void notifySubscribersIfEntity(
         if (!isEntity()) {
             return;
         }
-        var managedObject = titleRenderRequest.getObject();
+        var managedObject = titleRenderRequest.object();
         managedObject.getBookmark().ifPresent(bookmark -> {
             getTitleSubscribers().stream().forEach(x -> 
x.entityTitleIs(bookmark, titleString));
         });
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderComparatorTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderComparatorTest.java
index 8e51fe929e2..e6a5e469185 100644
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderComparatorTest.java
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderComparatorTest.java
@@ -169,7 +169,7 @@ void nonAnnotatedAfterAnnotated() {
     // -- HELPER
 
     void setupLayoutFacets(final String groupId, final String sequence, final 
FacetedMethod facetedMethod) {
-        facetedMethod.addFacet(new 
LayoutGroupFacetAbstract(GroupIdAndName.of(groupId, ""), facetedMethod) {});
+        facetedMethod.addFacet(new LayoutGroupFacetAbstract(new 
GroupIdAndName(groupId, ""), facetedMethod) {});
         facetedMethod.addFacet(new LayoutOrderFacetAbstract(sequence, 
facetedMethod) {});
     }
 
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderSetTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderSetTest.java
index e93c1d45168..2b9395b982f 100644
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderSetTest.java
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/ordering/memberorder/DeweyOrderSetTest.java
@@ -238,7 +238,7 @@ void 
defaultGroupMixOfAnnotatedAndNotOrderedWithAnnotatedFirst() {
     // -- HELPER
 
     void setupLayoutFacets(final String groupId, final String sequence, final 
FacetHolder facetedHolder) {
-        facetedHolder.addFacet(new 
LayoutGroupFacetAbstract(GroupIdAndName.of(groupId, ""), facetedHolder) {});
+        facetedHolder.addFacet(new LayoutGroupFacetAbstract(new 
GroupIdAndName(groupId, ""), facetedHolder) {});
         facetedHolder.addFacet(new LayoutOrderFacetAbstract(sequence, 
facetedHolder) {});
     }
 


Reply via email to