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/25 19:22:15 UTC
[isis] branch master updated: ISIS-1720: split existing NamedFacet
and DescribedAsFacet up into more specialized variants
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 800d5c5 ISIS-1720: split existing NamedFacet and DescribedAsFacet up into more specialized variants
800d5c5 is described below
commit 800d5c556f1dfa3a9ba8af2a9cf5b2eb88436659
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 25 21:22:01 2021 +0200
ISIS-1720: split existing NamedFacet and DescribedAsFacet up into more
specialized variants
(1) ObjectNamedFacet, MemberNamedFacet and ParameterNamedFacet
(2) ObjectDescribedFacet, MemberDescribedFacet and
ParameterDescribedFacet
also deprecate the 'escaped' flag; viewers are required to always escape
---
.../isis/applib/annotation/CollectionLayout.java | 5 +-
.../isis/applib/annotation/ParameterLayout.java | 1 +
.../isis/applib/annotation/PropertyLayout.java | 49 ++++-----
.../isis/applib/layout/component/HasNamed.java | 1 +
.../isis/commons/internal/base/_Optionals.java | 20 ++--
.../DescribedAsFacetForActionLayoutAnnotation.java | 16 +--
.../layout/DescribedAsFacetForActionXml.java | 12 +--
.../NamedFacetForActionLayoutAnnotation.java | 14 +--
.../actions/layout/NamedFacetForActionXml.java | 17 ++--
...ribedAsFacet.java => MemberDescribedFacet.java} | 10 +-
...rDescribedFacetWithImperativeTextAbstract.java} | 52 ++++------
...MemberDescribedFacetWithStaticTextAbstract.java | 50 ++++++++++
...ribedAsFacet.java => ObjectDescribedFacet.java} | 17 +---
...acet.java => ObjectDescribedFacetAbstract.java} | 33 ++++---
...cribedAsFacet.java => ParamDescribedFacet.java} | 18 +---
...tract.java => ParamDescribedFacetAbstract.java} | 50 ++++------
.../i8n/HasMemoizableTranslation.java} | 18 +---
.../all/i8n/imperative/HasImperativeText.java | 9 ++
...ct.java => HasImperativeTextFacetAbstract.java} | 11 ++-
.../metamodel/facets/all/i8n/noun/HasNoun.java | 72 ++++++++++++++
.../HasNounFacetAbstract.java} | 37 +++++--
.../facets/all/i8n/{staatic => noun}/NounForm.java | 24 +----
.../all/i8n/{staatic => noun}/NounForms.java | 28 +-----
.../facets/all/i8n/staatic/HasStaticText.java | 59 ++++++-----
.../HasStaticTextFacetAbstract.java} | 64 ++++++------
.../MemberNamedFacet.java} | 14 +--
...va => MemberNamedFacetForStaticMemberName.java} | 19 ++--
...emberNamedFacetWithImperativeTextAbstract.java} | 35 ++++---
.../MemberNamedFacetWithStaticTextAbstract.java | 50 ++++++++++
.../metamodel/facets/all/named/NamedFacet.java | 5 +-
.../facets/all/named/NamedFacetAbstract.java | 88 -----------------
.../facets/all/named/ObjectNamedFacet.java | 22 ++---
...Abstract.java => ObjectNamedFacetAbstract.java} | 46 ++++-----
.../facets/all/named/ParamNamedFacet.java | 23 ++---
...amedFacet.java => ParamNamedFacetAbstract.java} | 38 +++----
...cribedAsFacetForCollectionLayoutAnnotation.java | 17 ++--
.../layout/DescribedAsFacetForCollectionXml.java | 14 +--
.../NamedFacetForCollectionLayoutAnnotation.java | 21 ++--
.../layout/NamedFacetForCollectionXml.java | 17 ++--
.../facets/fallback/FallbackFacetFactory.java | 7 +-
.../fallback/NamedFacetFallbackFromMemberName.java | 8 +-
.../metamodel/facets/fallback/NamedFacetNone.java | 38 -------
.../annotprop/DescribedAsFacetOnMemberFactory.java | 57 -----------
.../DescribedAsFacetOnMemberFromProperties.java | 5 +-
... DescribedAsFacetOnMemberInferredFromType.java} | 42 ++++----
.../method/DescribedAsFacetForMemberViaMethod.java | 24 +----
.../named/method/NamedFacetForMemberViaMethod.java | 29 +-----
...ibedAsFacetForDomainObjectLayoutAnnotation.java | 11 ++-
.../DescribedAsFacetForDomainObjectXml.java | 12 +--
.../NamedFacetForDomainObjectLayoutAnnotation.java | 17 ++--
.../NamedFacetForDomainObjectXml.java | 20 ++--
...NamedFacetForDomainServiceLayoutAnnotation.java | 12 +--
.../mandatory/MandatoryFacetAbstract.java | 43 ++++----
...ameterAnnotationElseDerivedFromTypeFactory.java | 62 ------------
...scribedAsFacetOnParameterInferredFromType.java} | 41 ++++----
...scribedAsFacetForParameterLayoutAnnotation.java | 14 +--
.../NamedFacetForParameterLayoutAnnotation.java | 15 ++-
.../NamedFacetForParameterUsingReflection.java | 11 ++-
...escribedAsFacetForPropertyLayoutAnnotation.java | 14 ++-
.../DescribedAsFacetForPropertyXml.java | 14 +--
.../NamedFacetForPropertyLayoutAnnotation.java | 14 ++-
.../propertylayout/NamedFacetForPropertyXml.java | 26 ++---
.../core/metamodel/layout/LayoutFacetUtil.java | 109 +++++++++++++--------
.../DeriveDescribedAsFromTypePostProcessor.java | 32 +++---
.../all/i18n/TranslationPostProcessor.java | 41 ++++----
.../dflt/ProgrammingModelFacetsJava8.java | 3 -
.../services/grid/GridSystemServiceAbstract.java | 8 +-
.../isis/core/metamodel/spec/ManagedObject.java | 5 -
.../core/metamodel/spec/ObjectSpecification.java | 19 ++--
.../spec/feature/ObjectActionParameter.java | 8 +-
.../specloader/specimpl/ObjectActionMixedIn.java | 10 +-
.../specimpl/ObjectActionParameterAbstract.java | 19 ++--
.../specloader/specimpl/ObjectMemberAbstract.java | 16 +--
.../specimpl/ObjectSpecificationAbstract.java | 29 ++----
.../specimpl/OneToManyAssociationMixedIn.java | 10 +-
.../specimpl/OneToOneAssociationMixedIn.java | 11 +--
.../specimpl/dflt/ObjectSpecificationDefault.java | 16 ++-
...etForCollectionLayoutAnnotationFactoryTest.java | 29 +-----
.../DomainObjectLayoutFactoryTest.java | 26 ++---
...cetForParameterLayoutAnnotationFactoryTest.java | 32 +-----
.../facets/param/name/ParameterNameFacetTest.java | 14 ++-
...acetForPropertyLayoutAnnotationFactoryTest.java | 36 +------
.../objects/ObjectActionLayoutXmlDefaultTest.java | 16 +--
.../objects/OneToManyAssociationDefaultTest.java | 18 ++--
.../SpecificationLoaderTestAbstract.java | 26 ++++-
...ionParameterAbstractTest_getId_and_getName.java | 22 ++---
.../menubars/bootstrap3/MenuBarsServiceBS3.java | 18 ++--
.../ObjectReflectorDefaultTest_object.java | 15 ++-
.../SpecificationLoaderTestAbstract.java | 24 ++++-
.../testdomain/interact/NewParameterModelTest.java | 7 +-
.../common/model/action/ActionUiMetaModel.java | 8 +-
.../models/EntityCollectionModelStandalone.java | 10 +-
.../actionprompt/ActionPromptHeaderPanel.java | 10 +-
.../CollectionContentsAsAjaxTablePanel.java | 12 +--
.../entity/collection/EntityCollectionPanel.java | 6 +-
.../ui/components/property/PropertyEditPanel.java | 9 +-
.../PropertyEditPromptHeaderPanel.java | 9 +-
.../ui/components/scalars/ScalarPanelAbstract.java | 23 ++---
98 files changed, 1033 insertions(+), 1305 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
index 32c89f6..f7b611c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
@@ -121,6 +121,7 @@ public @interface CollectionLayout {
*
* @see CollectionLayout#named()
*/
+ @Deprecated
boolean namedEscaped()
default true;
@@ -142,7 +143,7 @@ public @interface CollectionLayout {
default -1;
/**
- * The order of this member relative to other members in the same (layout) group,
+ * The order of this member relative to other members in the same (layout) group,
* given in <i>Dewey-decimal</i> notation.
* <p>
* An alternative is to use the <code>Xxx.layout.xml</code> file,
@@ -153,7 +154,7 @@ public @interface CollectionLayout {
*/
String sequence()
default "";
-
+
/**
* Indicates that the elements in a ({@link java.util.SortedSet}) collection should be sorted according to a different order than the
* natural sort order, as defined by the specified{@link java.util.Comparator}.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
index 92d4921..bb1fa72 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
@@ -109,6 +109,7 @@ public @interface ParameterLayout {
* @see CollectionLayout#namedEscaped()
* @see ParameterLayout#named()
*/
+ @Deprecated
boolean namedEscaped()
default true;
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 7e62918..6686aa2 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
@@ -65,47 +65,47 @@ public @interface PropertyLayout {
String describedAs()
default "";
-
+
/**
* Specifies the <b>id</b> of associated <i>FieldSet</i>.
- *
+ *
* <p>
* A <i>FieldSet</i> is a layout component for property grouping, that can either be specified via
- * a <code>Xxx.layout.xml</code> file (with <code>Xxx</code> the domain object name) or is
- * inferred by the framework via annotations (aka the programming model).
- * <i>FieldSet</i>s are represented in-memory and requires a framework internal unique id per domain
+ * a <code>Xxx.layout.xml</code> file (with <code>Xxx</code> the domain object name) or is
+ * inferred by the framework via annotations (aka the programming model).
+ * <i>FieldSet</i>s are represented in-memory and requires a framework internal unique id per domain
* object type.
* </p>
* <p>
* Following 2 scenarios have slightly different behavior:
* </p>
- *
+ *
* <h1>XML layout is present</h1>
* <p>
- * When a XML layout is present, every <i>FieldSet</i> <b>id</b> is either explicitly specified in
+ * When a XML layout is present, every <i>FieldSet</i> <b>id</b> is either explicitly specified in
* the file or may be inferred from a non-empty <b>name</b>.
* If the <b>name</b> is empty "" or missing, then the <b>id</b> within the file is mandatory.
* </p><p>
- * If this <i>Property</i> is not already explicitly listed within the XML layout, we lookup the
- * associated <i>FieldSet</i> in the XML layout file first matching by <b>id</b>
- * using {@code @PropertyLayout(fieldSetId=...)} if any, then falling back to matching by (friendly)
+ * If this <i>Property</i> is not already explicitly listed within the XML layout, we lookup the
+ * associated <i>FieldSet</i> in the XML layout file first matching by <b>id</b>
+ * using {@code @PropertyLayout(fieldSetId=...)} if any, then falling back to matching by (friendly)
* <b>name</b> using @PropertyLayout(fieldSetName=...)} if any.
* </p>
- *
+ *
* <h1>XML layout is absent</h1>
* <p>
- * We reify (in-memory) the associated <i>FieldSet</i> using {@code @PropertyLayout(fieldSetId=...)}
- * (if present) as its <b>id</b> and using {@code @PropertyLayout(fieldSetId=...)} as its (friendly)
- * <b>name</b>.
- * While if no <b>id</b> is provided an <b>id</b> is inferred from the (friendly) <b>name</b>, in which
+ * We reify (in-memory) the associated <i>FieldSet</i> using {@code @PropertyLayout(fieldSetId=...)}
+ * (if present) as its <b>id</b> and using {@code @PropertyLayout(fieldSetId=...)} as its (friendly)
+ * <b>name</b>.
+ * While if no <b>id</b> is provided an <b>id</b> is inferred from the (friendly) <b>name</b>, in which
* case the (friendly) <b>name</b> must not be empty.
- * Whereas if no (friendly) <b>name</b> is provided a (friendly) <b>name</b> is inferred from the
+ * Whereas if no (friendly) <b>name</b> is provided a (friendly) <b>name</b> is inferred from the
* <b>id</b>, in which case the <b>id</b> must not be empty.
* </p><p>
- * With {@code @PropertyLayout(sequence=...)} the relative position within that <i>FieldSet</i> can be
+ * With {@code @PropertyLayout(sequence=...)} the relative position within that <i>FieldSet</i> can be
* specified.
* </p>
- *
+ *
* @see Action#associateWith()
* @see ActionLayout#fieldSetId()
* @see ActionLayout#fieldSetName()
@@ -114,9 +114,9 @@ public @interface PropertyLayout {
*/
String fieldSetId()
default "__infer";
-
+
/**
- * Specifies the <b>friendly-name</b> of associated <i>FieldSet</i>.
+ * Specifies the <b>friendly-name</b> of associated <i>FieldSet</i>.
* <p>
* Explicitly specifying an empty "" <b>friendly-name</b> will suppress the <i>FieldSet</i>'s label
* from being rendered.
@@ -124,7 +124,7 @@ public @interface PropertyLayout {
* <p>
* For a more in depth description see {@link PropertyLayout#fieldSetId()}.
* </p>
- *
+ *
* @see Action#associateWith()
* @see ActionLayout#fieldSetId()
* @see ActionLayout#fieldSetName()
@@ -133,7 +133,7 @@ public @interface PropertyLayout {
*/
String fieldSetName()
default "__infer";
-
+
/**
* Indicates where in the UI the property
* should <i>not</i> be visible.
@@ -196,6 +196,7 @@ public @interface PropertyLayout {
* @see CollectionLayout#namedEscaped()
* @see PropertyLayout#named()
*/
+ @Deprecated
boolean namedEscaped()
default true;
@@ -269,10 +270,10 @@ public @interface PropertyLayout {
*/
Repainting repainting()
default Repainting.NOT_SPECIFIED;
-
+
/**
- * The order of this member relative to other members in the same (layout) group,
+ * The order of this member relative to other members in the same (layout) group,
* given in <i>Dewey-decimal</i> notation.
* <p>
* An alternative is to use the <code>Xxx.layout.xml</code> file,
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 8567b2f..158ce1b 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
@@ -30,6 +30,7 @@ public interface HasNamed {
String getNamed();
void setNamed(String named);
+ @Deprecated // ignored
@XmlAttribute(required = false)
Boolean getNamedEscaped();
void setNamedEscaped(Boolean namedEscaped);
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java
index 697f1a2..5240b30 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java
@@ -28,30 +28,32 @@ public class _Optionals {
// can be replaced by Java 9 firstOptional.or(() -> secondOptional);
public static <T> Optional<T> or(
- final Optional<T> a,
+ final Optional<? extends T> a,
final Supplier<Optional<? extends T>> b) {
return a.isPresent()
- ? a
+ ? _Casts.uncheckedCast(a)
: b.get().map(_Casts::uncheckedCast);
}
public static <T> Optional<T> or(
- final Optional<T> a,
+ final Optional<? extends T> a,
final Supplier<Optional<? extends T>> b,
final Supplier<Optional<? extends T>> c) {
return or(or(a, b), c);
}
public static <T> Optional<T> orNullable(
- final Optional<T> a,
- final Supplier<T> b) {
- return a.isPresent() ? a : Optional.ofNullable(b.get());
+ final Optional<? extends T> a,
+ final Supplier<? extends T> b) {
+ return a.isPresent()
+ ? _Casts.uncheckedCast(a)
+ : Optional.ofNullable(b.get());
}
public static <T> Optional<T> orNullable(
- final Optional<T> a,
- final Supplier<T> b,
- final Supplier<T> c) {
+ final Optional<? extends T> a,
+ final Supplier<? extends T> b,
+ final Supplier<? extends T> c) {
return orNullable(orNullable(a, b), c);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java
index d5d83a2..79e6d90 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java
@@ -24,23 +24,27 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
public class DescribedAsFacetForActionLayoutAnnotation
-extends DescribedAsFacetAbstract {
+extends MemberDescribedFacetWithStaticTextAbstract {
- public static Optional<DescribedAsFacetForActionLayoutAnnotation> create(
+ public static Optional<MemberDescribedFacet> create(
final Optional<ActionLayout> actionLayoutIfAny,
final FacetHolder holder) {
return actionLayoutIfAny
.map(ActionLayout::describedAs)
.filter(_Strings::isNotEmpty)
- .map(describedAs -> new DescribedAsFacetForActionLayoutAnnotation(describedAs, holder));
+ .map(describedAs ->
+ new DescribedAsFacetForActionLayoutAnnotation(describedAs, holder));
}
- private DescribedAsFacetForActionLayoutAnnotation(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForActionLayoutAnnotation(
+ final String described,
+ final FacetHolder holder) {
+ super(described, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java
index 4226f43..c9e2fdf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java
@@ -24,13 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.ActionLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
public class DescribedAsFacetForActionXml
-extends DescribedAsFacetAbstract {
+extends MemberDescribedFacetWithStaticTextAbstract {
- public static Optional<DescribedAsFacet> create(
+ public static Optional<MemberDescribedFacet> create(
final ActionLayoutData actionLayout,
final FacetHolder holder) {
if(actionLayout == null) {
@@ -42,8 +42,8 @@ extends DescribedAsFacetAbstract {
: Optional.empty();
}
- private DescribedAsFacetForActionXml(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForActionXml(final String described, final FacetHolder holder) {
+ super(described, holder);
}
}
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 0219cc0..e7a1dd0 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
@@ -24,12 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
-public class NamedFacetForActionLayoutAnnotation extends NamedFacetAbstract {
+public class NamedFacetForActionLayoutAnnotation
+extends MemberNamedFacetWithStaticTextAbstract {
- public static Optional<NamedFacetForActionLayoutAnnotation> create(
+ public static Optional<MemberNamedFacet> create(
final Optional<ActionLayout> actionLayoutIfAny,
final FacetHolder holder) {
@@ -39,9 +40,8 @@ public class NamedFacetForActionLayoutAnnotation extends NamedFacetAbstract {
.map(named -> new NamedFacetForActionLayoutAnnotation(named, holder));
}
- private NamedFacetForActionLayoutAnnotation(final String singularName, final FacetHolder holder) {
-
- super(NounForms.preferredSingular(singularName).build(), /*escaped*/ true, holder);
+ private NamedFacetForActionLayoutAnnotation(final String named, final FacetHolder holder) {
+ super(named, 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 57746b0..437c897 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
@@ -24,29 +24,26 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.ActionLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
public class NamedFacetForActionXml
-extends NamedFacetAbstract {
+extends MemberNamedFacetWithStaticTextAbstract {
- public static Optional<NamedFacet> create(
+ public static Optional<MemberNamedFacet> create(
final ActionLayoutData actionLayout,
final FacetHolder holder) {
if(actionLayout == null) {
return Optional.empty();
}
final String named = _Strings.emptyToNull(actionLayout.getNamed());
- Boolean escaped = actionLayout.getNamedEscaped();
return named != null
- ? Optional.of(new NamedFacetForActionXml(named, (escaped == null || escaped), holder))
+ ? Optional.of(new NamedFacetForActionXml(named, holder))
: Optional.empty();
}
- private NamedFacetForActionXml(final String singularName, final boolean escaped, final FacetHolder holder) {
-
- super(NounForms.preferredSingular(singularName).build(), escaped, holder);
+ private NamedFacetForActionXml(final String named, final FacetHolder holder) {
+ super(named, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java
similarity index 83%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java
index 7b813eb..6e05a28 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.described;
import org.apache.isis.commons.internal.base._Either;
@@ -24,14 +23,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-/**
- * Describes a class, a property, collection, an action or an action parameter.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>@DescribedAs</tt>.
- */
-public interface DescribedAsFacet
+public interface MemberDescribedFacet
extends
Facet {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacetWithImperativeTextAbstract.java
similarity index 60%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacetAbstract.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacetWithImperativeTextAbstract.java
index d9d508e..174c4ad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacetWithImperativeTextAbstract.java
@@ -16,56 +16,44 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.described;
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.commons.internal.base._Either;
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.imperative.HasImperativeText;
+import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeTextFacetAbstract;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.I8nStaticFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
import lombok.Getter;
-public abstract class DescribedAsFacetAbstract
-extends I8nStaticFacetAbstract
-implements DescribedAsFacet {
+/**
+ * One of two bases for the {@link MemberDescribedFacet}.
+ *
+ * @see MemberDescribedFacetWithStaticTextAbstract
+ * @since 2.0
+ */
+public abstract class MemberDescribedFacetWithImperativeTextAbstract
+extends HasImperativeTextFacetAbstract
+implements MemberDescribedFacet {
private static final Class<? extends Facet> type() {
- return DescribedAsFacet.class;
+ return MemberDescribedFacet.class;
}
@Getter(onMethod_ = {@Override})
- private final _Either<HasStaticText, HasImperativeText> specialization = _Either.left(this);
+ private final _Either<HasStaticText, HasImperativeText> specialization = _Either.right(this);
- protected DescribedAsFacetAbstract(
- final String originalText,
+ protected MemberDescribedFacetWithImperativeTextAbstract(
+ final Method method,
final FacetHolder holder) {
- this(originalText, holder, Precedence.DEFAULT);
- }
-
- protected DescribedAsFacetAbstract(
- final String originalText,
- final FacetHolder holder,
- final Facet.Precedence precedence) {
super(type(),
- NounForms
- .preferredIndifferent(originalText)
- .build(),
- holder,
- precedence);
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ method,
+ holder);
}
- public final String text() {
- return preferredText();
- }
-
- public final String translated() {
- return preferredTranslated();
- }
-
-
}
-
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacetWithStaticTextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacetWithStaticTextAbstract.java
new file mode 100644
index 0000000..a33e40d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacetWithStaticTextAbstract.java
@@ -0,0 +1,50 @@
+package org.apache.isis.core.metamodel.facets.all.described;
+
+import org.apache.isis.applib.services.i18n.TranslationContext;
+import org.apache.isis.commons.internal.base._Either;
+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.imperative.HasImperativeText;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
+
+import lombok.Getter;
+
+/**
+ * One of two bases for the {@link MemberDescribedFacet}.
+ *
+ * @see MemberDescribedFacetWithImperativeTextAbstract
+ * @since 2.0
+ */
+public abstract class MemberDescribedFacetWithStaticTextAbstract
+extends HasStaticTextFacetAbstract
+implements MemberDescribedFacet {
+
+ private static final Class<? extends Facet> type() {
+ return MemberDescribedFacet.class;
+ }
+
+ @Getter(onMethod_ = {@Override})
+ private final _Either<HasStaticText, HasImperativeText> specialization = _Either.left(this);
+
+ protected MemberDescribedFacetWithStaticTextAbstract(
+ final String originalText,
+ final FacetHolder holder) {
+ this(
+ originalText,
+ holder,
+ Precedence.DEFAULT);
+ }
+
+ protected MemberDescribedFacetWithStaticTextAbstract(
+ final String originalText,
+ final FacetHolder holder,
+ final Precedence precedence) {
+ super(type(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ originalText,
+ holder,
+ precedence);
+ }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ObjectDescribedFacet.java
similarity index 68%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ObjectDescribedFacet.java
index 7b813eb..e20331a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ObjectDescribedFacet.java
@@ -16,25 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.described;
-import org.apache.isis.commons.internal.base._Either;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-/**
- * Describes a class, a property, collection, an action or an action parameter.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>@DescribedAs</tt>.
- */
-public interface DescribedAsFacet
+public interface ObjectDescribedFacet
extends
- Facet {
-
- _Either<HasStaticText, HasImperativeText> getSpecialization();
+ Facet,
+ HasStaticText {
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ObjectDescribedFacetAbstract.java
similarity index 58%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ObjectDescribedFacetAbstract.java
index 7b813eb..8763b08 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ObjectDescribedFacetAbstract.java
@@ -16,25 +16,32 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.described;
-import org.apache.isis.commons.internal.base._Either;
+import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
/**
- * Describes a class, a property, collection, an action or an action parameter.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>@DescribedAs</tt>.
+ * The base for the {@link ObjectDescribedFacet}.
+ * @since 2.0
*/
-public interface DescribedAsFacet
-extends
- Facet {
+public class ObjectDescribedFacetAbstract
+extends HasStaticTextFacetAbstract
+implements ObjectDescribedFacet {
+
+ private static final Class<? extends Facet> type() {
+ return ObjectDescribedFacet.class;
+ }
- _Either<HasStaticText, HasImperativeText> getSpecialization();
+ protected ObjectDescribedFacetAbstract(
+ final String originalText,
+ final FacetHolder holder) {
+ super(type(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ originalText,
+ holder);
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ParamDescribedFacet.java
similarity index 68%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ParamDescribedFacet.java
index 7b813eb..c063469 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ParamDescribedFacet.java
@@ -16,25 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.described;
-import org.apache.isis.commons.internal.base._Either;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-/**
- * Describes a class, a property, collection, an action or an action parameter.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>@DescribedAs</tt>.
- */
-public interface DescribedAsFacet
+public interface ParamDescribedFacet
extends
- Facet {
+ Facet,
+ HasStaticText {
- _Either<HasStaticText, HasImperativeText> getSpecialization();
+ // not yet - future extension
+ //_Either<HasStaticText, HasImperativeText> getSpecialization();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ParamDescribedFacetAbstract.java
similarity index 56%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacetAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ParamDescribedFacetAbstract.java
index d9d508e..f3e737c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/ParamDescribedFacetAbstract.java
@@ -16,56 +16,44 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.described;
-import org.apache.isis.commons.internal.base._Either;
+import org.apache.isis.applib.services.i18n.TranslationContext;
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.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.I8nStaticFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-
-import lombok.Getter;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
-public abstract class DescribedAsFacetAbstract
-extends I8nStaticFacetAbstract
-implements DescribedAsFacet {
+/**
+ * The base for the {@link ParamDescribedFacet}.
+ * @since 2.0
+ */
+public class ParamDescribedFacetAbstract
+extends HasStaticTextFacetAbstract
+implements ParamDescribedFacet {
private static final Class<? extends Facet> type() {
- return DescribedAsFacet.class;
+ return ParamDescribedFacet.class;
}
- @Getter(onMethod_ = {@Override})
- private final _Either<HasStaticText, HasImperativeText> specialization = _Either.left(this);
-
- protected DescribedAsFacetAbstract(
+ protected ParamDescribedFacetAbstract(
final String originalText,
final FacetHolder holder) {
- this(originalText, holder, Precedence.DEFAULT);
+ this(
+ originalText,
+ holder,
+ Precedence.DEFAULT);
}
- protected DescribedAsFacetAbstract(
+ protected ParamDescribedFacetAbstract(
final String originalText,
final FacetHolder holder,
- final Facet.Precedence precedence) {
+ final Precedence precedence) {
super(type(),
- NounForms
- .preferredIndifferent(originalText)
- .build(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ originalText,
holder,
precedence);
}
- public final String text() {
- return preferredText();
- }
-
- public final String translated() {
- return preferredTranslated();
- }
-
}
-
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/DescribedAsFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/HasMemoizableTranslation.java
similarity index 60%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/DescribedAsFacetNone.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/HasMemoizableTranslation.java
index 88d3f23..113323d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/DescribedAsFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/HasMemoizableTranslation.java
@@ -16,22 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.isis.core.metamodel.facets.all.i8n;
-package org.apache.isis.core.metamodel.facets.fallback;
+public interface HasMemoizableTranslation {
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.HasSemanticEqualityByClass;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
-
-/**
- * Has a description of the empty string.
- */
-public class DescribedAsFacetNone
-extends DescribedAsFacetAbstract
-implements HasSemanticEqualityByClass {
-
- public DescribedAsFacetNone(final FacetHolder holder) {
- super("", holder, Precedence.FALLBACK);
- }
+ void memoizeTranslations();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeText.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeText.java
index 3016c20..bd86ffa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeText.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeText.java
@@ -41,4 +41,13 @@ public interface HasImperativeText {
return text(object).optionalElseFail().orElse(null);
}
+ /**
+ * Flag indicating whether the label should be show as is, or should be HTML escaped.
+ * @deprecated - never bypass escaping
+ */
+ @Deprecated
+ default boolean escaped() {
+ return true;
+ }
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/I8nImperativeFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java
similarity index 87%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/I8nImperativeFacetAbstract.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java
index 8e05beb..599ae1b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/I8nImperativeFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java
@@ -35,7 +35,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObjects;
import lombok.NonNull;
import lombok.val;
-public class I8nImperativeFacetAbstract
+public class HasImperativeTextFacetAbstract
extends FacetAbstract
implements
ImperativeFacet,
@@ -44,14 +44,15 @@ implements
protected final TranslationContext translationContext;
protected final @NonNull Method method;
- protected I8nImperativeFacetAbstract(
+ protected HasImperativeTextFacetAbstract(
final Class<? extends Facet> facetType,
+ final TranslationContext translationContext, //TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier());
final Method method,
final FacetHolder holder) {
+ // imperative takes precedence over any other (except for events)
super(facetType, holder, Precedence.HIGH);
this.method = method;
- this.translationContext = TranslationContext
- .forTranslationContextHolder(holder.getFeatureIdentifier());
+ this.translationContext = translationContext;
}
@Override
@@ -85,7 +86,7 @@ implements
return false;
}
- val otherFacet = (I8nImperativeFacetAbstract)other;
+ val otherFacet = (HasImperativeTextFacetAbstract)other;
return Objects.equals(this.method, otherFacet.method)
&& Objects.equals(this.translationContext, otherFacet.translationContext);
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
new file mode 100644
index 0000000..bbfa934
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNoun.java
@@ -0,0 +1,72 @@
+/*
+ * 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 org.apache.isis.core.metamodel.facets.all.i8n.noun;
+
+import javax.annotation.Nullable;
+
+import org.apache.isis.commons.collections.ImmutableEnumSet;
+import org.apache.isis.core.metamodel.facets.all.i8n.HasMemoizableTranslation;
+
+public interface HasNoun
+extends HasMemoizableTranslation {
+
+ /**
+ * Originating text of preferred NounForm to be translated before use in the UI.
+ */
+ String preferredText();
+
+ /**
+ * Translated text of preferred NounForm to be used in the UI.
+ */
+ String preferredTranslated();
+
+ /**
+ * Originating text to be translated before use in the UI.
+ */
+ String text(NounForm nounForm);
+
+ /**
+ * Translated text to be used in the UI.
+ */
+ String translated(NounForm nounForm);
+
+ ImmutableEnumSet<NounForm> getSupportedNounForms();
+
+ @Nullable
+ default String translatedElseNull(final NounForm nounForm) {
+ return getSupportedNounForms().contains(nounForm)
+ ? translated(nounForm)
+ : null;
+ }
+
+ @Override
+ default void memoizeTranslations() {
+ getSupportedNounForms().forEach(this::translated);
+ }
+
+ /**
+ * Flag indicating whether the label should be show as is, or should be HTML escaped.
+ * @deprecated - never bypass escaping
+ */
+ @Deprecated
+ default boolean escaped() {
+ return true;
+ }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/I8nStaticFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java
similarity index 68%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/I8nStaticFacetAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java
index fe9b6f3..bcd2d42 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/I8nStaticFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/HasNounFacetAbstract.java
@@ -1,4 +1,22 @@
-package org.apache.isis.core.metamodel.facets.all.i8n.staatic;
+/*
+ * 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 org.apache.isis.core.metamodel.facets.all.i8n.noun;
import java.util.Objects;
import java.util.function.BiConsumer;
@@ -14,31 +32,32 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import lombok.NonNull;
import lombok.val;
-public abstract class I8nStaticFacetAbstract
+public abstract class HasNounFacetAbstract
extends FacetAbstract
-implements HasStaticText {
+implements HasNoun {
protected final TranslationContext translationContext;
private final @NonNull NounForms nounForms;
private final @NonNull _Lazy<NounForms> translatedNounForms;
- protected I8nStaticFacetAbstract(
+ protected HasNounFacetAbstract(
final Class<? extends Facet> facetType,
+ final TranslationContext translationContext,
final NounForms nounForms,
final FacetHolder holder) {
- this(facetType, nounForms, holder, Precedence.DEFAULT);
+ this(facetType, translationContext, nounForms, holder, Precedence.DEFAULT);
}
- protected I8nStaticFacetAbstract(
+ protected HasNounFacetAbstract(
final Class<? extends Facet> facetType,
+ final TranslationContext translationContext,
final NounForms nounForms,
final FacetHolder holder,
final Precedence precedence) {
super(facetType, holder, precedence);
this.nounForms = nounForms;
- this.translationContext = TranslationContext
- .forTranslationContextHolder(holder.getFeatureIdentifier());
+ this.translationContext = translationContext;
this.translatedNounForms = _Lazy.threadSafe(()->
nounForms.translate(holder.getTranslationService(), translationContext));
}
@@ -94,7 +113,7 @@ implements HasStaticText {
return false;
}
- val otherFacet = (I8nStaticFacetAbstract)other;
+ val otherFacet = (HasNounFacetAbstract)other;
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/staatic/NounForm.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForm.java
similarity index 68%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/NounForm.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForm.java
index d112750..e4b49eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/NounForm.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForm.java
@@ -16,9 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.all.i8n.staatic;
-
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+package org.apache.isis.core.metamodel.facets.all.i8n.noun;
/**
* Represents various linguistic forms, based on <i>cardinality</i>.
@@ -27,18 +25,6 @@ import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
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,
@@ -49,14 +35,6 @@ public enum NounForm {
PLURAL
;
- public boolean isIndifferent() {
- return this == INDIFFERENT;
- }
-
- public boolean isEmpty() {
- return this == EMPTY;
- }
-
public boolean isSingular() {
return this == SINGULAR;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/NounForms.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java
similarity index 79%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/NounForms.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java
index 2892172..bb7861e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/NounForms.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/noun/NounForms.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.all.i8n.staatic;
+package org.apache.isis.core.metamodel.facets.all.i8n.noun;
import java.util.EnumSet;
@@ -40,12 +40,6 @@ import lombok.val;
@Value @Builder
public class NounForms {
- 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)
@@ -58,8 +52,6 @@ public class NounForms {
.plural(plural);
}
- private final @Nullable String indifferent;
- private final @Nullable String empty;
private final @Nullable String singular;
private final @Nullable String plural;
@@ -72,14 +64,6 @@ public class NounForms {
val supportedNounForms = EnumSet.noneOf(NounForm.class);
- if(indifferent!=null) {
- supportedNounForms.add(NounForm.INDIFFERENT);
- }
-
- if(empty!=null) {
- supportedNounForms.add(NounForm.EMPTY);
- }
-
if(singular!=null) {
supportedNounForms.add(NounForm.SINGULAR);
}
@@ -96,10 +80,6 @@ public class NounForms {
throw _Exceptions.illegalArgument("NounForm %s not supported with this instance", nounForm);
};
switch(nounForm) {
- case INDIFFERENT:
- return getIndifferent();
- case EMPTY:
- return getEmpty();
case SINGULAR:
return getSingular();
case PLURAL:
@@ -123,12 +103,6 @@ public class NounForms {
.forEach(nounForm->{
switch(nounForm) {
- case INDIFFERENT:
- builder.indifferent(translationService.translate(context, indifferent));
- break;
- case EMPTY:
- builder.empty(translationService.translate(context, empty));
- break;
case SINGULAR:
builder.singular(translationService.translate(context, singular));
break;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticText.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticText.java
index a730312..b4a2654 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticText.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticText.java
@@ -1,42 +1,49 @@
+/*
+ * 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 org.apache.isis.core.metamodel.facets.all.i8n.staatic;
-import javax.annotation.Nullable;
+import org.apache.isis.core.metamodel.facets.all.i8n.HasMemoizableTranslation;
-import org.apache.isis.commons.collections.ImmutableEnumSet;
-
-public interface HasStaticText {
-
- /**
- * Originating text of preferred NounForm to be translated before use in the UI.
- */
- String preferredText();
-
- /**
- * Translated text of preferred NounForm to be used in the UI.
- */
- String preferredTranslated();
+public interface HasStaticText
+extends HasMemoizableTranslation {
/**
* Originating text to be translated before use in the UI.
*/
- String text(NounForm nounForm);
+ String text();
/**
* Translated text to be used in the UI.
*/
- String translated(NounForm nounForm);
-
- ImmutableEnumSet<NounForm> getSupportedNounForms();
-
- @Nullable
- default String translatedElseNull(final NounForm nounForm) {
- return getSupportedNounForms().contains(nounForm)
- ? translated(nounForm)
- : null;
- }
+ String translated();
+ @Override
default void memoizeTranslations() {
- getSupportedNounForms().forEach(this::translated);
+ translated();
}
+ /**
+ * Flag indicating whether the label should be show as is, or should be HTML escaped.
+ * @deprecated - never bypass escaping
+ */
+ @Deprecated
+ default boolean escaped() {
+ return true;
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/I8nImperativeFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticTextFacetAbstract.java
similarity index 50%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/I8nImperativeFacetAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticTextFacetAbstract.java
index 8e05beb..5536a45 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/I8nImperativeFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/staatic/HasStaticTextFacetAbstract.java
@@ -16,78 +16,80 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.all.i8n.imperative;
+package org.apache.isis.core.metamodel.facets.all.i8n.staatic;
-import java.lang.reflect.Method;
import java.util.Objects;
import java.util.function.BiConsumer;
import org.apache.isis.applib.services.i18n.TranslationContext;
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.commons.functional.Result;
+import org.apache.isis.commons.internal.base._Lazy;
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 org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ManagedObjects;
import lombok.NonNull;
import lombok.val;
-public class I8nImperativeFacetAbstract
+public abstract class HasStaticTextFacetAbstract
extends FacetAbstract
-implements
- ImperativeFacet,
- HasImperativeText {
+implements HasStaticText {
protected final TranslationContext translationContext;
- protected final @NonNull Method method;
- protected I8nImperativeFacetAbstract(
+ private final @NonNull String originalText;
+ private final @NonNull _Lazy<String> translatedText;
+
+ protected HasStaticTextFacetAbstract(
final Class<? extends Facet> facetType,
- final Method method,
+ final TranslationContext translationContext,
+ final String originalText,
final FacetHolder holder) {
- super(facetType, holder, Precedence.HIGH);
- this.method = method;
- this.translationContext = TranslationContext
- .forTranslationContextHolder(holder.getFeatureIdentifier());
+ this(facetType, translationContext, originalText, holder, Precedence.DEFAULT);
}
- @Override
- public final Result<String> text(final ManagedObject object) {
- return ManagedObjects.imperativeText(object, method, translationContext);
+ protected HasStaticTextFacetAbstract(
+ final Class<? extends Facet> facetType,
+ final TranslationContext translationContext,
+ final String originalText,
+ final FacetHolder holder,
+ final Precedence precedence) {
+ super(facetType, holder, precedence);
+ this.originalText = originalText;
+ this.translationContext = translationContext;
+ this.translatedText = _Lazy.threadSafe(()->
+ holder.getTranslationService().translate(translationContext, originalText));
}
@Override
- public final Can<Method> getMethods() {
- return Can.ofSingleton(method);
+ public final String text() {
+ return originalText;
}
@Override
- public final Intent getIntent(final Method method) {
- return Intent.UI_HINT;
+ public final String translated() {
+ return translatedText.get();
}
@Override
- public final void visitAttributes(final BiConsumer<String, Object> visitor) {
+ public void visitAttributes(final BiConsumer<String, Object> visitor) {
super.visitAttributes(visitor);
visitor.accept("context", translationContext);
- ImperativeFacet.visitAttributes(this, visitor);
+ visitor.accept("originalText", text());
+ visitor.accept("translated", translated()); // memoizes as a side-effect
}
@Override
- public final boolean semanticEquals(final @NonNull Facet other) {
+ public boolean semanticEquals(final @NonNull Facet other) {
- // equality by facet-type, java-method and translation-context
+ // equality by facet-type, (original) text and translation-context
if(!this.facetType().equals(other.facetType())) {
return false;
}
- val otherFacet = (I8nImperativeFacetAbstract)other;
+ val otherFacet = (HasStaticTextFacetAbstract)other;
- return Objects.equals(this.method, otherFacet.method)
+ return Objects.equals(this.originalText, otherFacet.originalText)
&& Objects.equals(this.translationContext, otherFacet.translationContext);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java
similarity index 79%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java
index 7b813eb..776986a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/DescribedAsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java
@@ -16,25 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-package org.apache.isis.core.metamodel.facets.all.described;
+package org.apache.isis.core.metamodel.facets.all.named;
import org.apache.isis.commons.internal.base._Either;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-/**
- * Describes a class, a property, collection, an action or an action parameter.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>@DescribedAs</tt>.
- */
-public interface DescribedAsFacet
+public interface MemberNamedFacet
extends
Facet {
_Either<HasStaticText, HasImperativeText> getSpecialization();
-}
+}
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetForMemberName.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetForStaticMemberName.java
similarity index 71%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetForMemberName.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetForStaticMemberName.java
index 8ae3e8c..17c2e18 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetForMemberName.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetForStaticMemberName.java
@@ -20,18 +20,21 @@
package org.apache.isis.core.metamodel.facets.all.named;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import lombok.NonNull;
+public class MemberNamedFacetForStaticMemberName
+extends MemberNamedFacetWithStaticTextAbstract {
-public class NamedFacetForMemberName
-extends NamedFacetForMemberNameAbstract {
-
- public NamedFacetForMemberName(
- final @NonNull NounForm preferredNounForm,
+ public MemberNamedFacetForStaticMemberName(
final String memberName,
final FacetHolder holder) {
- super(preferredNounForm, memberName, holder, Precedence.DEFAULT);
+ super(memberName, holder, Precedence.DEFAULT);
+ }
+
+ public MemberNamedFacetForStaticMemberName(
+ final String memberName,
+ final FacetHolder holder,
+ final Precedence precedence) {
+ super(memberName, holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetWithImperativeTextAbstract.java
similarity index 68%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetWithImperativeTextAbstract.java
index ffc5e92..7b757fe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetWithImperativeTextAbstract.java
@@ -16,41 +16,44 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.members.named.method;
+package org.apache.isis.core.metamodel.facets.all.named;
import java.lang.reflect.Method;
+import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.commons.internal.base._Either;
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.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.I8nImperativeFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeTextFacetAbstract;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import lombok.Getter;
-public class NamedFacetForMemberViaMethod
-extends I8nImperativeFacetAbstract
-implements NamedFacet {
+/**
+ * One of two bases for the {@link MemberNamedFacet}.
+ *
+ * @see MemberNamedFacetWithStaticTextAbstract
+ * @since 2.0
+ */
+public abstract class MemberNamedFacetWithImperativeTextAbstract
+extends HasImperativeTextFacetAbstract
+implements MemberNamedFacet {
private static final Class<? extends Facet> type() {
- return NamedFacet.class;
+ return MemberNamedFacet.class;
}
@Getter(onMethod_ = {@Override})
private final _Either<HasStaticText, HasImperativeText> specialization = _Either.right(this);
- public NamedFacetForMemberViaMethod(
- final Method namedMethod,
+ protected MemberNamedFacetWithImperativeTextAbstract(
+ final Method method,
final FacetHolder holder) {
- super(type(), namedMethod, holder);
+ super(type(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ method,
+ holder);
}
- @Override
- public boolean escaped() {
- return true; // dynamic names are always escaped
- }
-
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetWithStaticTextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetWithStaticTextAbstract.java
new file mode 100644
index 0000000..b59d0f6
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacetWithStaticTextAbstract.java
@@ -0,0 +1,50 @@
+package org.apache.isis.core.metamodel.facets.all.named;
+
+import org.apache.isis.applib.services.i18n.TranslationContext;
+import org.apache.isis.commons.internal.base._Either;
+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.imperative.HasImperativeText;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
+
+import lombok.Getter;
+
+/**
+ * One of two bases for the {@link MemberNamedFacet}.
+ *
+ * @see MemberNamedFacetWithImperativeTextAbstract
+ * @since 2.0
+ */
+public abstract class MemberNamedFacetWithStaticTextAbstract
+extends HasStaticTextFacetAbstract
+implements MemberNamedFacet {
+
+ private static final Class<? extends Facet> type() {
+ return MemberNamedFacet.class;
+ }
+
+ @Getter(onMethod_ = {@Override})
+ private final _Either<HasStaticText, HasImperativeText> specialization = _Either.left(this);
+
+ protected MemberNamedFacetWithStaticTextAbstract(
+ final String originalText,
+ final FacetHolder holder) {
+ this(
+ originalText,
+ holder,
+ Precedence.DEFAULT);
+ }
+
+ protected MemberNamedFacetWithStaticTextAbstract(
+ final String originalText,
+ final FacetHolder holder,
+ final Precedence precedence) {
+ super(type(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ originalText,
+ holder,
+ precedence);
+ }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
index 0ac7a8f..d28fb9d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.metamodel.facets.all.named;
import org.apache.isis.commons.internal.base._Either;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.HasNoun;
/**
* The name of a class, a property, collection, an action or a parameter.
@@ -31,11 +31,12 @@ import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
* In the standard Apache Isis Programming Model, corresponds to annotating the
* member with <tt>@Named</tt>.
*/
+@Deprecated
public interface NamedFacet
extends
Facet {
- _Either<HasStaticText, HasImperativeText> getSpecialization();
+ _Either<HasNoun, HasImperativeText> getSpecialization();
/**
* Flag indicating whether the label should be show as is, or should be HTML escaped.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java
deleted file mode 100644
index e3045a9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java
+++ /dev/null
@@ -1,88 +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 org.apache.isis.core.metamodel.facets.all.named;
-
-import java.util.function.BiConsumer;
-
-import org.apache.isis.commons.internal.base._Either;
-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.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.I8nStaticFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-
-import lombok.Getter;
-import lombok.NonNull;
-import lombok.val;
-
-public abstract class NamedFacetAbstract
-extends I8nStaticFacetAbstract
-implements NamedFacet {
-
- private static final Class<? extends Facet> type() {
- return NamedFacet.class;
- }
-
- @Getter(onMethod_ = {@Override})
- private final _Either<HasStaticText, HasImperativeText> specialization = _Either.left(this);
-
- private final boolean escaped;
-
- protected NamedFacetAbstract(
- final NounForms namedNounForms,
- final boolean escaped,
- final FacetHolder holder) {
- this(namedNounForms, escaped, holder, Precedence.DEFAULT);
- }
-
- protected NamedFacetAbstract(
- final NounForms namedNounForms,
- final boolean escaped,
- final FacetHolder holder,
- final Facet.Precedence precedence) {
- super(type(), namedNounForms, holder, precedence);
- this.escaped = escaped;
- }
-
- @Override
- public boolean escaped() {
- return escaped;
- }
-
- @Override
- public void visitAttributes(final BiConsumer<String, Object> visitor) {
- super.visitAttributes(visitor);
- visitor.accept("escaped", escaped);
- }
-
- @Override
- public boolean semanticEquals(final @NonNull Facet other) {
- if(! (other instanceof NamedFacetAbstract)) {
- return false;
- }
-
- val otherNamedFacet = (NamedFacetAbstract)other;
-
- return this.escaped() == otherNamedFacet.escaped()
- && super.semanticEquals(otherNamedFacet);
- }
-
-}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ObjectNamedFacet.java
similarity index 67%
copy from api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ObjectNamedFacet.java
index 8567b2f..a57b4fb 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ObjectNamedFacet.java
@@ -16,22 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.applib.layout.component;
+package org.apache.isis.core.metamodel.facets.all.named;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.HasNoun;
-/**
- * @since 1.x {@index}
- */
-public interface HasNamed {
-
- @XmlElement(required = false)
- String getNamed();
- void setNamed(String named);
-
- @XmlAttribute(required = false)
- Boolean getNamedEscaped();
- void setNamedEscaped(Boolean namedEscaped);
+public interface ObjectNamedFacet
+extends
+ Facet,
+ HasNoun {
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetForMemberNameAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ObjectNamedFacetAbstract.java
similarity index 52%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetForMemberNameAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ObjectNamedFacetAbstract.java
index a2f9e71..72bc2f1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetForMemberNameAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ObjectNamedFacetAbstract.java
@@ -16,39 +16,33 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.named;
+import org.apache.isis.applib.services.i18n.TranslationContext;
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.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-
-import lombok.NonNull;
-
-public abstract class NamedFacetForMemberNameAbstract
-extends NamedFacetAbstract {
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.HasNounFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForms;
- public static final boolean ESCAPED = true;
+/**
+ * The base for the {@link ObjectNamedFacet}.
+ * @since 2.0
+ */
+public class ObjectNamedFacetAbstract
+extends HasNounFacetAbstract
+implements ObjectNamedFacet {
- protected NamedFacetForMemberNameAbstract(
- final @NonNull NounForm preferredNounForm,
- final String memberName,
- final FacetHolder holder,
- final Facet.Precedence precedence) {
- super(
- preferredNounForm.isSingular()
- ? NounForms
- .preferredSingular(memberName)
- .build()
- : NounForms
- .preferredPlural(memberName)
- .build()
- ,
- ESCAPED,
- holder,
- precedence);
+ private static final Class<? extends Facet> type() {
+ return ObjectNamedFacet.class;
}
+ protected ObjectNamedFacetAbstract(
+ final NounForms nounForms,
+ final FacetHolder holder) {
+ super(type(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ nounForms,
+ holder);
+ }
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ParamNamedFacet.java
similarity index 67%
copy from api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ParamNamedFacet.java
index 8567b2f..908e930 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/HasNamed.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ParamNamedFacet.java
@@ -16,22 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.applib.layout.component;
+package org.apache.isis.core.metamodel.facets.all.named;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-/**
- * @since 1.x {@index}
- */
-public interface HasNamed {
-
- @XmlElement(required = false)
- String getNamed();
- void setNamed(String named);
+public interface ParamNamedFacet
+extends
+ Facet,
+ HasStaticText {
- @XmlAttribute(required = false)
- Boolean getNamedEscaped();
- void setNamedEscaped(Boolean namedEscaped);
+ // not yet - future extension
+ //_Either<HasStaticText, HasImperativeText> getSpecialization();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ParamNamedFacetAbstract.java
similarity index 58%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ParamNamedFacetAbstract.java
index 0ac7a8f..1f4dbbb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/ParamNamedFacetAbstract.java
@@ -16,29 +16,33 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.metamodel.facets.all.named;
-import org.apache.isis.commons.internal.base._Either;
+import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
/**
- * The name of a class, a property, collection, an action or a parameter.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>@Named</tt>.
+ * The base for the {@link ParamNamedFacet}.
+ * @since 2.0
*/
-public interface NamedFacet
-extends
- Facet {
+public class ParamNamedFacetAbstract
+extends HasStaticTextFacetAbstract
+implements ParamNamedFacet {
+
+ private static final Class<? extends Facet> type() {
+ return ParamNamedFacet.class;
+ }
+
+ protected ParamNamedFacetAbstract(
+ final String originalText,
+ final FacetHolder holder) {
+ super(type(),
+ TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
+ originalText,
+ holder);
+ }
- _Either<HasStaticText, HasImperativeText> getSpecialization();
- /**
- * Flag indicating whether the label should be show as is, or should be HTML escaped.
- */
- boolean escaped();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java
index f05c0f9..dff0c52 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java
@@ -24,22 +24,27 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.CollectionLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
-public class DescribedAsFacetForCollectionLayoutAnnotation extends DescribedAsFacetAbstract {
+public class DescribedAsFacetForCollectionLayoutAnnotation
+extends MemberDescribedFacetWithStaticTextAbstract {
- public static Optional<DescribedAsFacetForCollectionLayoutAnnotation> create(
+ public static Optional<MemberDescribedFacet> create(
final Optional<CollectionLayout> collectionLayoutIfAny,
final FacetHolder holder) {
return collectionLayoutIfAny
.map(CollectionLayout::describedAs)
.filter(_Strings::isNotEmpty)
- .map(describedAs -> new DescribedAsFacetForCollectionLayoutAnnotation(describedAs, holder));
+ .map(describedAs ->
+ new DescribedAsFacetForCollectionLayoutAnnotation(describedAs, holder));
}
- private DescribedAsFacetForCollectionLayoutAnnotation(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForCollectionLayoutAnnotation(
+ final String described,
+ final FacetHolder holder) {
+ super(described, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java
index 026349d..15ff135 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java
@@ -24,13 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.CollectionLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
public class DescribedAsFacetForCollectionXml
-extends DescribedAsFacetAbstract {
+extends MemberDescribedFacetWithStaticTextAbstract {
- public static Optional<DescribedAsFacet> create(
+ public static Optional<MemberDescribedFacet> create(
final CollectionLayoutData collectionLayout,
final FacetHolder holder) {
if(collectionLayout == null) {
@@ -42,8 +42,10 @@ extends DescribedAsFacetAbstract {
: Optional.empty();
}
- private DescribedAsFacetForCollectionXml(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForCollectionXml(
+ final String described,
+ final FacetHolder holder) {
+ super(described, holder);
}
}
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 b3ee38a..b1f0354 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
@@ -24,28 +24,27 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.CollectionLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
-public class NamedFacetForCollectionLayoutAnnotation extends NamedFacetAbstract {
+public class NamedFacetForCollectionLayoutAnnotation
+extends MemberNamedFacetWithStaticTextAbstract {
- public static Optional<NamedFacetForCollectionLayoutAnnotation> create(
+ public static Optional<MemberNamedFacet> create(
final Optional<CollectionLayout> collectionLayoutIfAny,
final FacetHolder holder) {
return collectionLayoutIfAny
- .filter(collectionLayout -> _Strings.emptyToNull(collectionLayout.named()) != null)
- .map(collectionLayout ->
- new NamedFacetForCollectionLayoutAnnotation(
- collectionLayout.named(), collectionLayout.namedEscaped(), holder));
+ .filter(collectionLayout -> _Strings.emptyToNull(collectionLayout.named()) != null)
+ .map(collectionLayout ->
+ new NamedFacetForCollectionLayoutAnnotation(collectionLayout.named(), holder));
}
private NamedFacetForCollectionLayoutAnnotation(
- final String pluralName,
- final boolean escaped,
+ final String named,
final FacetHolder holder) {
- super(NounForms.preferredPlural(pluralName).build(), escaped, holder);
+ super(named, 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 701ae75..f276a61 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
@@ -24,32 +24,29 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.CollectionLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
public class NamedFacetForCollectionXml
-extends NamedFacetAbstract {
+extends MemberNamedFacetWithStaticTextAbstract {
- public static Optional<NamedFacet> create(
+ public static Optional<MemberNamedFacet> create(
final CollectionLayoutData collectionLayout,
final FacetHolder holder) {
if(collectionLayout == null) {
return Optional.empty();
}
final String named = _Strings.emptyToNull(collectionLayout.getNamed());
- final Boolean escaped = collectionLayout.getNamedEscaped();
return named != null
- ? Optional.of(new NamedFacetForCollectionXml(named, escaped == null || escaped, holder))
+ ? Optional.of(new NamedFacetForCollectionXml(named, holder))
: Optional.empty();
}
private NamedFacetForCollectionXml(
- final String pluralName,
- final boolean escaped,
+ final String named,
final FacetHolder holder) {
- super(NounForms.preferredPlural(pluralName).build(), escaped, holder);
+ super(named, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
index 1f3db68..0a1f1b7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
@@ -32,7 +32,6 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.TypedHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
import lombok.val;
@@ -73,7 +72,6 @@ public class FallbackFacetFactory extends FacetFactoryAbstract {
val facetHolder = processClassContext.getFacetHolder();
- addFacet(new DescribedAsFacetNone(facetHolder));
addFacet(new TitleFacetNone(facetHolder));
addFacet(
new PagedFacetFromConfiguration(
@@ -86,8 +84,7 @@ public class FallbackFacetFactory extends FacetFactoryAbstract {
final FacetedMethod facetedMethod = processMethodContext.getFacetHolder();
- addFacet(new NamedFacetFallbackFromMemberName(NounForm.SINGULAR, facetedMethod));
- addFacet(new DescribedAsFacetNone(facetedMethod));
+ addFacet(new NamedFacetFallbackFromMemberName(facetedMethod));
addFacet(new HelpFacetNone(facetedMethod));
final FeatureType featureType = facetedMethod.getFeatureType();
@@ -114,8 +111,6 @@ public class FallbackFacetFactory extends FacetFactoryAbstract {
final TypedHolder typedHolder = processParameterContext.getFacetHolder();
if (typedHolder.getFeatureType().isActionParameter()) {
- addFacet(new NamedFacetNone(typedHolder));
- addFacet(new DescribedAsFacetNone(typedHolder));
addFacet(new HelpFacetNone(typedHolder));
addFacet(new MultiLineFacetNone(typedHolder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
index 8318d25..189bf16 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
@@ -21,15 +21,13 @@ package org.apache.isis.core.metamodel.facets.fallback;
import org.apache.isis.core.metamodel.commons.StringExtensions;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetForMemberNameAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
public class NamedFacetFallbackFromMemberName
-extends NamedFacetForMemberNameAbstract {
+extends MemberNamedFacetForStaticMemberName {
- protected NamedFacetFallbackFromMemberName(final NounForm nounForm, final FacetHolder holder) {
+ public NamedFacetFallbackFromMemberName(final FacetHolder holder) {
super(
- nounForm,
StringExtensions.asNaturalName2(holder.getFeatureIdentifier().getMemberLogicalName()),
holder,
Precedence.FALLBACK);
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
deleted file mode 100644
index f2c5f60..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java
+++ /dev/null
@@ -1,38 +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 org.apache.isis.core.metamodel.facets.fallback;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
-
-/**
- * Has a name of <tt>null</tt>.
- */
-public class NamedFacetNone
-extends NamedFacetAbstract {
-
- public static final boolean ESCAPED = true;
-
- public NamedFacetNone(final FacetHolder holder) {
- super(NounForms.preferredSingular(null).build(), ESCAPED, holder, Precedence.FALLBACK);
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFactory.java
deleted file mode 100644
index 568e3c1..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFactory.java
+++ /dev/null
@@ -1,57 +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 org.apache.isis.core.metamodel.facets.members.described.annotprop;
-
-import javax.inject.Inject;
-
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-
-import lombok.val;
-
-public class DescribedAsFacetOnMemberFactory
-extends FacetFactoryAbstract {
-
- @Inject
- public DescribedAsFacetOnMemberFactory(final MetaModelContext mmc) {
- super(mmc, FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
-
- // (facet derived from type moved to post-processor)
-
- val returnType = processMethodContext.getMethod().getReturnType();
- val paramTypeSpec = getSpecificationLoader().loadSpecification(returnType);
-
- addFacetIfPresent(
- paramTypeSpec.lookupFacet(DescribedAsFacet.class)
- .flatMap(returnTypeDescribedAsFacet->
- DescribedAsFacetOnMemberDerivedFromType
- .create(
- returnTypeDescribedAsFacet,
- processMethodContext.getFacetHolder())));
- }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFromProperties.java
index 00b31e9..95eed83 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFromProperties.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberFromProperties.java
@@ -22,9 +22,10 @@ package org.apache.isis.core.metamodel.facets.members.described.annotprop;
import java.util.Properties;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
-public class DescribedAsFacetOnMemberFromProperties extends DescribedAsFacetAbstract {
+public class DescribedAsFacetOnMemberFromProperties
+extends MemberDescribedFacetWithStaticTextAbstract {
public DescribedAsFacetOnMemberFromProperties(final Properties properties, final FacetHolder holder) {
super(valueFrom(properties), holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberDerivedFromType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberInferredFromType.java
similarity index 51%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberDerivedFromType.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberInferredFromType.java
index 3bf1060..6485c8a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberDerivedFromType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/annotprop/DescribedAsFacetOnMemberInferredFromType.java
@@ -21,33 +21,33 @@ package org.apache.isis.core.metamodel.facets.members.described.annotprop;
import java.util.Optional;
+import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
-
-public class DescribedAsFacetOnMemberDerivedFromType
-extends DescribedAsFacetAbstract {
-
- /**
- * As {@link DescribedAsFacet}(s) have either static or dynamic (imperative) text,
- * we yet only support inferring from those with static text.
- */
- public static Optional<DescribedAsFacet> create(
- final DescribedAsFacet describedAsFacet,
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+
+import lombok.val;
+
+public class DescribedAsFacetOnMemberInferredFromType
+extends MemberDescribedFacetWithStaticTextAbstract {
+
+ public static Optional<MemberDescribedFacet> create(
+ final ObjectDescribedFacet objectDescribedFacet,
final FacetHolder holder) {
- return describedAsFacet instanceof DescribedAsFacetAbstract
- ? Optional.of(
- new DescribedAsFacetOnMemberDerivedFromType(
- (DescribedAsFacetAbstract) describedAsFacet,
- holder))
- : Optional.empty();
+ val describedIfAny = _Strings.emptyToNull(objectDescribedFacet.text());
+
+ return Optional.ofNullable(describedIfAny)
+ .map(described->
+ new DescribedAsFacetOnMemberInferredFromType(described, holder));
+
}
- private DescribedAsFacetOnMemberDerivedFromType(
- final DescribedAsFacetAbstract describedAsFacet,
+ private DescribedAsFacetOnMemberInferredFromType(
+ final String described,
final FacetHolder holder) {
- super(describedAsFacet.text(), holder);
+ super(described, holder, Precedence.INFERRED);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethod.java
index 6de102e..9989564 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethod.java
@@ -20,32 +20,18 @@ package org.apache.isis.core.metamodel.facets.members.described.method;
import java.lang.reflect.Method;
-import org.apache.isis.commons.internal.base._Either;
-import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.I8nImperativeFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-
-import lombok.Getter;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithImperativeTextAbstract;
public class DescribedAsFacetForMemberViaMethod
-extends I8nImperativeFacetAbstract
-implements
- DescribedAsFacet {
-
- private static final Class<? extends Facet> type() {
- return DescribedAsFacet.class;
- }
-
- @Getter(onMethod_ = {@Override})
- private final _Either<HasStaticText, HasImperativeText> specialization = _Either.right(this);
+extends MemberDescribedFacetWithImperativeTextAbstract {
public DescribedAsFacetForMemberViaMethod(
final Method describedMethod,
final FacetHolder holder) {
- super(type(), describedMethod, holder);
+ super(
+ describedMethod,
+ holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java
index ffc5e92..049b527 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethod.java
@@ -20,37 +20,18 @@ package org.apache.isis.core.metamodel.facets.members.named.method;
import java.lang.reflect.Method;
-import org.apache.isis.commons.internal.base._Either;
-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.imperative.HasImperativeText;
-import org.apache.isis.core.metamodel.facets.all.i8n.imperative.I8nImperativeFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-
-import lombok.Getter;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithImperativeTextAbstract;
public class NamedFacetForMemberViaMethod
-extends I8nImperativeFacetAbstract
-implements NamedFacet {
-
- private static final Class<? extends Facet> type() {
- return NamedFacet.class;
- }
-
- @Getter(onMethod_ = {@Override})
- private final _Either<HasStaticText, HasImperativeText> specialization = _Either.right(this);
+extends MemberNamedFacetWithImperativeTextAbstract {
public NamedFacetForMemberViaMethod(
final Method namedMethod,
final FacetHolder holder) {
- super(type(), namedMethod, holder);
+ super(
+ namedMethod,
+ holder);
}
- @Override
- public boolean escaped() {
- return true; // dynamic names are always escaped
- }
-
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java
index 6fe54b2..268d444 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java
@@ -23,10 +23,11 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.DomainObjectLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacetAbstract;
-public class DescribedAsFacetForDomainObjectLayoutAnnotation extends DescribedAsFacetAbstract {
+public class DescribedAsFacetForDomainObjectLayoutAnnotation
+extends ObjectDescribedFacetAbstract {
public static Optional<DescribedAsFacetForDomainObjectLayoutAnnotation> create(
final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
@@ -38,7 +39,9 @@ public class DescribedAsFacetForDomainObjectLayoutAnnotation extends DescribedAs
.map(describedAs -> new DescribedAsFacetForDomainObjectLayoutAnnotation(describedAs, holder));
}
- private DescribedAsFacetForDomainObjectLayoutAnnotation(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForDomainObjectLayoutAnnotation(
+ final String described,
+ final FacetHolder holder) {
+ super(described, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java
index 54a6d15..abb07ea 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java
@@ -24,13 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacetAbstract;
public class DescribedAsFacetForDomainObjectXml
-extends DescribedAsFacetAbstract {
+extends ObjectDescribedFacetAbstract {
- public static Optional<DescribedAsFacet> create(
+ public static Optional<ObjectDescribedFacet> create(
final DomainObjectLayoutData domainObjectLayout,
final FacetHolder holder) {
if(domainObjectLayout == null) {
@@ -43,9 +43,9 @@ extends DescribedAsFacetAbstract {
}
private DescribedAsFacetForDomainObjectXml(
- final String value,
+ final String described,
final FacetHolder holder) {
- super(value, holder);
+ super(described, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java
index 4e879a7..a96f47d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java
@@ -18,23 +18,22 @@
*/
package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
-
import java.util.Optional;
import org.apache.isis.applib.annotation.DomainObjectLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForm;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForms;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacetAbstract;
import lombok.val;
-
public class NamedFacetForDomainObjectLayoutAnnotation
-extends NamedFacetAbstract {
+extends ObjectNamedFacetAbstract {
- public static Optional<NamedFacetForDomainObjectLayoutAnnotation> create(
+ public static Optional<ObjectNamedFacet> create(
final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
final FacetHolder holder) {
@@ -47,6 +46,7 @@ extends NamedFacetAbstract {
val singular = _Strings.emptyToNull(domainObjectLayout.named());
val plural = _Strings.emptyToNull(domainObjectLayout.plural());
+ //TODO[1720] if singular is not explicit (is empty), infer
val nounForms = NounForms
.builder()
.preferredNounForm(singular!=null ? NounForm.SINGULAR : NounForm.PLURAL)
@@ -62,13 +62,12 @@ extends NamedFacetAbstract {
new NamedFacetForDomainObjectLayoutAnnotation(
nounForms,
holder));
-
}
private NamedFacetForDomainObjectLayoutAnnotation(
final NounForms nounForms,
final FacetHolder holder) {
- super(nounForms, /*escaped*/ true, holder);
+ super(nounForms, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java
index b1d468e..52deac4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java
@@ -24,17 +24,17 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForm;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForms;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacetAbstract;
import lombok.val;
public class NamedFacetForDomainObjectXml
-extends NamedFacetAbstract {
+extends ObjectNamedFacetAbstract {
- public static Optional<NamedFacet> create(
+ public static Optional<ObjectNamedFacet> create(
final DomainObjectLayoutData domainObjectLayout,
final FacetHolder holder) {
@@ -45,6 +45,7 @@ extends NamedFacetAbstract {
val singular = _Strings.emptyToNull(domainObjectLayout.getNamed());
val plural = _Strings.emptyToNull(domainObjectLayout.getPlural());
+ //TODO[1720] if singular is not explicit (is empty), infer
val nounForms = NounForms
.builder()
.preferredNounForm(singular!=null ? NounForm.SINGULAR : NounForm.PLURAL)
@@ -56,21 +57,16 @@ extends NamedFacetAbstract {
return Optional.empty();
}
- final Boolean _escaped = domainObjectLayout.getNamedEscaped();
- final boolean escaped = (_escaped == null || _escaped);
-
return Optional.of(
new NamedFacetForDomainObjectXml(
nounForms,
- escaped,
holder));
}
private NamedFacetForDomainObjectXml(
final NounForms nounForms,
- final boolean escaped,
final FacetHolder holder) {
- super(nounForms, escaped, holder);
+ super(nounForms, holder);
}
}
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 5b2e0c3..a0a6d0f 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
@@ -24,16 +24,16 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.DomainServiceLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForms;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacetAbstract;
import lombok.val;
public class NamedFacetForDomainServiceLayoutAnnotation
-extends NamedFacetAbstract {
+extends ObjectNamedFacetAbstract {
- public static Optional<NamedFacet> create(
+ public static Optional<ObjectNamedFacet> create(
final Optional<DomainServiceLayout> domainServiceLayoutIfAny,
final FacetHolder facetHolder) {
@@ -60,7 +60,7 @@ extends NamedFacetAbstract {
private NamedFacetForDomainServiceLayoutAnnotation(
final NounForms nounForms,
final FacetHolder holder) {
- super(nounForms, /*escaped*/ true, holder);
+ super(nounForms, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
index 80334c6..b2ddc2d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
@@ -25,7 +25,7 @@ import org.apache.isis.commons.internal.base._Strings;
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 org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
import org.apache.isis.core.metamodel.interactions.PropertyModifyContext;
import org.apache.isis.core.metamodel.interactions.ProposedHolder;
@@ -87,31 +87,26 @@ implements MandatoryFacet {
@Override
public String invalidates(final ValidityContext context) {
- if (!(context instanceof PropertyModifyContext)
- && !(context instanceof ActionArgValidityContext)) {
- return null;
- }
- // TODO: IntelliJ says the following is always false, so looks like it can be removed...
- if (!(context instanceof ProposedHolder)) {
- // shouldn't happen, since both the above should hold a proposed
- // value/argument
- return null;
- }
- final ProposedHolder proposedHolder = (ProposedHolder) context;
- final boolean required = isRequiredButNull(proposedHolder.getProposed());
- if (!required) {
+
+ val proposedHolder =
+ context instanceof PropertyModifyContext
+ || context instanceof ActionArgValidityContext
+ ? (ProposedHolder) context
+ : null;
+
+ if(proposedHolder==null
+ || !isRequiredButNull(proposedHolder.getProposed())) {
return null;
}
- val name = getFacetHolder().lookupFacet(NamedFacet.class)
- .map(NamedFacet::getSpecialization)
- .map(specialization->specialization
- .fold(textFacet->textFacet.preferredTranslated(),
- textFacet->textFacet.textElseNull(context.getHead().getTarget())))
- .orElse(null);
-
- return name != null
- ? "'" + name + "' is mandatory"
- : "Mandatory";
+
+ return getFacetHolder()
+ .lookupFacet(MemberNamedFacet.class)
+ .map(MemberNamedFacet::getSpecialization)
+ .map(specialization->specialization
+ .fold(textFacet->textFacet.translated(),
+ textFacet->textFacet.textElseNull(context.getHead().getTarget())))
+ .map(named->"'" + named + "' is mandatory")
+ .orElse("Mandatory");
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory.java
deleted file mode 100644
index 8107f49..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory.java
+++ /dev/null
@@ -1,62 +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 org.apache.isis.core.metamodel.facets.param.described.annotderived;
-
-import javax.inject.Inject;
-
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-import lombok.val;
-
-public class DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory
-extends FacetFactoryAbstract {
-
- @Inject
- public DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory(final MetaModelContext mmc) {
- super(mmc, FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void processParams(final ProcessParameterContext processParameterContext) {
-
- val parameterType = processParameterContext.getParameterType();
-
- // fall back to a description on the parameter's type, if
- // available
- final DescribedAsFacet parameterTypeDescribedAsFacet = getDescribedAsFacet(parameterType);
- if (parameterTypeDescribedAsFacet != null) {
- FacetUtil.addFacetIfPresent(
- DescribedAsFacetOnParameterDerivedFromType
- .create(parameterTypeDescribedAsFacet, processParameterContext.getFacetHolder()));
- }
-
- }
-
- private DescribedAsFacet getDescribedAsFacet(final Class<?> type) {
- final ObjectSpecification paramTypeSpec = getSpecificationLoader().loadSpecification(type);
- return paramTypeSpec.getFacet(DescribedAsFacet.class);
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterDerivedFromType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterInferredFromType.java
similarity index 51%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterDerivedFromType.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterInferredFromType.java
index bb551c6..e86624e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterDerivedFromType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/described/annotderived/DescribedAsFacetOnParameterInferredFromType.java
@@ -21,33 +21,32 @@ package org.apache.isis.core.metamodel.facets.param.described.annotderived;
import java.util.Optional;
+import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
-
-public class DescribedAsFacetOnParameterDerivedFromType
-extends DescribedAsFacetAbstract {
-
- /**
- * As {@link DescribedAsFacet}(s) have either static or dynamic (imperative) text,
- * we yet only support inferring from those with static text.
- */
- public static Optional<DescribedAsFacet> create(
- final DescribedAsFacet describedAsFacet,
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacetAbstract;
+
+import lombok.val;
+
+public class DescribedAsFacetOnParameterInferredFromType
+extends ParamDescribedFacetAbstract {
+
+ public static Optional<ParamDescribedFacet> create(
+ final ObjectDescribedFacet objectDescribedFacet,
final FacetHolder holder) {
- return describedAsFacet instanceof DescribedAsFacetAbstract
- ? Optional.of(
- new DescribedAsFacetOnParameterDerivedFromType(
- (DescribedAsFacetAbstract) describedAsFacet,
- holder))
- : Optional.empty();
+ val describedIfAny = _Strings.emptyToNull(objectDescribedFacet.text());
+
+ return Optional.ofNullable(describedIfAny)
+ .map(described->
+ new DescribedAsFacetOnParameterInferredFromType(described, holder));
}
- private DescribedAsFacetOnParameterDerivedFromType(
- final DescribedAsFacetAbstract describedAsFacet,
+ private DescribedAsFacetOnParameterInferredFromType(
+ final String described,
final FacetHolder holder) {
- super(describedAsFacet.text(), holder);
+ super(described, holder, Precedence.INFERRED);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java
index 5d389c8..ff07e71 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java
@@ -24,13 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacetAbstract;
public class DescribedAsFacetForParameterLayoutAnnotation
-extends DescribedAsFacetAbstract {
+extends ParamDescribedFacetAbstract {
- public static Optional<DescribedAsFacet> create(
+ public static Optional<ParamDescribedFacet> create(
final Optional<ParameterLayout> parameterLayoutIfAny,
final FacetHolder holder) {
@@ -40,7 +40,9 @@ extends DescribedAsFacetAbstract {
.map(describedAs -> new DescribedAsFacetForParameterLayoutAnnotation(describedAs, holder));
}
- private DescribedAsFacetForParameterLayoutAnnotation(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForParameterLayoutAnnotation(
+ final String described,
+ final FacetHolder holder) {
+ super(described, holder);
}
}
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 66ebc33..4153d3a 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
@@ -24,14 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacetAbstract;
public class NamedFacetForParameterLayoutAnnotation
-extends NamedFacetAbstract {
+extends ParamNamedFacetAbstract {
- public static Optional<NamedFacet> create(
+ public static Optional<ParamNamedFacet> create(
final Optional<ParameterLayout> parameterLayoutIfAny,
final FacetHolder holder) {
@@ -40,16 +39,14 @@ extends NamedFacetAbstract {
.map(parameterLayout ->
new NamedFacetForParameterLayoutAnnotation(
parameterLayout.named(),
- parameterLayout.namedEscaped(),
holder));
}
private NamedFacetForParameterLayoutAnnotation(
- final String singularName,
- final boolean escaped,
+ final String named,
final FacetHolder holder) {
- super(NounForms.preferredSingular(singularName).build(), escaped, holder);
+ super(named, 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 df7db47..95c8fdf 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
@@ -19,18 +19,19 @@
package org.apache.isis.core.metamodel.facets.param.name;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacetAbstract;
/**
*
* @since 2.0
*/
public class NamedFacetForParameterUsingReflection
-extends NamedFacetAbstract {
+extends ParamNamedFacetAbstract {
- public NamedFacetForParameterUsingReflection(final String singularName, final FacetHolder holder) {
- super(NounForms.preferredSingular(singularName).build(), false, holder);
+ public NamedFacetForParameterUsingReflection(
+ final String named,
+ final FacetHolder holder) {
+ super(named, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java
index 0e2e486..79ea36c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java
@@ -24,11 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
-public class DescribedAsFacetForPropertyLayoutAnnotation extends DescribedAsFacetAbstract {
+public class DescribedAsFacetForPropertyLayoutAnnotation
+extends MemberDescribedFacetWithStaticTextAbstract {
- public static Optional<DescribedAsFacetForPropertyLayoutAnnotation> create(
+ public static Optional<MemberDescribedFacet> create(
final Optional<PropertyLayout> propertyLayoutIfAny,
final FacetHolder holder) {
@@ -38,8 +40,10 @@ public class DescribedAsFacetForPropertyLayoutAnnotation extends DescribedAsFace
.map(describedAs -> new DescribedAsFacetForPropertyLayoutAnnotation(describedAs, holder));
}
- private DescribedAsFacetForPropertyLayoutAnnotation(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForPropertyLayoutAnnotation(
+ final String described,
+ final FacetHolder holder) {
+ super(described, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java
index 2189f80..a6e2d3e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java
@@ -24,13 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.PropertyLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacetWithStaticTextAbstract;
public class DescribedAsFacetForPropertyXml
-extends DescribedAsFacetAbstract {
+extends MemberDescribedFacetWithStaticTextAbstract {
- public static Optional<DescribedAsFacet> create(
+ public static Optional<MemberDescribedFacet> create(
final PropertyLayoutData propertyLayout,
final FacetHolder holder) {
if(propertyLayout == null) {
@@ -42,8 +42,10 @@ extends DescribedAsFacetAbstract {
: Optional.empty();
}
- private DescribedAsFacetForPropertyXml(final String value, final FacetHolder holder) {
- super(value, holder);
+ private DescribedAsFacetForPropertyXml(
+ final String described,
+ final FacetHolder holder) {
+ super(described, 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 7c18c5e..f9299d8 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
@@ -24,13 +24,13 @@ import java.util.Optional;
import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
public class NamedFacetForPropertyLayoutAnnotation
-extends NamedFacetAbstract {
+extends MemberNamedFacetWithStaticTextAbstract {
- public static Optional<NamedFacetForPropertyLayoutAnnotation> create(
+ public static Optional<MemberNamedFacet> create(
final Optional<PropertyLayout> propertyLayoutIfAny,
final FacetHolder holder) {
@@ -39,16 +39,14 @@ extends NamedFacetAbstract {
.map(propertyLayout ->
new NamedFacetForPropertyLayoutAnnotation(
propertyLayout.named(),
- propertyLayout.namedEscaped(),
holder));
}
private NamedFacetForPropertyLayoutAnnotation(
- final String singularName,
- final boolean escaped,
+ final String named,
final FacetHolder holder) {
- super(NounForms.preferredSingular(singularName).build(), escaped, holder);
+ super(named, 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 bb338fe..5d378c3 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
@@ -24,16 +24,15 @@ import java.util.Optional;
import org.apache.isis.applib.layout.component.PropertyLayoutData;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
import lombok.val;
public class NamedFacetForPropertyXml
-extends NamedFacetAbstract {
+extends MemberNamedFacetWithStaticTextAbstract {
- public static Optional<NamedFacet> create(
+ public static Optional<MemberNamedFacet> create(
final PropertyLayoutData propertyLayout,
final FacetHolder holder) {
@@ -41,29 +40,22 @@ extends NamedFacetAbstract {
return Optional.empty();
}
- val nounForms = NounForms
- .preferredSingular(_Strings.emptyToNull(propertyLayout.getNamed()))
- .build();
+ val named = propertyLayout.getNamed();
- if(nounForms.getSupportedNounForms().isEmpty()) {
+ if(_Strings.isEmpty(named)) {
return Optional.empty();
}
- final Boolean _escaped = propertyLayout.getNamedEscaped();
- final boolean escaped = (_escaped == null || _escaped);
-
return Optional.of(
new NamedFacetForPropertyXml(
- nounForms,
- escaped,
+ named,
holder));
}
private NamedFacetForPropertyXml(
- final NounForms nounForms,
- final boolean escaped,
+ final String named,
final FacetHolder holder) {
- super(nounForms, escaped, holder);
+ super(named, holder);
}
}
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 a3d449e..d163db4 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
@@ -37,14 +37,16 @@ import org.apache.isis.applib.layout.component.HasNamed;
import org.apache.isis.applib.layout.component.PropertyLayoutData;
import org.apache.isis.applib.layout.grid.Grid;
import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.functions._Functions;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForm;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
@@ -128,21 +130,68 @@ public class LayoutFacetUtil {
}
}
- public void setDescribedAsIfAny(
+ private void setObjectNamedIfAny(
+ final HasNamed hasNamed,
+ final FacetHolder facetHolder) {
+
+ 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);
+ });
+ }
+
+ private void setObjectDescribedIfAny(
final HasDescribedAs hasDescribedAs,
final FacetHolder facetHolder) {
- facetHolder.lookupNonFallbackFacet(DescribedAsFacet.class)
- .filter(describedAsFacet->describedAsFacet instanceof HasStaticText)
- .map(HasStaticText.class::cast)
- .ifPresent(describedAsFacet->{
- final String describedAs = describedAsFacet.preferredTranslated();
- if(!_Strings.isNullOrEmpty(describedAs)) {
+ facetHolder.lookupNonFallbackFacet(ObjectDescribedFacet.class)
+ .map(ObjectDescribedFacet::translated)
+ .ifPresent(describedAs->{
+ if(_Strings.isNotEmpty(describedAs)) {
hasDescribedAs.setDescribedAs(describedAs);
}
});
}
+ private void setMemberNamedIfAny(
+ final HasNamed hasNamed,
+ final FacetHolder facetHolder) {
+
+ facetHolder.lookupNonFallbackFacet(MemberNamedFacet.class)
+ .map(MemberNamedFacet::getSpecialization)
+ .ifPresent(specialization->
+ specialization.accept(
+ hasStaticText->{
+ val describedAs = hasStaticText.translated();
+ if(_Strings.isNotEmpty(describedAs)) {
+ hasNamed.setNamed(describedAs);
+ }
+ },
+ _Functions.noopConsumer())); // not supported for imperative text
+ }
+
+ private void setMemberDescribedIfAny(
+ final HasDescribedAs hasDescribedAs,
+ final FacetHolder facetHolder) {
+
+ facetHolder.lookupNonFallbackFacet(MemberDescribedFacet.class)
+ .map(MemberDescribedFacet::getSpecialization)
+ .ifPresent(specialization->
+ specialization.accept(
+ hasStaticText->{
+ val describedAs = hasStaticText.translated();
+ if(_Strings.isNotEmpty(describedAs)) {
+ hasDescribedAs.setDescribedAs(describedAs);
+ }
+ },
+ _Functions.noopConsumer())); // not supported for imperative text
+ }
+
public void setHiddenIfAny(
final HasHidden hasHidden,
final FacetHolder facetHolder) {
@@ -182,25 +231,7 @@ public class LayoutFacetUtil {
}
}
- public void setNamedIfAny(
- final HasNamed hasNamed,
- final FacetHolder facetHolder) {
- facetHolder.lookupNonFallbackFacet(NamedFacet.class)
- .filter(namedFacet->namedFacet instanceof HasStaticText)
- .map(HasStaticText.class::cast)
- .filter(namedFacet->namedFacet.getSupportedNounForms().contains(NounForm.SINGULAR))
- .ifPresent(namedFacet->{
- final String named = namedFacet.translated(NounForm.SINGULAR);
- if(!_Strings.isNullOrEmpty(named)){
- hasNamed.setNamed(named);
- }
- final boolean escaped = ((NamedFacet)namedFacet).escaped();
- if(!escaped) {
- hasNamed.setNamedEscaped(escaped);
- }
- });
- }
public void setPagedIfAny(
final CollectionLayoutData collectionLayoutData,
@@ -219,9 +250,7 @@ public class LayoutFacetUtil {
final DomainObjectLayoutData domainObjectLayoutData,
final FacetHolder facetHolder) {
- facetHolder.lookupNonFallbackFacet(NamedFacet.class)
- .filter(namedFacet->namedFacet instanceof HasStaticText)
- .map(HasStaticText.class::cast)
+ facetHolder.lookupNonFallbackFacet(ObjectNamedFacet.class)
.filter(namedFacet->namedFacet.getSupportedNounForms().contains(NounForm.PLURAL))
.ifPresent(namedFacet->{
val plural = namedFacet.translated(NounForm.PLURAL);
@@ -332,9 +361,9 @@ public class LayoutFacetUtil {
setBookmarkingIfAny(actionLayoutData, objectAction);
setCssClassIfAny(actionLayoutData, objectAction);
setCssClassFaIfAny(actionLayoutData, objectAction);
- setDescribedAsIfAny(actionLayoutData, objectAction);
+ setMemberDescribedIfAny(actionLayoutData, objectAction);
setHiddenIfAny(actionLayoutData, objectAction);
- setNamedIfAny(actionLayoutData, objectAction);
+ setMemberNamedIfAny(actionLayoutData, objectAction);
setActionPositionIfAny(actionLayoutData, objectAction);
});
}
@@ -345,9 +374,9 @@ public class LayoutFacetUtil {
.ifPresent(collection->{
setCssClassIfAny(collectionLayoutData, collection);
setDefaultViewIfAny(collectionLayoutData, collection);
- setDescribedAsIfAny(collectionLayoutData, collection);
+ setMemberDescribedIfAny(collectionLayoutData, collection);
setHiddenIfAny(collectionLayoutData, collection);
- setNamedIfAny(collectionLayoutData, collection);
+ setMemberNamedIfAny(collectionLayoutData, collection);
setPagedIfAny(collectionLayoutData, collection);
setSortedByIfAny(collectionLayoutData, collection);
});
@@ -358,9 +387,9 @@ public class LayoutFacetUtil {
objectSpec.getAssociation(propertyLayoutData.getId())
.ifPresent(property->{
setCssClassIfAny(propertyLayoutData, property);
- setDescribedAsIfAny(propertyLayoutData, property);
+ setMemberDescribedIfAny(propertyLayoutData, property);
setHiddenIfAny(propertyLayoutData, property);
- setNamedIfAny(propertyLayoutData, property);
+ setMemberNamedIfAny(propertyLayoutData, property);
setLabelPositionIfAny(propertyLayoutData, property);
setMultiLineIfAny(propertyLayoutData, property);
setRenderedAsDayBeforeIfAny(propertyLayoutData, property);
@@ -373,8 +402,8 @@ public class LayoutFacetUtil {
setBookmarkingIfAny(domainObjectLayoutData, objectSpec);
setCssClassIfAny(domainObjectLayoutData, objectSpec);
setCssClassFaIfAny(domainObjectLayoutData, objectSpec);
- setDescribedAsIfAny(domainObjectLayoutData, objectSpec);
- setNamedIfAny(domainObjectLayoutData, objectSpec);
+ setObjectDescribedIfAny(domainObjectLayoutData, objectSpec);
+ setObjectNamedIfAny(domainObjectLayoutData, objectSpec);
setPluralIfAny(domainObjectLayoutData, objectSpec);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveDescribedAsFromTypePostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveDescribedAsFromTypePostProcessor.java
index caf75e4..32e5687 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveDescribedAsFromTypePostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveDescribedAsFromTypePostProcessor.java
@@ -23,11 +23,11 @@ import javax.inject.Inject;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.members.described.annotprop.DescribedAsFacetOnMemberDerivedFromType;
-import org.apache.isis.core.metamodel.facets.members.described.annotprop.DescribedAsFacetOnMemberFactory;
-import org.apache.isis.core.metamodel.facets.param.described.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory;
-import org.apache.isis.core.metamodel.facets.param.described.annotderived.DescribedAsFacetOnParameterDerivedFromType;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
+import org.apache.isis.core.metamodel.facets.members.described.annotprop.DescribedAsFacetOnMemberInferredFromType;
+import org.apache.isis.core.metamodel.facets.param.described.annotderived.DescribedAsFacetOnParameterInferredFromType;
import org.apache.isis.core.metamodel.postprocessors.ObjectSpecificationPostProcessorAbstract;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -36,10 +36,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-/**
- * Replaces some of the functionality in {@link DescribedAsFacetOnMemberFactory} and
- * {@link DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory}.
- */
public class DeriveDescribedAsFromTypePostProcessor
extends ObjectSpecificationPostProcessorAbstract {
@@ -55,13 +51,13 @@ extends ObjectSpecificationPostProcessorAbstract {
@Override
protected void doPostProcess(final ObjectSpecification objectSpecification, final ObjectAction objectAction) {
- if(objectAction.containsNonFallbackFacet(DescribedAsFacet.class)) {
+ if(objectAction.containsNonFallbackFacet(MemberDescribedFacet.class)) {
return;
}
objectAction.getReturnType()
- .lookupNonFallbackFacet(DescribedAsFacet.class)
+ .lookupNonFallbackFacet(ObjectDescribedFacet.class)
.ifPresent(specFacet -> FacetUtil.addFacetIfPresent(
- DescribedAsFacetOnMemberDerivedFromType
+ DescribedAsFacetOnMemberInferredFromType
.create(
specFacet,
facetedMethodFor(objectAction))));
@@ -69,14 +65,14 @@ extends ObjectSpecificationPostProcessorAbstract {
@Override
protected void doPostProcess(final ObjectSpecification objectSpecification, final ObjectAction objectAction, final ObjectActionParameter parameter) {
- if(parameter.containsNonFallbackFacet(DescribedAsFacet.class)) {
+ if(parameter.containsNonFallbackFacet(ParamDescribedFacet.class)) {
return;
}
final ObjectSpecification paramSpec = parameter.getSpecification();
- paramSpec.lookupNonFallbackFacet(DescribedAsFacet.class)
+ paramSpec.lookupNonFallbackFacet(ObjectDescribedFacet.class)
.ifPresent(describedAsFacet->{
FacetUtil.addFacetIfPresent(
- DescribedAsFacetOnParameterDerivedFromType
+ DescribedAsFacetOnParameterInferredFromType
.create(describedAsFacet, peerFor(parameter)));
});
}
@@ -92,13 +88,13 @@ extends ObjectSpecificationPostProcessorAbstract {
}
private void handle(final ObjectAssociation objectAssociation) {
- if(objectAssociation.containsNonFallbackFacet(DescribedAsFacet.class)) {
+ if(objectAssociation.containsNonFallbackFacet(MemberDescribedFacet.class)) {
return;
}
objectAssociation.getSpecification()
- .lookupNonFallbackFacet(DescribedAsFacet.class)
+ .lookupNonFallbackFacet(ObjectDescribedFacet.class)
.ifPresent(specFacet -> FacetUtil.addFacetIfPresent(
- DescribedAsFacetOnMemberDerivedFromType
+ DescribedAsFacetOnMemberInferredFromType
.create(specFacet, facetedMethodFor(objectAssociation))));
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java
index 39e3a71..fc9f9bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java
@@ -19,14 +19,21 @@
package org.apache.isis.core.metamodel.postprocessors.all.i18n;
+import java.util.Optional;
+import java.util.stream.Stream;
+
import javax.inject.Inject;
-import org.apache.isis.commons.internal.functions._Functions;
import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.i8n.HasMemoizableTranslation;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
import org.apache.isis.core.metamodel.postprocessors.ObjectSpecificationPostProcessorAbstract;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -77,19 +84,19 @@ extends ObjectSpecificationPostProcessorAbstract {
// -- HELPER
private void memoizeTranslations(final FacetHolder facetHolder) {
- facetHolder
- .lookupFacet(NamedFacet.class)
- .map(NamedFacet::getSpecialization)
- .ifPresent(specialization->specialization
- .accept( HasStaticText::memoizeTranslations,
- _Functions.noopConsumer()));
-
- facetHolder
- .lookupFacet(DescribedAsFacet.class)
- .map(DescribedAsFacet::getSpecialization)
- .ifPresent(specialization->specialization
- .accept( HasStaticText::memoizeTranslations,
- _Functions.noopConsumer()));
+
+ Stream.<Optional<? extends Facet>>of(
+ facetHolder.lookupFacet(ObjectNamedFacet.class),
+ facetHolder.lookupFacet(MemberNamedFacet.class),
+ facetHolder.lookupFacet(ParamNamedFacet.class),
+ facetHolder.lookupFacet(ObjectDescribedFacet.class),
+ facetHolder.lookupFacet(MemberDescribedFacet.class),
+ facetHolder.lookupFacet(ParamDescribedFacet.class))
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .filter(facet->facet instanceof HasMemoizableTranslation)
+ .map(HasMemoizableTranslation.class::cast)
+ .forEach(HasMemoizableTranslation::memoizeTranslations);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 8156a06..b8b7fdb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -38,7 +38,6 @@ import org.apache.isis.core.metamodel.facets.fallback.FallbackFacetFactory;
import org.apache.isis.core.metamodel.facets.jaxb.JaxbFacetFactory;
import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnActionFromConfiguredRegexFactory;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
-import org.apache.isis.core.metamodel.facets.members.described.annotprop.DescribedAsFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.described.method.DescribedAsFacetForMemberViaMethodFactory;
import org.apache.isis.core.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
@@ -252,8 +251,6 @@ extends ProgrammingModelAbstract {
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new DefaultedFacetAnnotationElseConfigurationFactory(mmc));
- addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new DescribedAsFacetOnMemberFactory(mmc));
-
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory(mmc));
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory(mmc));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index c83766b..7714c8e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -49,7 +49,7 @@ import org.apache.isis.core.metamodel.facets.actions.layout.HiddenFacetForAction
import org.apache.isis.core.metamodel.facets.actions.layout.NamedFacetForActionXml;
import org.apache.isis.core.metamodel.facets.actions.layout.PromptStyleFacetForActionXml;
import org.apache.isis.core.metamodel.facets.actions.layout.RedirectFacetFromActionXml;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.layout.CssClassFacetForCollectionXml;
import org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionXml;
import org.apache.isis.core.metamodel.facets.collections.layout.DescribedAsFacetForCollectionXml;
@@ -262,7 +262,7 @@ implements GridSystemService<G> {
addFacetIfPresent(DescribedAsFacetForActionXml.create(actionLayoutData, objectAction));
addFacetIfPresent(HiddenFacetForActionXml.create(actionLayoutData, objectAction));
// preserve translations
- NamedFacet existingNamedFacet = objectAction.getFacet(NamedFacet.class);
+ val existingNamedFacet = objectAction.getFacet(MemberNamedFacet.class);
if(existingNamedFacet == null) {
addFacetIfPresent(NamedFacetForActionXml.create(actionLayoutData, objectAction));
}
@@ -283,7 +283,7 @@ implements GridSystemService<G> {
addFacetIfPresent(LabelAtFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
addFacetIfPresent(MultiLineFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
// preserve translations
- NamedFacet existingNamedFacet = oneToOneAssociation.getFacet(NamedFacet.class);
+ val existingNamedFacet = oneToOneAssociation.getFacet(MemberNamedFacet.class);
if(existingNamedFacet == null) {
addFacetIfPresent(NamedFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
}
@@ -313,7 +313,7 @@ implements GridSystemService<G> {
addFacetIfPresent(DescribedAsFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
addFacetIfPresent(HiddenFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
// preserve translations
- NamedFacet existingNamedFacet = oneToManyAssociation.getFacet(NamedFacet.class);
+ val existingNamedFacet = oneToManyAssociation.getFacet(MemberNamedFacet.class);
if(existingNamedFacet == null) {
addFacetIfPresent(NamedFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 41c0de8..b17ef86 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -291,9 +291,4 @@ public interface ManagedObject {
}
-
-
-
-
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 640d094..ada2b27 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -43,12 +43,13 @@ import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.HasNoun;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForm;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
@@ -168,18 +169,18 @@ extends
/**
* Returns the (singular) name for objects of this specification.
* <p>
- * Corresponds to the {@link HasStaticText#translated(NounForm)}
+ * Corresponds to the {@link HasNoun#translated(NounForm)}
* with {@link NounForm#SINGULAR}
- * of {@link NamedFacet}; is
+ * of {@link ObjectNamedFacet}; is
* not necessarily immutable.
*/
String getSingularName();
/**
* Returns the plural name for objects of this specification.
- * Corresponds to the {@link HasStaticText#translated(NounForm)}
+ * Corresponds to the {@link HasNoun#translated(NounForm)}
* with {@link NounForm#PLURAL}
- * of {@link NamedFacet}; is
+ * of {@link ObjectNamedFacet}; is
* not necessarily immutable.
*/
String getPluralName();
@@ -188,8 +189,8 @@ extends
* Returns the description, if any, of the specification.
*
* <p>
- * Corresponds to the {@link HasStaticText#preferredTranslated() value} of
- * {@link DescribedAsFacet}; is not necessarily immutable.
+ * Corresponds to the {@link HasStaticText#translated() value} of
+ * {@link ObjectDescribedFacet}; is not necessarily immutable.
*/
String getDescription();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index 3ec749f..3fc4cd4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -27,7 +27,7 @@ import javax.enterprise.inject.Vetoed;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
import org.apache.isis.core.metamodel.interactions.InteractionHead;
import org.apache.isis.core.metamodel.interactions.managed.ParameterNegotiationModel;
@@ -60,7 +60,7 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
* of the parameter, we have to do figure out the name of the parameter
* ourselves:
* <ul>
- * <li>If there is a {@link NamedFacet} associated with this parameter then
+ * <li>If there is a {@link MemberNamedFacet} associated with this parameter then
* we infer a name from this, eg "First Name" becomes "firstName".
* <li>Otherwise we use the type, eg "string".
* <li>If there is more than one parameter of the same type, then we use a
@@ -130,7 +130,7 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
}
/** default value as result of a initial param value fixed point search */
- default ManagedObject getDefault(ManagedObject actionOnwer) {
+ default ManagedObject getDefault(final ManagedObject actionOnwer) {
return getAction()
.interactionHead(actionOnwer).defaults()
.getParamValues()
@@ -261,7 +261,7 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
}
}
- default String getCssClass(String prefix) {
+ default String getCssClass(final String prefix) {
return getAction().getCssClass(prefix) + "-" + getId();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
index 86d6c32..2bc71b7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
@@ -27,9 +27,8 @@ import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetForMemberName;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
import org.apache.isis.core.metamodel.interactions.InteractionHead;
import org.apache.isis.core.metamodel.interactions.managed.ActionInteractionHead;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -91,12 +90,13 @@ implements MixedInMember {
// adjust name if necessary
- val isExplicitlyNamed = lookupNonFallbackFacet(NamedFacet.class)
+ val isExplicitlyNamed = lookupNonFallbackFacet(MemberNamedFacet.class)
.isPresent();
if(!isExplicitlyNamed) {
val memberName = determineNameFrom(mixinAction);
- this.addFacet(new NamedFacetForMemberName(NounForm.SINGULAR, memberName, facetHolder));
+ this.addFacet(
+ new MemberNamedFacetForStaticMemberName(memberName, facetHolder));
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index 6106648..f255021 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -36,9 +36,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.HasFacetHolder;
import org.apache.isis.core.metamodel.facets.TypedHolder;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
@@ -135,11 +134,8 @@ implements ObjectActionParameter, HasFacetHolder {
@Override
public String getName() {
- // assuming parameters don't have imperative naming support
- val name = lookupFacet(NamedFacet.class)
- .filter(namedFacet->namedFacet instanceof HasStaticText)
- .map(HasStaticText.class::cast)
- .map(HasStaticText::preferredTranslated)
+ val name = lookupFacet(ParamNamedFacet.class)
+ .map(ParamNamedFacet::translated)
.orElse(null);
if (name!=null) {
@@ -163,11 +159,8 @@ implements ObjectActionParameter, HasFacetHolder {
@Override
public String getDescription() {
- // assuming parameters don't have imperative description support
- return lookupFacet(DescribedAsFacet.class)
- .filter(describedAsFacet->describedAsFacet instanceof HasStaticText)
- .map(HasStaticText.class::cast)
- .map(HasStaticText::preferredTranslated)
+ return lookupFacet(ParamDescribedFacet.class)
+ .map(ParamDescribedFacet::translated)
.orElse("");
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index b8e605e..b7ffcfa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -37,10 +37,10 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.HasFacetHolder;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
import org.apache.isis.core.metamodel.interactions.AccessContext;
import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
@@ -129,15 +129,15 @@ implements
final ManagedObject owner = null; //TODO[ISIS-1720] must take ManagedObject (owner) as an argument
- val namedFacet = getFacet(NamedFacet.class);
+ val namedFacet = getFacet(MemberNamedFacet.class);
if(namedFacet==null) {
- throw _Exceptions.unrecoverableFormatted("no NamedFacet preset on %s", getFeatureIdentifier());
+ throw _Exceptions.unrecoverableFormatted("no MemberNamedFacet preset on %s", getFeatureIdentifier());
}
return namedFacet
.getSpecialization()
- .fold( textFacet->textFacet.preferredTranslated(),
+ .fold( textFacet->textFacet.translated(),
textFacet->textFacet.textElseNull(owner));
}
@@ -146,10 +146,10 @@ implements
final ManagedObject owner = null; //TODO[ISIS-1720] must take ManagedObject (owner) as an argument
- return lookupFacet(DescribedAsFacet.class)
- .map(DescribedAsFacet::getSpecialization)
+ return lookupFacet(MemberDescribedFacet.class)
+ .map(MemberDescribedFacet::getSpecialization)
.map(specialization->specialization
- .fold(textFacet->textFacet.preferredTranslated(),
+ .fold(textFacet->textFacet.translated(),
textFacet->textFacet.textElseNull(owner)))
.orElse(null);
}
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 cb10cae..8078b88 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
@@ -52,11 +52,11 @@ import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForm;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
@@ -484,35 +484,26 @@ implements ObjectSpecification {
@Override
public String getSingularName() {
- return lookupFacet(NamedFacet.class)
- .map(NamedFacet::getSpecialization)
- .map(specialization->specialization
- .fold( textFacet->textFacet.translatedElseNull(NounForm.SINGULAR),
- textFacet->textFacet.textElseNull(null)))
+ return lookupFacet(ObjectNamedFacet.class)
+ .map(textFacet->textFacet.translatedElseNull(NounForm.SINGULAR))
.orElseGet(this::getFullIdentifier);
}
@Override
public String getPluralName() {
- return lookupFacet(NamedFacet.class)
- .map(NamedFacet::getSpecialization)
- .map(specialization->specialization
- .fold( textFacet->textFacet.translatedElseNull(NounForm.PLURAL),
- textFacet->textFacet.textElseNull(null)))
+ return lookupFacet(ObjectNamedFacet.class)
+ .map(textFacet->textFacet.translatedElseNull(NounForm.PLURAL))
.orElseGet(this::getFullIdentifier);
}
/**
- * The translated description according to any available {@link DescribedAsFacet},
+ * The translated description according to any available {@link ObjectDescribedFacet},
* else empty string (<tt>""</tt>).
*/
@Override
public String getDescription() {
- return lookupFacet(DescribedAsFacet.class)
- .map(DescribedAsFacet::getSpecialization)
- .map(specialization->specialization
- .fold( textFacet->textFacet.preferredTranslated(),
- textFacet->textFacet.textElseNull(null)))
+ return lookupFacet(ObjectDescribedFacet.class)
+ .map(ObjectDescribedFacet::translated)
.orElse("");
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index ec007bf..c7e3995 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -27,9 +27,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolderAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetForMemberName;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
import org.apache.isis.core.metamodel.facets.propcoll.memserexcl.SnapshotExcludeFacetAbstract;
@@ -119,12 +118,13 @@ public class OneToManyAssociationMixedIn extends OneToManyAssociationDefault imp
FacetUtil.copyFacetsTo(mixinAction.getFacetedMethod(), facetHolder);
// adjust name if necessary
- val isExplicitlyNamed = lookupNonFallbackFacet(NamedFacet.class)
+ val isExplicitlyNamed = lookupNonFallbackFacet(MemberNamedFacet.class)
.isPresent();
if(!isExplicitlyNamed) {
String memberName = determineNameFrom(mixinAction);
- FacetUtil.addFacet(new NamedFacetForMemberName(NounForm.PLURAL, memberName, facetHolder));
+ FacetUtil.addFacet(
+ new MemberNamedFacetForStaticMemberName(memberName, facetHolder));
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
index b9b7f91..902ae71 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
@@ -25,9 +25,8 @@ import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetForMemberName;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
import org.apache.isis.core.metamodel.interactions.InteractionHead;
@@ -100,14 +99,14 @@ public class OneToOneAssociationMixedIn extends OneToOneAssociationDefault imple
FacetUtil.copyFacetsTo(mixinAction.getFacetedMethod(), facetHolder);
-
// adjust name if necessary
- val isExplicitlyNamed = lookupNonFallbackFacet(NamedFacet.class)
+ val isExplicitlyNamed = lookupNonFallbackFacet(MemberNamedFacet.class)
.isPresent();
if(!isExplicitlyNamed) {
String memberName = determineNameFrom(mixinAction);
- FacetUtil.addFacet(new NamedFacetForMemberName(NounForm.SINGULAR, memberName, facetHolder));
+ FacetUtil.addFacet(
+ new MemberNamedFacetForStaticMemberName(memberName, facetHolder));
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 65ed708..94e6a83 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -40,9 +40,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetForMemberName;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
@@ -118,7 +117,7 @@ implements FacetHolder {
facetedMethodsBuilder.introspectClass();
// name
- addNamedFacetIfRequired(NounForm.SINGULAR);
+ addNamedFacetIfRequired();
// go no further if a value
if(this.containsFacet(ValueFacet.class)) {
@@ -177,15 +176,12 @@ implements FacetHolder {
postProcess();
}
- private void addNamedFacetIfRequired(final NounForm nounForm) {
- if (getFacet(NamedFacet.class) == null) {
-
- addFacet(new NamedFacetForMemberName(
- nounForm,
+ private void addNamedFacetIfRequired() {
+ if (getFacet(MemberNamedFacet.class) == null) {
+ addFacet(new MemberNamedFacetForStaticMemberName(
StringExtensions.asNaturalName2(getShortIdentifier()),
this));
}
-
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
index c8b2b70..ef3b7b7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
@@ -20,7 +20,6 @@
package org.apache.isis.core.metamodel.facets.collections.layout.annotation;
import java.lang.reflect.Method;
-import java.util.Set;
import java.util.SortedSet;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -34,8 +33,7 @@ import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFacetFactory;
import org.apache.isis.core.metamodel.facets.collections.layout.NamedFacetForCollectionLayoutAnnotation;
@@ -56,31 +54,10 @@ public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends Abstract
facetFactory.process(new FacetFactory.ProcessMethodContext(Customer.class, null, method, methodRemover, facetedMethod));
- final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
+ val facet = facetedMethod.getFacet(MemberNamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForCollectionLayoutAnnotation.class)));
- assertThat(((HasStaticText)facet).text(NounForm.PLURAL), is(equalTo("1st names")));
- assertThat(facet.escaped(), is(true));
- }
-
- public void testCollectionLayoutAnnotationNamedEscapedFalse() {
- val facetFactory = new CollectionLayoutFacetFactory(metaModelContext);
-
- class Customer {
- @CollectionLayout(named = "1st names", namedEscaped = false)
- public Set<String> getFirstNames() {
- return _Sets.newTreeSet();
- }
- }
- final Method method = findMethod(Customer.class, "getFirstNames");
-
- facetFactory.process(new FacetFactory.ProcessMethodContext(Customer.class, null, method, methodRemover, facetedMethod));
-
- final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
- assertThat(facet, is(notNullValue()));
- assertThat(facet, is(instanceOf(NamedFacetForCollectionLayoutAnnotation.class)));
- assertThat(((HasStaticText)facet).text(NounForm.PLURAL), is(equalTo("1st names")));
- assertThat(facet.escaped(), is(false));
+ assertThat(((HasStaticText)facet).text(), is(equalTo("1st names")));
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
index 8902c7b..df79292 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
@@ -40,16 +40,18 @@ import org.apache.isis.applib.layout.component.CssClassFaPosition;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.FacetFactory;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.HasNoun;
+import org.apache.isis.core.metamodel.facets.all.i8n.noun.NounForm;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import lombok.val;
+
public class DomainObjectLayoutFactoryTest
extends AbstractFacetFactoryJUnit4TestCase {
@@ -248,7 +250,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
facetFactory.process(new FacetFactory.ProcessClassContext(cls, mockMethodRemover, facetHolder));
- final Facet facet = facetHolder.getFacet(DescribedAsFacet.class);
+ final Facet facet = facetHolder.getFacet(ObjectDescribedFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof DescribedAsFacetForDomainObjectLayoutAnnotation);
@@ -265,7 +267,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
facetFactory.process(new FacetFactory.ProcessClassContext(cls, mockMethodRemover, facetHolder));
- final Facet facet = facetHolder.getFacet(DescribedAsFacet.class);
+ final Facet facet = facetHolder.getFacet(ObjectDescribedFacet.class);
assertNull(facet);
expectNoMethodsRemoved();
@@ -293,11 +295,11 @@ extends AbstractFacetFactoryJUnit4TestCase {
facetFactory.process(new FacetFactory.ProcessClassContext(cls, mockMethodRemover, facetHolder));
- final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
+ val namedFacet = facetHolder.getFacet(ObjectNamedFacet.class);
assertNotNull(namedFacet);
assertTrue(namedFacet instanceof NamedFacetForDomainObjectLayoutAnnotation);
- assertEquals("Name override", ((HasStaticText)namedFacet).text(NounForm.SINGULAR));
+ assertEquals("Name override", ((HasNoun)namedFacet).text(NounForm.SINGULAR));
expectNoMethodsRemoved();
}
@@ -309,7 +311,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
facetFactory.process(new FacetFactory.ProcessClassContext(cls, mockMethodRemover, facetHolder));
- final Facet facet = facetHolder.getFacet(NamedFacet.class);
+ val facet = facetHolder.getFacet(ObjectNamedFacet.class);
assertNull(facet);
expectNoMethodsRemoved();
@@ -381,10 +383,10 @@ extends AbstractFacetFactoryJUnit4TestCase {
facetFactory.process(new FacetFactory.ProcessClassContext(cls, mockMethodRemover, facetHolder));
- final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
+ val namedFacet = facetHolder.getFacet(ObjectNamedFacet.class);
assertNotNull(namedFacet);
- assertEquals("Customers Plural Form", ((HasStaticText)namedFacet).translated(NounForm.PLURAL));
+ assertEquals("Customers Plural Form", ((HasNoun)namedFacet).translated(NounForm.PLURAL));
expectNoMethodsRemoved();
}
@@ -396,7 +398,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
facetFactory.process(new FacetFactory.ProcessClassContext(cls, mockMethodRemover, facetHolder));
- final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
+ val namedFacet = facetHolder.getFacet(ObjectNamedFacet.class);
assertNull(namedFacet);
//assertEquals("", namedFacet.translated(NounForm.PLURAL));
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
index 517c8e7..a6832d6 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.param.layout.annotation;
import java.lang.reflect.Method;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
@@ -30,12 +29,12 @@ import static org.hamcrest.Matchers.notNullValue;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
import org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation;
import org.apache.isis.core.metamodel.facets.param.layout.ParameterLayoutFacetFactory;
+import lombok.val;
+
public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
private static final String NAME = "an action";
@@ -52,31 +51,10 @@ public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractF
facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
- final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
- assertThat(facet, is(notNullValue()));
- assertThat(facet, is(instanceOf(NamedFacetForParameterLayoutAnnotation.class)));
- assertEquals(NAME, ((HasStaticText)facet).text(NounForm.SINGULAR));
- assertThat(facet.escaped(), is(true));
- }
-
- public void testParameterLayoutAnnotationNamedEscapedFalse() {
- final ParameterLayoutFacetFactory facetFactory = new ParameterLayoutFacetFactory(metaModelContext);
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction(@ParameterLayout(named = NAME, namedEscaped = false) final String foo) {
- }
- }
- final Method method = findMethod(Customer.class, "someAction", new Class[]{String.class});
-
- facetFactory.processParams(new FacetFactory.ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
-
- final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
+ val facet = facetedMethodParameter.getFacet(ParamNamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForParameterLayoutAnnotation.class)));
- assertThat(((HasStaticText)facet).text(NounForm.SINGULAR), is(equalTo(NAME)));
- assertEquals(NAME, ((HasStaticText)facet).text(NounForm.SINGULAR));
- assertThat(facet.escaped(), is(false));
+ assertEquals(NAME, facet.text());
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetTest.java
index 708dcd6..858ce98 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetTest.java
@@ -32,9 +32,7 @@ import org.apache.isis.commons.internal.reflection._Reflect;
import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.FacetFactory;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
@@ -64,7 +62,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
programmingModel = metaModelContext.getProgrammingModel();
// verify that
- assertEquals(121, programmingModel.streamFactories().count());
+ assertEquals(120, programmingModel.streamFactories().count());
}
@Override
@@ -110,9 +108,9 @@ extends AbstractFacetFactoryJUnit4TestCase {
.forEach(facetFactory->facetFactory.processParams(processParameterContext));
// then
- val namedFacet = facetedMethodParameter.getFacet(NamedFacet.class);
+ val namedFacet = facetedMethodParameter.getFacet(ParamNamedFacet.class);
- assertEquals("An Awesome Name", ((HasStaticText)namedFacet).text(NounForm.SINGULAR));
+ assertEquals("An Awesome Name", namedFacet.text());
}
@@ -140,9 +138,9 @@ extends AbstractFacetFactoryJUnit4TestCase {
programmingModel.streamFactories().forEach(facetFactory->facetFactory.processParams(processParameterContext));
// then
- val namedFacet = facetedMethodParameter.getFacet(NamedFacet.class);
+ val namedFacet = facetedMethodParameter.getFacet(ParamNamedFacet.class);
assertNotNull(namedFacet);
- assertEquals("Even Better Name", ((HasStaticText)namedFacet).text(NounForm.SINGULAR));
+ assertEquals("Even Better Name", namedFacet.text());
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
index bd0cc17..1c0bb4d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
@@ -31,8 +31,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import lombok.val;
@@ -58,40 +57,11 @@ extends AbstractFacetFactoryTest {
facetFactory.process(processMethodContext);
// then
- final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
+ val facet = facetedMethod.getFacet(MemberNamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
- assertThat(((HasStaticText)facet).text(NounForm.SINGULAR), is(equalTo("1st name")));
- assertThat(facet.escaped(), is(true));
+ assertThat(((HasStaticText)facet).text(), is(equalTo("1st name")));
}
- public void testPropertyLayoutAnnotationNamedEscapedFalse() {
- val facetFactory = createPropertyLayoutFacetFactory(metaModelContext);
-
- class Customer {
- @PropertyLayout(named = "1st name", namedEscaped = false)
- public String getFirstName() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getFirstName");
-
- // when
- final FacetFactory.ProcessMethodContext processMethodContext
- = new FacetFactory.ProcessMethodContext(Customer.class, null, method,
- methodRemover, facetedMethod);
-
- facetFactory.process(processMethodContext);
-
- // then
- final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
- assertThat(facet, is(notNullValue()));
- assertThat(facet, is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
- assertThat(((HasStaticText)facet).text(NounForm.SINGULAR), is(equalTo("1st name")));
- assertThat(facet.escaped(), is(false));
- }
-
-
-
}
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 829522c..e71da62 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
@@ -37,15 +37,12 @@ import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel._testing.TranslationService_forTesting;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForms;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetWithStaticTextAbstract;
import org.apache.isis.core.metamodel.id.TypeIdentifierTestFactory;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault;
-import lombok.val;
-
public class ObjectActionLayoutXmlDefaultTest {
@Rule public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
@@ -85,14 +82,11 @@ public class ObjectActionLayoutXmlDefaultTest {
public void testNameDefaultsToActionsMethodName() {
final String name = "Reduceheadcount";
- val nounForms = NounForms.preferredSingular(name)
- .build();
-
- final NamedFacet facet =
- new NamedFacetAbstract(nounForms, true, mockFacetedMethod) {};
+ final MemberNamedFacet facet =
+ new MemberNamedFacetWithStaticTextAbstract(name, mockFacetedMethod) {};
context.checking(new Expectations() {
{
- oneOf(mockFacetedMethod).getFacet(NamedFacet.class);
+ oneOf(mockFacetedMethod).getFacet(MemberNamedFacet.class);
will(returnValue(facet));
}
});
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/OneToManyAssociationDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/OneToManyAssociationDefaultTest.java
index eea0a29..62c632f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/OneToManyAssociationDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/objects/OneToManyAssociationDefaultTest.java
@@ -32,15 +32,13 @@ import static org.hamcrest.Matchers.is;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.message.MessageService;
-import org.apache.isis.commons.collections.ImmutableEnumSet;
import org.apache.isis.commons.internal.base._Either;
import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2.Mode;
import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.id.TypeIdentifierTestFactory;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -67,13 +65,12 @@ public class OneToManyAssociationDefaultTest {
@Mock ObjectSpecification mockOwnerAdapterSpec;
@Mock MessageService mockMessageService;
@Mock FacetedMethod mockPeer;
- @Mock NamedFacetStatic mockNamedFacet;
+ @Mock MemberNamedFacet mockNamedFacet;
+ @Mock HasStaticText mockHasStaticText;
private OneToManyAssociation association;
private MetaModelContext_forTesting metaModelContext;
- private static interface NamedFacetStatic extends NamedFacet, HasStaticText {};
-
@Before
public void setUp() {
@@ -134,18 +131,15 @@ public class OneToManyAssociationDefaultTest {
private void expectPeerToReturnNamedFacet() {
context.checking(new Expectations() {
{
- oneOf(mockPeer).getFacet(NamedFacet.class);
+ oneOf(mockPeer).getFacet(MemberNamedFacet.class);
will(returnValue(mockNamedFacet));
allowing(mockNamedFacet).getSpecialization();
- will(returnValue(_Either.left(mockNamedFacet)));
+ will(returnValue(_Either.left(mockHasStaticText)));
- allowing(mockNamedFacet).preferredTranslated();
+ allowing(mockHasStaticText).translated();
will(returnValue("My name"));
- allowing(mockNamedFacet).getSupportedNounForms();
- will(returnValue(ImmutableEnumSet.of(NounForm.SINGULAR)));
-
}
});
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
index 0dbbe23..6db5217 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.specloader;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -36,13 +37,16 @@ import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.commons.internal.base._Optionals;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -153,13 +157,25 @@ abstract class SpecificationLoaderTestAbstract {
@Test
public void testNamedFaced() throws Exception {
- final Facet facet = specification.getFacet(NamedFacet.class);
+
+ val facet =
+ _Optionals.<Facet>or(
+ specification.lookupFacet(ObjectNamedFacet.class),
+ ()->specification.lookupFacet(MemberNamedFacet.class))
+ .orElse(null);
+
assertNotNull(facet);
}
- @Test
+ @Test @Disabled("we allow descriptions to be absent - no need to install empty fallbacks")
public void testDescriptionFacet() throws Exception {
- final Facet facet = specification.getFacet(DescribedAsFacet.class);
+
+ val facet =
+ _Optionals.<Facet>or(
+ specification.lookupFacet(ObjectDescribedFacet.class),
+ ()->specification.lookupFacet(MemberDescribedFacet.class))
+ .orElse(null);
+
assertNotNull(facet);
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
index 28adb1d..ebe4eb9 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
@@ -38,8 +38,7 @@ import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.TypedHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
import org.apache.isis.core.metamodel.interactions.InteractionHead;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -56,7 +55,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
@Mock
private TypedHolder actionParamPeer;
@Mock
- private NamedFacetStatic namedFacet;
+ private ParamNamedFacet namedFacet;
@Mock
private ObjectSpecification stubSpecForString;
@@ -65,9 +64,6 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
@Mock
private ObjectActionParameter stubObjectActionParameterString2;
-
- private static interface NamedFacetStatic extends NamedFacet, HasStaticText {};
-
private static final class ObjectActionParameterAbstractToTest extends ObjectActionParameterAbstract {
private ObjectActionParameterAbstractToTest(final int number, final ObjectActionDefault objectAction, final TypedHolder peer) {
super(FeatureType.ACTION_PARAMETER_SCALAR, number, objectAction, peer);
@@ -136,10 +132,10 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
context.checking(new Expectations() {
{
- oneOf(actionParamPeer).getFacet(NamedFacet.class);
+ oneOf(actionParamPeer).getFacet(ParamNamedFacet.class);
will(returnValue(namedFacet));
- atLeast(1).of(namedFacet).preferredTranslated();
+ atLeast(1).of(namedFacet).translated();
will(returnValue("Some parameter name"));
}
});
@@ -154,10 +150,10 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
context.checking(new Expectations() {
{
- oneOf(actionParamPeer).getFacet(NamedFacet.class);
+ oneOf(actionParamPeer).getFacet(ParamNamedFacet.class);
will(returnValue(namedFacet));
- atLeast(1).of(namedFacet).preferredTranslated();
+ atLeast(1).of(namedFacet).translated();
will(returnValue("Some parameter name"));
}
});
@@ -173,7 +169,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
context.checking(new Expectations() {
{
- oneOf(actionParamPeer).getFacet(NamedFacet.class);
+ oneOf(actionParamPeer).getFacet(ParamNamedFacet.class);
will(returnValue(null));
oneOf(parentAction).getParameters(with(Expectations.<Predicate<ObjectActionParameter>>anything()));
@@ -192,7 +188,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
context.checking(new Expectations() {
{
- oneOf(actionParamPeer).getFacet(NamedFacet.class);
+ oneOf(actionParamPeer).getFacet(ParamNamedFacet.class);
will(returnValue(null));
oneOf(parentAction).getParameters(with(Expectations.<Predicate<ObjectActionParameter>>anything()));
@@ -211,7 +207,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
context.checking(new Expectations() {
{
- oneOf(actionParamPeer).getFacet(NamedFacet.class);
+ oneOf(actionParamPeer).getFacet(ParamNamedFacet.class);
will(returnValue(null));
oneOf(parentAction).getParameters(with(Expectations.<Predicate<ObjectActionParameter>>anything()));
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/bootstrap3/MenuBarsServiceBS3.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/bootstrap3/MenuBarsServiceBS3.java
index b2eb0f9..d20177d 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/bootstrap3/MenuBarsServiceBS3.java
@@ -53,9 +53,6 @@ import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.core.config.environment.IsisSystemEnvironment;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.members.layout.group.LayoutGroupFacet;
import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
@@ -283,9 +280,10 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
}
ObjectAction objectAction = serviceAndAction.getObjectAction();
+ val service = serviceAndAction.getServiceAdapter();
final String logicalTypeName = serviceAndAction.getServiceAdapter().getSpecification().getLogicalTypeName();
ServiceActionLayoutData action = new ServiceActionLayoutData(logicalTypeName, objectAction.getId());
- action.setNamed(objectAction.getName());
+ action.setNamed(objectAction.getName(service));
menuSection.getServiceActions().add(action);
}
if(!menuSection.getServiceActions().isEmpty()) {
@@ -308,10 +306,9 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
// first, order as defined in isis.properties
for (ManagedObject serviceAdapter : serviceAdapters) {
- final ObjectSpecification serviceSpec = serviceAdapter.getSpecification();
- // assuming services have immutable names (no imperative naming support)
- String serviceName = ((HasStaticText)serviceSpec.getFacet(NamedFacet.class))
- .translated(NounForm.SINGULAR);
+ val serviceSpec = serviceAdapter.getSpecification();
+ // assuming services always provide singular NounForm
+ String serviceName = serviceSpec.getSingularName();
serviceNameOrder.add(serviceName);
}
// then, any other services (eg due to misspellings, at the end)
@@ -381,9 +378,8 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
? layoutGroupFacet.getGroupId()
: null;
if(_Strings.isNullOrEmpty(serviceName)){
- // assuming services have immutable names (no imperative naming support)
- serviceName = ((HasStaticText)serviceSpec.getFacet(NamedFacet.class))
- .translated(NounForm.SINGULAR);
+ // assuming services always provide singular NounForm
+ serviceName = serviceSpec.getSingularName();
}
return new ServiceAndAction(serviceName, serviceAdapter, objectAction);
});
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java
index 9384c5b..816ffb7 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java
@@ -26,10 +26,11 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.apache.isis.commons.internal.base._Optionals;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet;
import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
@@ -58,8 +59,14 @@ class ObjectReflectorDefaultTest_object extends SpecificationLoaderTestAbstract
@Test
void testStandardFacets() throws Exception {
- assertNotNull(specification.getFacet(NamedFacet.class));
- assertNotNull(specification.getFacet(DescribedAsFacet.class));
+
+ assertNotNull(
+ _Optionals.<Facet>or(
+ specification.lookupFacet(ObjectNamedFacet.class),
+ ()->specification.lookupFacet(MemberNamedFacet.class))
+ .orElse(null));
+
+ //assertNotNull(specification.getFacet(ObjectDescribedFacet.class));
assertNotNull(specification.getFacet(TitleFacet.class));
assertNotNull(specification.getFacet(ObjectValidPropertiesFacet.class));
}
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java
index 6ee917c..fe0ad65 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -21,6 +21,7 @@ package org.apache.isis.persistence.jdo.metamodel.specloader;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -36,13 +37,16 @@ import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.commons.internal.base._Optionals;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -155,13 +159,23 @@ abstract class SpecificationLoaderTestAbstract {
@Test
public void testNamedFaced() throws Exception {
- final Facet facet = specification.getFacet(NamedFacet.class);
+ val facet =
+ _Optionals.<Facet>or(
+ specification.lookupFacet(ObjectNamedFacet.class),
+ ()->specification.lookupFacet(MemberNamedFacet.class))
+ .orElse(null);
+
assertNotNull(facet);
}
- @Test
+ @Test @Disabled("we allow descriptions to be absent - no need to install empty fallbacks")
public void testDescriptionFacet() throws Exception {
- final Facet facet = specification.getFacet(DescribedAsFacet.class);
+ val facet =
+ _Optionals.<Facet>or(
+ specification.lookupFacet(ObjectDescribedFacet.class),
+ ()->specification.lookupFacet(MemberDescribedFacet.class))
+ .orElse(null);
+
assertNotNull(facet);
}
diff --git a/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java b/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
index 219f3bc..7acc394 100644
--- a/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
+++ b/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
@@ -31,8 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.config.presets.IsisPresets;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.testdomain.conf.Configuration_headless;
@@ -80,13 +79,13 @@ class NewParameterModelTest extends InteractionTestAbstract {
val maxLengthFacet = param0Metamodel.getFacet(MaxLengthFacet.class);
// as with first param's @ParameterLayout(describedAs = "first")
- val describedAsFacet = param0Metamodel.getFacet(DescribedAsFacet.class);
+ val describedAsFacet = param0Metamodel.getFacet(ParamDescribedFacet.class);
assertNotNull(maxLengthFacet);
assertNotNull(describedAsFacet);
assertEquals(2, maxLengthFacet.value());
- assertEquals("first", ((HasStaticText)describedAsFacet).preferredText());
+ assertEquals("first", describedAsFacet.text());
}
@Test
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/ActionUiMetaModel.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/ActionUiMetaModel.java
index 0a689da..a05db72 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/ActionUiMetaModel.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/ActionUiMetaModel.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -150,10 +150,10 @@ public final class ActionUiMetaModel implements Serializable {
@NonNull final ManagedObject actionHolder,
@NonNull final ObjectAction objectAction) {
- return objectAction.lookupFacet(DescribedAsFacet.class)
- .map(DescribedAsFacet::getSpecialization)
+ return objectAction.lookupFacet(MemberDescribedFacet.class)
+ .map(MemberDescribedFacet::getSpecialization)
.map(specialization->specialization
- .fold(textFacet->textFacet.preferredTranslated(),
+ .fold(textFacet->textFacet.translated(),
textFacet->textFacet.textElseNull(actionHolder)));
}
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModelStandalone.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModelStandalone.java
index 961af4d..b70bcee 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModelStandalone.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModelStandalone.java
@@ -22,8 +22,7 @@ import java.util.List;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.NounForm;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.runtime.memento.ObjectMemento;
@@ -96,11 +95,12 @@ extends EntityCollectionModelAbstract {
@Override
public String getName() {
+
return getTypeOfSpecification()
- .lookupFacet(NamedFacet.class)
- .map(NamedFacet::getSpecialization)
+ .lookupFacet(MemberNamedFacet.class)
+ .map(MemberNamedFacet::getSpecialization)
.map(specialization->specialization
- .fold(namedFacet->namedFacet.translated(NounForm.PLURAL),
+ .fold(namedFacet->namedFacet.translated(),
namedFacet->namedFacet.textElseNull(actionModel.getOwner())))
.orElse(getIdentifier().getMemberLogicalName());
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
index 2aa0fb4..8290caf 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
@@ -22,7 +22,6 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.isis.commons.internal.base._Blackhole;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
@@ -38,7 +37,7 @@ extends PanelAbstract<ManagedObject, ActionModel> {
private static final long serialVersionUID = 1L;
private static final String ID_ACTION_NAME = "actionName";
- public ActionPromptHeaderPanel(String id, final ActionModel model) {
+ public ActionPromptHeaderPanel(final String id, final ActionModel model) {
super(id, model);
_Blackhole.consume(model.getOwner()); // side-effect: loads the model
@@ -55,12 +54,7 @@ extends PanelAbstract<ManagedObject, ActionModel> {
}
});
- final ObjectAction action = model.getMetaModel();
- NamedFacet namedFacet = action.getFacet(NamedFacet.class);
- if (namedFacet != null) {
- label.setEscapeModelStrings(namedFacet.escaped());
- }
-
+ label.setEscapeModelStrings(true);
add(label);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 4aabc68..1fb4b92 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -41,9 +41,8 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.commons.internal.functions._Predicates;
import org.apache.isis.core.metamodel.facets.WhereValueFacet;
-import org.apache.isis.core.metamodel.facets.all.described.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -293,15 +292,14 @@ implements CollectionCountProvider {
val collectionModel = getModel();
- final NamedFacet facet = property.getFacet(NamedFacet.class);
- final boolean escaped = facet == null || facet.escaped();
+ final boolean escaped = true;
final String parentTypeName = property.getOnType().getLogicalTypeName();
- final String describedAs = property.lookupFacet(DescribedAsFacet.class)
- .map(DescribedAsFacet::getSpecialization)
+ final String describedAs = property.lookupFacet(MemberDescribedFacet.class)
+ .map(MemberDescribedFacet::getSpecialization)
.map(specialization->specialization
- .fold(textFacet->textFacet.preferredTranslated(),
+ .fold(textFacet->textFacet.translated(),
textFacet->textFacet.textElseNull(collectionModel.getParentObject())))
.orElse(null);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
index 3f3168a..d5bba72 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
@@ -33,7 +33,6 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -134,8 +133,7 @@ implements HasDynamicallyVisibleContent {
Label labelComponent = collectionPanel.createLabel(ID_COLLECTION_NAME, collectionMetaModel.getName());
- final NamedFacet namedFacet = collectionMetaModel.getFacet(NamedFacet.class);
- labelComponent.setEscapeModelStrings(namedFacet == null || namedFacet.escaped());
+ labelComponent.setEscapeModelStrings(true);
div.add(labelComponent);
final String description = collectionMetaModel.getDescription();
@@ -174,7 +172,7 @@ implements HasDynamicallyVisibleContent {
return div;
}
- protected CollectionPanel newCollectionModel(String id, EntityCollectionModelParented entityCollectionModel) {
+ protected CollectionPanel newCollectionModel(final String id, final EntityCollectionModelParented entityCollectionModel) {
return new CollectionPanel(id, entityCollectionModel);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
index c27140f..1ac1c3c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
@@ -23,7 +23,6 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -77,7 +76,7 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
return super.getModel();
}
- public PropertyEditPanel setShowHeader(boolean showHeader) {
+ public PropertyEditPanel setShowHeader(final boolean showHeader) {
this.showHeader = showHeader;
return this;
}
@@ -93,11 +92,7 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
val propertyName = property.getName();
val label = new Label(ID_PROPERTY_NAME, Model.of(propertyName));
- val namedFacet = property.getFacet(NamedFacet.class);
- if (namedFacet != null) {
- label.setEscapeModelStrings(namedFacet.escaped());
- }
-
+ label.setEscapeModelStrings(true);
header.add(label);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
index 807f1c4..6016dd3 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.propertyheader;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ScalarPropertyModel;
@@ -36,7 +35,7 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
private static final long serialVersionUID = 1L;
private static final String ID_PROPERTY_NAME = "propertyName";
- public PropertyEditPromptHeaderPanel(String id, final ScalarPropertyModel model) {
+ public PropertyEditPromptHeaderPanel(final String id, final ScalarPropertyModel model) {
super(id, model);
val targetAdapter = model.getParentUiModel().getManagedObject();
@@ -54,10 +53,8 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
return model.getName();
}
});
- val namedFacet = model.getMetaModel().getFacet(NamedFacet.class);
- if(namedFacet != null) {
- label.setEscapeModelStrings(namedFacet.escaped());
- }
+
+ label.setEscapeModelStrings(true);
add(label);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 411bc45..de66983 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -48,7 +48,6 @@ import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.debug._Probe;
import org.apache.isis.commons.internal.debug._Probe.EntryPoint;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -439,7 +438,7 @@ implements ScalarModelSubscriber {
/**
* The widget starts off read-only, and CANNOT be activated into edit mode.
*/
- protected void onInitializeReadonly(String disableReason) {
+ protected void onInitializeReadonly(final String disableReason) {
}
/**
@@ -518,7 +517,7 @@ implements ScalarModelSubscriber {
}
@Override
- protected void onUpdate(AjaxRequestTarget target) {
+ protected void onUpdate(final AjaxRequestTarget target) {
_Probe.entryPoint(EntryPoint.USER_INTERACTION, "Wicket Ajax Request, "
+ "originating from User either having changed a Property value during inline editing "
@@ -530,7 +529,7 @@ implements ScalarModelSubscriber {
}
@Override
- protected void onError(AjaxRequestTarget target, RuntimeException e) {
+ protected void onError(final AjaxRequestTarget target, final RuntimeException e) {
super.onError(target, e);
for (ScalarModelSubscriber subscriber : scalarPanel.subscribers) {
subscriber.onError(target, scalarPanel);
@@ -614,7 +613,7 @@ implements ScalarModelSubscriber {
public abstract void buildGui(ScalarPanelAbstract panel);
- private static Rendering renderingFor(EntityModel.RenderingHint renderingHint) {
+ private static Rendering renderingFor(final EntityModel.RenderingHint renderingHint) {
return renderingHint.isRegular()? Rendering.REGULAR :Rendering.COMPACT;
}
}
@@ -658,10 +657,8 @@ implements ScalarModelSubscriber {
scalarName.add(new CssClassAppender("mandatory"));
}
}
- NamedFacet namedFacet = model.getFacet(NamedFacet.class);
- if (namedFacet != null) {
- scalarName.setEscapeModelStrings(namedFacet.escaped());
- }
+
+ scalarName.setEscapeModelStrings(true);
return scalarName;
}
@@ -824,7 +821,7 @@ implements ScalarModelSubscriber {
private static final long serialVersionUID = -3561635292986591682L;
@Override
- protected void onEvent(AjaxRequestTarget target) {
+ protected void onEvent(final AjaxRequestTarget target) {
final ObjectSpecification specification = scalarModel.getTypeOfSpecification();
final MetaModelService metaModelService = getServiceRegistry()
@@ -895,7 +892,7 @@ implements ScalarModelSubscriber {
CssClassAppender.appendCssClassTo(markupContainer, determineActionLayoutPositioningCss(actionLinks));
}
- private static String determinePropParamLayoutCss(ScalarModel model) {
+ private static String determinePropParamLayoutCss(final ScalarModel model) {
final LabelAtFacet facet = model.getFacet(LabelAtFacet.class);
if (facet != null) {
switch (facet.label()) {
@@ -916,7 +913,7 @@ implements ScalarModelSubscriber {
return "label-left";
}
- private static String determineActionLayoutPositioningCss(Can<LinkAndLabel> entityActionLinks) {
+ private static String determineActionLayoutPositioningCss(final Can<LinkAndLabel> entityActionLinks) {
boolean actionsPositionedOnRight = hasActionsPositionedOn(entityActionLinks, ActionLayout.Position.RIGHT);
return actionsPositionedOnRight ? "actions-right" : null;
}
@@ -937,7 +934,7 @@ implements ScalarModelSubscriber {
*
* @param target The Ajax request handler
*/
- public void repaint(AjaxRequestTarget target) {
+ public void repaint(final AjaxRequestTarget target) {
target.add(this);
}