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/26 04:48:38 UTC
[isis] branch master updated: ISIS-1720: remove
PropertyLayout#namedEscaped
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 7f47868 ISIS-1720: remove PropertyLayout#namedEscaped
7f47868 is described below
commit 7f4786803d7992509504f059ade824c5395f963c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Jun 26 06:48:27 2021 +0200
ISIS-1720: remove PropertyLayout#namedEscaped
also some housekeeping around HasNoun
---
.../modules/ROOT/pages/2021/2.0.0-M6/mignotes.adoc | 3 ++
.../isis/applib/annotation/PropertyLayout.java | 13 -----
.../applib/layout/component/ActionLayoutData.java | 41 +++++----------
.../layout/component/CollectionLayoutData.java | 35 ++++---------
.../layout/component/DomainObjectLayoutData.java | 27 +++-------
.../isis/applib/layout/component/HasNamed.java | 6 ---
.../layout/component/PropertyLayoutData.java | 34 ++++--------
.../metamodel/facets/all/i8n/noun/HasNoun.java | 56 +++++++++++++-------
.../facets/all/i8n/noun/HasNounFacetAbstract.java | 19 ++-----
.../metamodel/facets/all/i8n/noun/NounForms.java | 12 +++--
.../core/metamodel/layout/LayoutFacetUtil.java | 27 +++-------
.../specimpl/ObjectSpecificationAbstract.java | 6 +--
.../named/PropertyLayoutNamedVm-description.adoc | 45 ----------------
.../named/PropertyLayoutNamedVm.java | 31 +----------
...pertyLayoutNamedVm_updateWithEscapedMarkup.java | 59 ---------------------
.../PropertyLayoutNamedVm_updateWithMarkup.java | 60 ----------------------
16 files changed, 105 insertions(+), 369 deletions(-)
diff --git a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M6/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M6/mignotes.adoc
index 1756d2f..e99b2d7 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M6/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M6/mignotes.adoc
@@ -34,6 +34,9 @@ there is no counterpart for _Collection_
| `@Model` (from extensions) removed
| use `@MemberSupport` (Applib) instead
+| `@PropertyLayout(namedEscaped=...)` removed
+| (translatable) text is now always escaped
+
|===
== Configuration
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
index 6686aa2..32be2a0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
@@ -183,24 +183,11 @@ public @interface PropertyLayout {
* @see CollectionLayout#named()
* @see DomainObjectLayout#named()
* @see DomainServiceLayout#named()
- * @see PropertyLayout#namedEscaped()
*/
String named()
default "";
/**
- * A flag indicating whether the value of {@linkplain #named()} should be
- * HTML escaped or not.
- *
- * @see ParameterLayout#namedEscaped()
- * @see CollectionLayout#namedEscaped()
- * @see PropertyLayout#named()
- */
- @Deprecated
- boolean namedEscaped()
- default true;
-
- /**
* Whether this property should be used to construct the navigable chain of breadcrumbs in the UI.
*
* <p>
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/ActionLayoutData.java b/api/applib/src/main/java/org/apache/isis/applib/layout/component/ActionLayoutData.java
index cf53bfa..3272e10 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/ActionLayoutData.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/component/ActionLayoutData.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.links.Link;
/**
- * Describes the layout of a single action, broadly corresponding to
+ * Describes the layout of a single action, broadly corresponding to
* {@link org.apache.isis.applib.annotation.ActionLayout}.
*
* @since 1.x {@index}
@@ -75,7 +75,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
return id;
}
- public void setId(String id) {
+ public void setId(final String id) {
this.id = id;
}
@@ -90,7 +90,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setBookmarking(BookmarkPolicy bookmarking) {
+ public void setBookmarking(final BookmarkPolicy bookmarking) {
this.bookmarking = bookmarking;
}
@@ -104,7 +104,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setCssClass(String cssClass) {
+ public void setCssClass(final String cssClass) {
this.cssClass = cssClass;
}
@@ -118,7 +118,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setCssClassFa(String cssClassFa) {
+ public void setCssClassFa(final String cssClassFa) {
this.cssClassFa = cssClassFa;
}
@@ -132,7 +132,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setCssClassFaPosition(CssClassFaPosition cssClassFaPosition) {
+ public void setCssClassFaPosition(final CssClassFaPosition cssClassFaPosition) {
this.cssClassFaPosition = cssClassFaPosition;
}
@@ -146,7 +146,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setDescribedAs(String describedAs) {
+ public void setDescribedAs(final String describedAs) {
this.describedAs = describedAs;
}
@@ -161,7 +161,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setHidden(Where hidden) {
+ public void setHidden(final Where hidden) {
this.hidden = hidden;
}
@@ -176,27 +176,10 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
}
@Override
- public void setNamed(String named) {
+ public void setNamed(final String named) {
this.named = named;
}
-
-
- private Boolean namedEscaped;
-
- @Override
- @XmlAttribute(required = false)
- public Boolean getNamedEscaped() {
- return namedEscaped;
- }
-
- @Override
- public void setNamedEscaped(Boolean namedEscaped) {
- this.namedEscaped = namedEscaped;
- }
-
-
-
private org.apache.isis.applib.annotation.ActionLayout.Position position;
@XmlAttribute(required = false)
@@ -204,7 +187,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
return position;
}
- public void setPosition(org.apache.isis.applib.annotation.ActionLayout.Position position) {
+ public void setPosition(final org.apache.isis.applib.annotation.ActionLayout.Position position) {
this.position = position;
}
@@ -216,7 +199,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
return promptStyle;
}
- public void setPromptStyle(PromptStyle promptStyle) {
+ public void setPromptStyle(final PromptStyle promptStyle) {
this.promptStyle = promptStyle;
}
@@ -229,7 +212,7 @@ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
return redirect;
}
- public void setRedirect(Redirect redirect) {
+ public void setRedirect(final Redirect redirect) {
this.redirect = redirect;
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java b/api/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java
index ecb1292..44bf460 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.links.Link;
/**
- * Describes the layout of a single collection, broadly corresponds to the
+ * Describes the layout of a single collection, broadly corresponds to the
* {@link org.apache.isis.applib.annotation.CollectionLayout} annotation.
*
* @since 1.x {@index}
@@ -76,7 +76,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return id;
}
- public void setId(String id) {
+ public void setId(final String id) {
this.id = id;
}
@@ -91,7 +91,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setCssClass(String cssClass) {
+ public void setCssClass(final String cssClass) {
this.cssClass = cssClass;
}
@@ -106,7 +106,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setDescribedAs(String describedAs) {
+ public void setDescribedAs(final String describedAs) {
this.describedAs = describedAs;
}
@@ -123,7 +123,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return defaultView;
}
- public void setDefaultView(String defaultView) {
+ public void setDefaultView(final String defaultView) {
this.defaultView = defaultView;
}
@@ -137,7 +137,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setHidden(Where hidden) {
+ public void setHidden(final Where hidden) {
this.hidden = hidden;
}
@@ -151,25 +151,10 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setNamed(String named) {
+ public void setNamed(final String named) {
this.named = named;
}
-
- private Boolean namedEscaped;
-
- @Override
- @XmlAttribute(required = false)
- public Boolean getNamedEscaped() {
- return namedEscaped;
- }
-
- @Override
- public void setNamedEscaped(Boolean namedEscaped) {
- this.namedEscaped = namedEscaped;
- }
-
-
private Integer paged;
@XmlAttribute(required = false)
@@ -177,7 +162,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return paged;
}
- public void setPaged(Integer paged) {
+ public void setPaged(final Integer paged) {
this.paged = paged;
}
@@ -190,7 +175,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return sortedBy;
}
- public void setSortedBy(String sortedBy) {
+ public void setSortedBy(final String sortedBy) {
this.sortedBy = sortedBy;
}
@@ -206,7 +191,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setActions(List<ActionLayoutData> actionLayoutDatas) {
+ public void setActions(final List<ActionLayoutData> actionLayoutDatas) {
this.actions = actionLayoutDatas;
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/DomainObjectLayoutData.java b/api/applib/src/main/java/org/apache/isis/applib/layout/component/DomainObjectLayoutData.java
index 7493d72..dfecad3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/DomainObjectLayoutData.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/component/DomainObjectLayoutData.java
@@ -65,7 +65,7 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
}
@Override
- public void setBookmarking(BookmarkPolicy bookmarking) {
+ public void setBookmarking(final BookmarkPolicy bookmarking) {
this.bookmarking = bookmarking;
}
@@ -80,7 +80,7 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
}
@Override
- public void setCssClass(String cssClass) {
+ public void setCssClass(final String cssClass) {
this.cssClass = cssClass;
}
@@ -94,7 +94,7 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
}
@Override
- public void setCssClassFa(String cssClassFa) {
+ public void setCssClassFa(final String cssClassFa) {
this.cssClassFa = cssClassFa;
}
@@ -109,7 +109,7 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
}
@Override
- public void setCssClassFaPosition(CssClassFaPosition cssClassFaPosition) {
+ public void setCssClassFaPosition(final CssClassFaPosition cssClassFaPosition) {
this.cssClassFaPosition = cssClassFaPosition;
}
@@ -123,7 +123,7 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
}
@Override
- public void setDescribedAs(String describedAs) {
+ public void setDescribedAs(final String describedAs) {
this.describedAs = describedAs;
}
@@ -138,24 +138,11 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
}
@Override
- public void setNamed(String named) {
+ public void setNamed(final String named) {
this.named = named;
}
- private Boolean namedEscaped;
-
- @Override
- @XmlAttribute(required = false)
- public Boolean getNamedEscaped() {
- return namedEscaped;
- }
-
- @Override
- public void setNamedEscaped(Boolean namedEscaped) {
- this.namedEscaped = namedEscaped;
- }
-
private String plural;
@@ -165,7 +152,7 @@ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
return plural;
}
- public void setPlural(String plural) {
+ public void setPlural(final String plural) {
this.plural = plural;
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java b/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
index 158ce1b..56a74f7 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
@@ -18,7 +18,6 @@
*/
package org.apache.isis.applib.layout.component;
-import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
/**
@@ -30,9 +29,4 @@ public interface HasNamed {
String getNamed();
void setNamed(String named);
- @Deprecated // ignored
- @XmlAttribute(required = false)
- Boolean getNamedEscaped();
- void setNamedEscaped(Boolean namedEscaped);
-
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java b/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
index f8e37d4..d520e59 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
@@ -78,7 +78,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return id;
}
- public void setId(String id) {
+ public void setId(final String id) {
this.id = id;
}
@@ -93,7 +93,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setCssClass(String cssClass) {
+ public void setCssClass(final String cssClass) {
this.cssClass = cssClass;
}
@@ -107,7 +107,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setDescribedAs(String describedAs) {
+ public void setDescribedAs(final String describedAs) {
this.describedAs = describedAs;
}
@@ -121,7 +121,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setHidden(Where hidden) {
+ public void setHidden(final Where hidden) {
this.hidden = hidden;
}
@@ -133,7 +133,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return labelPosition;
}
- public void setLabelPosition(LabelPosition labelPosition) {
+ public void setLabelPosition(final LabelPosition labelPosition) {
this.labelPosition = labelPosition;
}
@@ -145,7 +145,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return multiLine;
}
- public void setMultiLine(Integer multiLine) {
+ public void setMultiLine(final Integer multiLine) {
this.multiLine = multiLine;
}
@@ -159,25 +159,11 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setNamed(String named) {
+ public void setNamed(final String named) {
this.named = named;
}
- private Boolean namedEscaped;
-
- @Override
- @XmlAttribute(required = false)
- public Boolean getNamedEscaped() {
- return namedEscaped;
- }
-
- @Override
- public void setNamedEscaped(Boolean namedEscaped) {
- this.namedEscaped = namedEscaped;
- }
-
-
private PromptStyle promptStyle;
@XmlAttribute(required = false)
@@ -185,7 +171,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return promptStyle;
}
- public void setPromptStyle(PromptStyle promptStyle) {
+ public void setPromptStyle(final PromptStyle promptStyle) {
this.promptStyle = promptStyle;
}
@@ -208,7 +194,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
return typicalLength;
}
- public void setTypicalLength(Integer typicalLength) {
+ public void setTypicalLength(final Integer typicalLength) {
this.typicalLength = typicalLength;
}
@@ -234,7 +220,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
}
@Override
- public void setActions(List<ActionLayoutData> actionLayoutDatas) {
+ public void setActions(final List<ActionLayoutData> actionLayoutDatas) {
this.actions = actionLayoutDatas;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNoun.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNoun.java
index d68ef2c..5207060 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNoun.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNoun.java
@@ -18,46 +18,66 @@
*/
package org.apache.isis.core.metamodel.facets.all.i8n.noun;
+import java.util.Optional;
+
import javax.annotation.Nullable;
import org.apache.isis.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.metamodel.facets.all.i8n.HasMemoizableTranslation;
+import lombok.NonNull;
+
public interface HasNoun
extends HasMemoizableTranslation {
/**
- * Originating text of preferred NounForm to be translated before use in the UI.
+ * Originating text to be translated before use in the UI.
+ * @return {@code Optional.empty()} if {@code nounForm} is not supported
*/
- String preferredText();
+ Optional<String> text(@NonNull NounForm nounForm);
/**
- * Translated text of preferred NounForm to be used in the UI.
+ * Translated text to be used in the UI.
+ * @return {@code Optional.empty()} if {@code nounForm} is not supported
*/
- String preferredTranslated();
+ Optional<String> translated(@NonNull NounForm nounForm);
+
+ ImmutableEnumSet<NounForm> getSupportedNounForms();
+
+ @Override
+ default void memoizeTranslations() {
+ getSupportedNounForms().forEach(this::translated);
+ }
+
+ // -- SHORTCUTS
/**
- * Originating text to be translated before use in the UI.
+ * Originating text of singular noun-form to be translated before use in the UI.
*/
- String text(NounForm nounForm);
+ default @Nullable String singular() {
+ return text(NounForm.SINGULAR).orElse(null);
+ }
/**
- * Translated text to be used in the UI.
+ * Translated text of singular noun-form to be used in the UI.
*/
- String translated(NounForm nounForm);
-
- ImmutableEnumSet<NounForm> getSupportedNounForms();
+ default @Nullable String singularTranslated() {
+ return translated(NounForm.SINGULAR).orElse(null);
+ }
- @Nullable
- default String translatedElseNull(final NounForm nounForm) {
- return getSupportedNounForms().contains(nounForm)
- ? translated(nounForm)
- : null;
+ /**
+ * Originating text of plural noun-form to be translated before use in the UI.
+ */
+ default @Nullable String plural() {
+ return text(NounForm.PLURAL).orElse(null);
}
- @Override
- default void memoizeTranslations() {
- getSupportedNounForms().forEach(this::translated);
+ /**
+ * Translated text of plural noun-form to be used in the UI.
+ */
+ default @Nullable String pluralTranslated() {
+ return translated(NounForm.PLURAL).orElse(null);
}
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java
index bcd2d42..07bf642 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.all.i8n.noun;
import java.util.Objects;
+import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;
@@ -63,23 +64,13 @@ implements HasNoun {
}
@Override
- public final String preferredText() {
- return text(nounForms.getPreferredNounForm());
+ public final Optional<String> text(final @NonNull NounForm nounForm) {
+ return nounForms.lookup(nounForm);
}
@Override
- public final String preferredTranslated() {
- return translated(nounForms.getPreferredNounForm());
- }
-
- @Override
- public final String text(final @NonNull NounForm nounForm) {
- return nounForms.get(nounForm);
- }
-
- @Override
- public final String translated(final NounForm nounForm) {
- return translatedNounForms.get().get(nounForm);
+ public final Optional<String> translated(final @NonNull NounForm nounForm) {
+ return translatedNounForms.get().lookup(nounForm);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java
index bb7861e..d8dd489 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.all.i8n.noun;
import java.util.EnumSet;
+import java.util.Optional;
import javax.annotation.Nullable;
@@ -75,15 +76,17 @@ public class NounForms {
return ImmutableEnumSet.from(supportedNounForms);
}
- public String get(final @NonNull NounForm nounForm) {
+ public Optional<String> lookup(final @NonNull NounForm nounForm) {
if(!getSupportedNounForms().contains(nounForm)) {
- throw _Exceptions.illegalArgument("NounForm %s not supported with this instance", nounForm);
+ return Optional.empty();
};
switch(nounForm) {
case SINGULAR:
- return getSingular();
+ // non-null, as nulls are guarded by getSupportedNounForms()
+ return Optional.of(getSingular());
case PLURAL:
- return getPlural();
+ // non-null, as nulls are guarded by getSupportedNounForms()
+ return Optional.of(getPlural());
default:
break;
}
@@ -98,7 +101,6 @@ public class NounForms {
.builder()
.preferredNounForm(preferredNounForm);
-
getSupportedNounForms()
.forEach(nounForm->{
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/LayoutFacetUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/LayoutFacetUtil.java
index d163db4..2737412 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/LayoutFacetUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/LayoutFacetUtil.java
@@ -136,13 +136,8 @@ public class LayoutFacetUtil {
facetHolder.lookupNonFallbackFacet(ObjectNamedFacet.class)
.filter(namedFacet->namedFacet.getSupportedNounForms().contains(NounForm.SINGULAR))
- .ifPresent(namedFacet->{
- final String named = namedFacet.translated(NounForm.SINGULAR);
- if(!_Strings.isNullOrEmpty(named)){
- hasNamed.setNamed(named);
- }
- hasNamed.setNamedEscaped(true);
- });
+ .map(ObjectNamedFacet::singularTranslated)
+ .ifPresent(hasNamed::setNamed);
}
private void setObjectDescribedIfAny(
@@ -151,11 +146,8 @@ public class LayoutFacetUtil {
facetHolder.lookupNonFallbackFacet(ObjectDescribedFacet.class)
.map(ObjectDescribedFacet::translated)
- .ifPresent(describedAs->{
- if(_Strings.isNotEmpty(describedAs)) {
- hasDescribedAs.setDescribedAs(describedAs);
- }
- });
+ .filter(_Strings::isNotEmpty)
+ .ifPresent(hasDescribedAs::setDescribedAs);
}
private void setMemberNamedIfAny(
@@ -250,14 +242,11 @@ public class LayoutFacetUtil {
final DomainObjectLayoutData domainObjectLayoutData,
final FacetHolder facetHolder) {
- facetHolder.lookupNonFallbackFacet(ObjectNamedFacet.class)
+ facetHolder
+ .lookupNonFallbackFacet(ObjectNamedFacet.class)
.filter(namedFacet->namedFacet.getSupportedNounForms().contains(NounForm.PLURAL))
- .ifPresent(namedFacet->{
- val plural = namedFacet.translated(NounForm.PLURAL);
- if(!_Strings.isNullOrEmpty(plural)) {
- domainObjectLayoutData.setPlural(plural);
- }
- });
+ .map(ObjectNamedFacet::pluralTranslated)
+ .ifPresent(domainObjectLayoutData::setPlural);
}
public void setActionPositionIfAny(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 8078b88..dfbf254 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -485,15 +485,15 @@ implements ObjectSpecification {
@Override
public String getSingularName() {
return lookupFacet(ObjectNamedFacet.class)
- .map(textFacet->textFacet.translatedElseNull(NounForm.SINGULAR))
+ .flatMap(textFacet->textFacet.translated(NounForm.SINGULAR))
.orElseGet(this::getFullIdentifier);
}
@Override
public String getPluralName() {
return lookupFacet(ObjectNamedFacet.class)
- .map(textFacet->textFacet.translatedElseNull(NounForm.PLURAL))
- .orElseGet(this::getFullIdentifier);
+ .flatMap(textFacet->textFacet.translated(NounForm.PLURAL))
+ .orElseGet(this::getFullIdentifier);
}
/**
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm-description.adoc
index bf86fb7..1d8751b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm-description.adoc
@@ -113,48 +113,3 @@ include::PropertyLayoutNamedVm_updateWithMetaAnnotationOverridden.java[tags=meta
<.> name from meta-annotation ...
<.> \... is overridden by the `@PropertyLayout` annotation
-
-== Markup
-
-The name can include HTML markup:
-
-* for a property:
-+
-[source,java,indent=0]
-----
-include::PropertyLayoutNamedVm.java[tags=markup]
-----
-<.> Name includes HTML markup
-<.> which is rendered as HTML provided that escaping is switched off
-
-* and for a parameter:
-+
-[source,java,indent=0]
-----
-include::PropertyLayoutNamedVm_updateWithMarkup.java[tags=markup]
-----
-<.> Name includes HTML markup
-<.> which is rendered as HTML provided that escaping is switched off
-
-
-
-The HTML markup can also be escaped, using the `namedEscaped` attribute:
-
-* for a property:
-+
-[source,java,indent=0]
-----
-include::PropertyLayoutNamedVm.java[tags=markup-escaped]
-----
-<.> Name includes HTML markup
-<.> which is rendered as is if escaping is enabled
-
-* and for a parameter:
-+
-[source,java,indent=0]
-----
-include::PropertyLayoutNamedVm_updateWithEscapedMarkup.java[tags=escaped-markup]
-----
-<.> Name includes HTML markup
-<.> which is rendered as is if escaping is enabled
-
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm.java
index ed3c6f8..175ce6d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm.java
@@ -31,10 +31,11 @@ import org.apache.isis.applib.annotation.Optionality;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import lombok.Getter;
import lombok.Setter;
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+
//tag::class[]
@XmlRootElement(name = "root")
@XmlType
@@ -100,33 +101,5 @@ public class PropertyLayoutNamedVm implements HasAsciiDocDescription {
private String propertyUsingMetaAnnotationButOverridden;
//end::meta-annotated-overridden[]
- //tag::markup[]
- @Property(optionality = Optionality.OPTIONAL)
- @PropertyLayout(
- named = "Named <b>uses</b> <i>markup</i>", // <.>
- namedEscaped = false // <.>
- , describedAs =
- "@PropertyLayout(named= \"...\", namedEscaped=false)",
- fieldSetId = "markup", sequence = "1")
- @XmlElement(required = false)
- @Getter @Setter
- private String propertyUsingMarkup;
-//end::markup[]
-
- //tag::markup-escaped[]
- @Property(optionality = Optionality.OPTIONAL)
- @PropertyLayout(
- named = "Named <b>but</b> <i>escaped</i>", // <.>
- namedEscaped = true // <.>
- , describedAs =
- "@PropertyLayout(" +
- "named = \"...\", namedEscaped=true)",
- fieldSetId = "markup", sequence = "2")
- @XmlElement(required = false)
- @Getter @Setter
- private String propertyUsingEscapedMarkup;
-//end::markup-escaped[]
-
-
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm_updateWithEscapedMarkup.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm_updateWithEscapedMarkup.java
deleted file mode 100644
index 606f971..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm_updateWithEscapedMarkup.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package demoapp.dom.domain.properties.PropertyLayout.named;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-@Action(
- semantics = SemanticsOf.IDEMPOTENT
-)
-@ActionLayout(
- associateWith = "propertyUsingEscapedMarkup"
- , sequence = "1")
-@RequiredArgsConstructor
-public class PropertyLayoutNamedVm_updateWithEscapedMarkup {
-
- private final PropertyLayoutNamedVm propertyLayoutNamedVm;
-
-//tag::escaped-markup[]
- public PropertyLayoutNamedVm act(
- @Parameter(optionality = Optionality.OPTIONAL)
- @ParameterLayout(
- named = "Named <b>but</b> <i>escaped</i>", // <.>
- namedEscaped = true, // <.>
- describedAs =
- "@ParameterLayout(named = \"...\", namedEscaped = true)"
- )
- final String newValue) {
- propertyLayoutNamedVm.setPropertyUsingEscapedMarkup(newValue);
- return propertyLayoutNamedVm;
- }
-//end::escaped-markup[]
- public String default0Act() {
- return propertyLayoutNamedVm.getPropertyUsingEscapedMarkup();
- }
-
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm_updateWithMarkup.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm_updateWithMarkup.java
deleted file mode 100644
index 257efab..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/named/PropertyLayoutNamedVm_updateWithMarkup.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package demoapp.dom.domain.properties.PropertyLayout.named;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-import lombok.RequiredArgsConstructor;
-
-@Action(
- semantics = SemanticsOf.IDEMPOTENT
-)
-@ActionLayout(
- associateWith = "propertyUsingMarkup"
- , sequence = "1")
-@RequiredArgsConstructor
-public class PropertyLayoutNamedVm_updateWithMarkup {
-
- private final PropertyLayoutNamedVm propertyLayoutNamedVm;
-
-//tag::markup[]
- public PropertyLayoutNamedVm act(
- @Parameter(optionality = Optionality.OPTIONAL)
- @ParameterLayout(
- named = "Named <b>uses</b> <i>markup</i>", // <.>
- namedEscaped = false, // <.>
- describedAs =
- "@ParameterLayout(" +
- "named = \"...\", namedEscaped = false)"
- )
- final String newValue) {
- propertyLayoutNamedVm.setPropertyUsingMarkup(newValue);
- return propertyLayoutNamedVm;
- }
-//end::markup[]
- public String default0Act() {
- return propertyLayoutNamedVm.getPropertyUsingMarkup();
- }
-
-}