You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/06/23 03:49:20 UTC
[isis] branch master updated: ISIS-1720: NounForm(s): housekeeping
and some java-doc
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 52ddf8f ISIS-1720: NounForm(s): housekeeping and some java-doc
52ddf8f is described below
commit 52ddf8f9c5b246bd16dfb9c86f219573bca3c317
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jun 23 05:49:04 2021 +0200
ISIS-1720: NounForm(s): housekeeping and some java-doc
---
.../isis/commons/collections/ImmutableEnumSet.java | 24 ++++++++-------
.../NamedFacetForActionLayoutAnnotation.java | 2 +-
.../actions/layout/NamedFacetForActionXml.java | 2 +-
.../all/describedas/DescribedAsFacetAbstract.java | 5 +---
.../metamodel/facets/all/i8n/I8nFacetAbstract.java | 34 ++++++++++------------
.../core/metamodel/facets/all/i8n/NounForm.java | 23 +++++++++++++++
.../core/metamodel/facets/all/i8n/NounForms.java | 27 ++++++++++++-----
.../named/NamedFacetFromMemberNameAbstract.java | 8 ++---
.../NamedFacetForCollectionLayoutAnnotation.java | 2 +-
.../layout/NamedFacetForCollectionXml.java | 2 +-
.../metamodel/facets/fallback/NamedFacetNone.java | 5 +---
...NamedFacetForDomainServiceLayoutAnnotation.java | 3 +-
.../NamedFacetForParameterLayoutAnnotation.java | 2 +-
.../NamedFacetForParameterUsingReflection.java | 2 +-
.../NamedFacetForPropertyLayoutAnnotation.java | 2 +-
.../propertylayout/NamedFacetForPropertyXml.java | 3 +-
.../objects/ObjectActionLayoutXmlDefaultTest.java | 3 +-
17 files changed, 87 insertions(+), 62 deletions(-)
diff --git a/commons/src/main/java/org/apache/isis/commons/collections/ImmutableEnumSet.java b/commons/src/main/java/org/apache/isis/commons/collections/ImmutableEnumSet.java
index 12378e6..745c8e3 100644
--- a/commons/src/main/java/org/apache/isis/commons/collections/ImmutableEnumSet.java
+++ b/commons/src/main/java/org/apache/isis/commons/collections/ImmutableEnumSet.java
@@ -34,43 +34,43 @@ implements Iterable<E>, java.io.Serializable {
private final EnumSet<E> delegate;
- private ImmutableEnumSet(EnumSet<E> delegate) {
+ private ImmutableEnumSet(final EnumSet<E> delegate) {
this.delegate = delegate;
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> from(EnumSet<E> delegate) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> from(final EnumSet<E> delegate) {
return new ImmutableEnumSet<>(delegate);
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> noneOf(Class<E> enumType) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> noneOf(final Class<E> enumType) {
return from(EnumSet.noneOf(enumType));
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(final E e1) {
return from(EnumSet.of(e1));
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1, E e2) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(final E e1, final E e2) {
return from(EnumSet.of(e1, e2));
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1, E e2, E e3) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(final E e1, final E e2, final E e3) {
return from(EnumSet.of(e1, e2, e3));
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1, E e2, E e3, E e4) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(final E e1, final E e2, final E e3, final E e4) {
return from(EnumSet.of(e1, e2, e3, e4));
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> complementOf(ImmutableEnumSet<E> other) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> complementOf(final ImmutableEnumSet<E> other) {
return from(EnumSet.complementOf(other.delegate));
}
- public static <E extends Enum<E>> ImmutableEnumSet<E> allOf(Class<E> enumType) {
+ public static <E extends Enum<E>> ImmutableEnumSet<E> allOf(final Class<E> enumType) {
return from(EnumSet.allOf(enumType));
}
- public boolean contains(E element) {
+ public boolean contains(final E element) {
return delegate.contains(element);
}
@@ -87,4 +87,8 @@ implements Iterable<E>, java.io.Serializable {
return delegate.stream();
}
+ public boolean isEmpty() {
+ return delegate.isEmpty();
+ }
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java
index 4e9d61c..84ecafa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java
@@ -41,7 +41,7 @@ public class NamedFacetForActionLayoutAnnotation extends NamedFacetAbstract {
private NamedFacetForActionLayoutAnnotation(final String singularName, final FacetHolder holder) {
- super(NounForms.preferredSingular().singular(singularName).build(), /*escaped*/ true, holder);
+ super(NounForms.preferredSingular(singularName).build(), /*escaped*/ true, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java
index ab947f2..ed8480a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java
@@ -46,7 +46,7 @@ extends NamedFacetAbstract {
private NamedFacetForActionXml(final String singularName, final boolean escaped, final FacetHolder holder) {
- super(NounForms.preferredSingular().singular(singularName).build(), escaped, holder);
+ super(NounForms.preferredSingular(singularName).build(), escaped, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java
index 5de53d3..41d95e5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.all.describedas;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.all.i8n.I8nFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.NounForm;
import org.apache.isis.core.metamodel.facets.all.i8n.NounForms;
public abstract class DescribedAsFacetAbstract
@@ -45,9 +44,7 @@ implements DescribedAsFacet {
final Facet.Precedence precedence) {
super(type(),
NounForms
- .builder()
- .indifferent(originalText)
- .preferredNounForm(NounForm.INDIFFERENT)
+ .preferredIndifferent(originalText)
.build(),
holder,
precedence);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/I8nFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/I8nFacetAbstract.java
index 02791f3..46166f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/I8nFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/I8nFacetAbstract.java
@@ -2,6 +2,7 @@ package org.apache.isis.core.metamodel.facets.all.i8n;
import java.util.Objects;
import java.util.function.BiConsumer;
+import java.util.stream.Collectors;
import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.commons.collections.ImmutableEnumSet;
@@ -10,7 +11,6 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import lombok.Getter;
import lombok.NonNull;
import lombok.val;
@@ -19,7 +19,6 @@ extends FacetAbstract
implements HasTranslation {
protected final TranslationContext translationContext;
- @Getter(onMethod_ = {@Override}) private final ImmutableEnumSet<NounForm> supportedNounForms;
private final @NonNull NounForms nounForms;
private final @NonNull _Lazy<NounForms> translatedNounForms;
@@ -38,7 +37,6 @@ implements HasTranslation {
final Precedence precedence) {
super(facetType, holder, precedence);
this.nounForms = nounForms;
- this.supportedNounForms = ImmutableEnumSet.from(nounForms.getSupportedNounForms());
this.translationContext = TranslationContext
.forTranslationContextHolder(holder.getFeatureIdentifier());
this.translatedNounForms = _Lazy.threadSafe(()->
@@ -65,13 +63,23 @@ implements HasTranslation {
return translatedNounForms.get().get(nounForm);
}
+ @Override
+ public ImmutableEnumSet<NounForm> getSupportedNounForms() {
+ return nounForms.getSupportedNounForms();
+ }
@Override
public void visitAttributes(final BiConsumer<String, Object> visitor) {
super.visitAttributes(visitor);
visitor.accept("context", translationContext);
- visitor.accept("supportedNounForms", supportedNounForms);
- supportedNounForms.forEach(nounForm->{
+ visitor.accept("nounForms",
+ getSupportedNounForms()
+ .stream()
+ .map(NounForm::name)
+ .collect(Collectors.joining(", ")));
+
+ getSupportedNounForms()
+ .forEach(nounForm->{
visitor.accept("originalText." + nounForm, text(nounForm));
visitor.accept("translated." + nounForm, translated(nounForm)); // memoizes as a side-effect
});
@@ -80,7 +88,7 @@ implements HasTranslation {
@Override
public boolean semanticEquals(final @NonNull Facet other) {
- // equality by facet-type, text and context
+ // equality by facet-type, (original) text and translation-context
if(!this.facetType().equals(other.facetType())) {
return false;
@@ -88,18 +96,8 @@ implements HasTranslation {
val otherFacet = (I8nFacetAbstract)other;
- if(!Objects.equals(this.supportedNounForms, otherFacet.supportedNounForms)
- || !Objects.equals(this.translationContext, otherFacet.translationContext)) {
- return false;
- }
-
- for(val nounForm : supportedNounForms) {
- if(!Objects.equals(this.text(nounForm), otherFacet.text(nounForm))){
- return false;
- }
- }
-
- return true;
+ return Objects.equals(this.nounForms, otherFacet.nounForms)
+ && Objects.equals(this.translationContext, otherFacet.translationContext);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForm.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForm.java
index cdee2e5..7d124ab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForm.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForm.java
@@ -18,11 +18,34 @@
*/
package org.apache.isis.core.metamodel.facets.all.i8n;
+import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
+
+/**
+ * Represents various linguistic forms, based on <i>cardinality</i>.
+ * @since 2.0
+ */
public enum NounForm {
+ /**
+ * Use, if there is no semantic difference between EMPTY, SINGULAR or PLURAL.
+ * eg. {@link DescribedAsFacet}
+ */
INDIFFERENT,
+
+ /**
+ * Represents the absence of a scalar or non-scalar object.
+ * @apiNote for future use (not yet implemented)
+ */
EMPTY,
+
+ /**
+ * Represents the singular linguistic form.
+ */
SINGULAR,
+
+ /**
+ * Represents the plural linguistic form.
+ */
PLURAL
;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForms.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForms.java
index e137cc2..458582c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForms.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/NounForms.java
@@ -24,6 +24,7 @@ import javax.annotation.Nullable;
import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.commons.collections.ImmutableEnumSet;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import lombok.Builder;
@@ -32,17 +33,29 @@ import lombok.NonNull;
import lombok.Value;
import lombok.val;
+/**
+ * Immutable value object that holds literals for its various supported {@link NounForm}(s).
+ * @since 2.0
+ */
@Value @Builder
public class NounForms {
- public static NounFormsBuilder preferredSingular() {
+ public static NounFormsBuilder preferredIndifferent(@Nullable final String indifferent) {
+ return NounForms.builder()
+ .preferredNounForm(NounForm.INDIFFERENT)
+ .indifferent(indifferent);
+ }
+
+ public static NounFormsBuilder preferredSingular(@Nullable final String singular) {
return NounForms.builder()
- .preferredNounForm(NounForm.SINGULAR);
+ .preferredNounForm(NounForm.SINGULAR)
+ .singular(singular);
}
- public static NounFormsBuilder preferredPlural() {
+ public static NounFormsBuilder preferredPlural(@Nullable final String plural) {
return NounForms.builder()
- .preferredNounForm(NounForm.PLURAL);
+ .preferredNounForm(NounForm.PLURAL)
+ .plural(plural);
}
private final @Nullable String indifferent;
@@ -53,9 +66,9 @@ public class NounForms {
private final @NonNull NounForm preferredNounForm;
@Getter(lazy = true)
- final EnumSet<NounForm> supportedNounForms = supportedNounForms();
+ final ImmutableEnumSet<NounForm> supportedNounForms = supportedNounForms();
- private EnumSet<NounForm> supportedNounForms() {
+ private ImmutableEnumSet<NounForm> supportedNounForms() {
val supportedNounForms = EnumSet.noneOf(NounForm.class);
@@ -75,7 +88,7 @@ public class NounForms {
supportedNounForms.add(NounForm.PLURAL);
}
- return supportedNounForms;
+ return ImmutableEnumSet.from(supportedNounForms);
}
public String get(final @NonNull NounForm nounForm) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetFromMemberNameAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetFromMemberNameAbstract.java
index 9b896db..3d060be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetFromMemberNameAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetFromMemberNameAbstract.java
@@ -39,14 +39,10 @@ extends NamedFacetAbstract {
super(
preferredNounForm.isSingular()
? NounForms
- .builder()
- .preferredNounForm(preferredNounForm)
- .singular(memberName)
+ .preferredSingular(memberName)
.build()
: NounForms
- .builder()
- .preferredNounForm(preferredNounForm)
- .plural(memberName)
+ .preferredPlural(memberName)
.build()
,
ESCAPED,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java
index 8adca66..5def9c9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java
@@ -45,7 +45,7 @@ public class NamedFacetForCollectionLayoutAnnotation extends NamedFacetAbstract
final boolean escaped,
final FacetHolder holder) {
- super(NounForms.preferredPlural().plural(pluralName).build(), escaped, holder);
+ super(NounForms.preferredPlural(pluralName).build(), escaped, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java
index 82ae51f..00d80b8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java
@@ -49,7 +49,7 @@ extends NamedFacetAbstract {
final boolean escaped,
final FacetHolder holder) {
- super(NounForms.preferredPlural().plural(pluralName).build(), escaped, holder);
+ super(NounForms.preferredPlural(pluralName).build(), escaped, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java
index 945bca8..c108119 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java
@@ -25,9 +25,6 @@ import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
/**
* Has a name of <tt>null</tt>.
- *
- * <p>
- * TODO: should this instead be the empty string?
*/
public class NamedFacetNone
extends NamedFacetAbstract {
@@ -35,7 +32,7 @@ extends NamedFacetAbstract {
public static final boolean ESCAPED = true;
public NamedFacetNone(final FacetHolder holder) {
- super(NounForms.preferredSingular().build(), ESCAPED, holder, Precedence.FALLBACK);
+ super(NounForms.preferredSingular(null).build(), ESCAPED, holder, Precedence.FALLBACK);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java
index 6785e0a..02d7e65 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java
@@ -48,8 +48,7 @@ extends NamedFacetAbstract {
}
val nounForms = NounForms
- .preferredSingular()
- .singular(serviceNamed)
+ .preferredSingular(serviceNamed)
.build();
return Optional.of(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java
index 055b33d..73ea23a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java
@@ -49,7 +49,7 @@ extends NamedFacetAbstract {
final boolean escaped,
final FacetHolder holder) {
- super(NounForms.preferredSingular().singular(singularName).build(), escaped, holder);
+ super(NounForms.preferredSingular(singularName).build(), escaped, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/NamedFacetForParameterUsingReflection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/NamedFacetForParameterUsingReflection.java
index 622769e..8d2f479 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/NamedFacetForParameterUsingReflection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/NamedFacetForParameterUsingReflection.java
@@ -30,7 +30,7 @@ public class NamedFacetForParameterUsingReflection
extends NamedFacetAbstract {
public NamedFacetForParameterUsingReflection(final String singularName, final FacetHolder holder) {
- super(NounForms.preferredSingular().singular(singularName).build(), false, holder);
+ super(NounForms.preferredSingular(singularName).build(), false, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java
index fb3d42d..ddd3e38 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java
@@ -48,7 +48,7 @@ extends NamedFacetAbstract {
final boolean escaped,
final FacetHolder holder) {
- super(NounForms.preferredSingular().singular(singularName).build(), escaped, holder);
+ super(NounForms.preferredSingular(singularName).build(), escaped, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java
index ef5df97..f4e84d8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java
@@ -42,8 +42,7 @@ extends NamedFacetAbstract {
}
val nounForms = NounForms
- .preferredSingular()
- .singular(_Strings.emptyToNull(propertyLayout.getNamed()))
+ .preferredSingular(_Strings.emptyToNull(propertyLayout.getNamed()))
.build();
if(nounForms.getSupportedNounForms().isEmpty()) {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/ObjectActionLayoutXmlDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/ObjectActionLayoutXmlDefaultTest.java
index 380d5ba..66a07bd 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/ObjectActionLayoutXmlDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/ObjectActionLayoutXmlDefaultTest.java
@@ -85,8 +85,7 @@ public class ObjectActionLayoutXmlDefaultTest {
public void testNameDefaultsToActionsMethodName() {
final String name = "Reduceheadcount";
- val nounForms = NounForms.preferredSingular()
- .singular(name)
+ val nounForms = NounForms.preferredSingular(name)
.build();
final NamedFacet facet =