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 2022/01/09 11:52:40 UTC
[isis] branch master updated: ISIS-2856: metamodel: handle deprecations (first pass)
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 753c1d5 ISIS-2856: metamodel: handle deprecations (first pass)
753c1d5 is described below
commit 753c1d506931dc4a6eea641aabe138c54c7cfa1d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 9 12:52:32 2022 +0100
ISIS-2856: metamodel: handle deprecations (first pass)
- removals and update of comments and java-doc
- deprecate ParameterLayout#renderDay
- deprecate PropertyLayout#renderDay
---
.../modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc | 6 +++
.../isis/applib/annotations/ParameterLayout.java | 7 ++-
.../isis/applib/annotations/PropertyLayout.java | 2 +
.../apache/isis/applib/annotations/RenderDay.java | 2 +
.../isis/applib/annotations/ValueSemantics.java | 55 +++++++++++++++++-----
.../layout/component/PropertyLayoutData.java | 11 ++---
...ropertyLayoutData_renderedAsDayBefore_Test.java | 13 ++---
...ainObjectLayoutAnnotationUsingTitleUiEvent.java | 1 -
.../icon/method/IconFacetViaIconNameMethod.java | 2 +-
.../metamodel/facets/object/title/TitleFacet.java | 8 ----
.../DateRenderAdjustFacet.java} | 20 +++++---
.../DateRenderAdjustFacetAbstract.java} | 28 +++++------
...dAdjustedFacetForParameterLayoutAnnotation.java | 9 ++--
...edAdjustedFacetForPropertyLayoutAnnotation.java | 5 +-
.../RenderedAdjustedFacetForPropertyXml.java | 22 ++++-----
...nderedAsDayBeforeFacetAnnotationOnProperty.java | 37 ---------------
...derAdjustFacetFromValueSemanticsAnnotation.java | 45 ++++++++++++++++++
.../ValueSemanticsAnnotationFacetFactory.java | 3 ++
.../core/metamodel/layout/LayoutFacetUtil.java | 11 ++---
.../isis/core/metamodel/spec/DefaultProvider.java | 30 ------------
.../isis/core/metamodel/spec/ManagedObjects.java | 13 +++--
.../core/metamodel/spec/ObjectSpecification.java | 1 -
.../spec/feature/ObjectActionParameter.java | 15 ------
.../specimpl/ObjectActionParameterAbstract.java | 24 ----------
.../specimpl/ObjectSpecificationAbstract.java | 12 -----
.../TitleAnnotationFacetFactoryTest.java | 4 +-
.../ident/title/TitleFacetViaMethodTest.java | 42 ++++++-----------
.../TitleFacetViaTitleAnnotationTest.java | 6 +--
.../object/ident/title/_TitleFacetUtil.java} | 20 ++++----
...ionParameterAbstractTest_getId_and_getName.java | 14 ++----
.../testspec/ObjectSpecificationStub.java | 5 --
.../DomainModelTest_usingGoodDomain.java | 2 +-
.../interaction/DomainObjectTesterFactory.java | 5 +-
.../domainobjects/DomainObjectLinkTo.java | 12 +++--
.../entity/icontitle/EntityIconAndTitlePanel.java | 28 ++---------
.../ScalarPanelTextFieldWithTemporalPicker.java | 9 ++--
.../org/apache/isis/viewer/wicket/ui/util/Wkt.java | 2 +-
37 files changed, 220 insertions(+), 311 deletions(-)
diff --git a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc
index 596a751..1b04c12 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc
@@ -24,6 +24,12 @@ from v1 to v2 using Spring's `@AliasFor` annotation.
but it has come up as a requirement to ease migration for existing projects
from v1 to v2 using Spring's `@AliasFor` annotation
+| `@ParameterLayout(renderDay=...)` deprecated for removal
+| use `@ValueSemantics(dateRenderAdjustDays=...)` instead
+
+| `@PropertyLayout(renderDay=...)` deprecated for removal
+| use `@ValueSemantics(dateRenderAdjustDays=...)` instead
+
| We provided introspection control via global config option
`isis.core.meta-model.annotation.action.explicit=true/false`.
| Use `@DomainObject(introspection=...)` instead ...
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotations/ParameterLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotations/ParameterLayout.java
index a1d2ef2..0922254 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotations/ParameterLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotations/ParameterLayout.java
@@ -139,10 +139,13 @@ public @interface ParameterLayout {
* In the domain object, itself, however, the value stored is 1-jun-2013.
* </p>
*
+ * @deprecated instead use {@link ValueSemantics#dateRenderAdjustDays()}
* @see PropertyLayout#renderDay()
*/
- RenderDay renderDay()
- default RenderDay.NOT_SPECIFIED;
+ @Deprecated(forRemoval = true, since = "2.0.0-M7")
+ RenderDay renderDay()
+ default RenderDay.NOT_SPECIFIED;
+
/**
* The typical entry length of a field, use to determine the optimum width for display
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotations/PropertyLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotations/PropertyLayout.java
index 73165bb..2d27953 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotations/PropertyLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotations/PropertyLayout.java
@@ -228,8 +228,10 @@ public @interface PropertyLayout {
* In the domain object, itself, however, the value stored is 1-jun-2013.
* </p>
*
+ * @deprecated instead use {@link ValueSemantics#dateRenderAdjustDays()}
* @see ParameterLayout#renderDay()
*/
+ @Deprecated(forRemoval = true, since = "2.0.0-M7")
RenderDay renderDay()
default RenderDay.NOT_SPECIFIED;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotations/RenderDay.java b/api/applib/src/main/java/org/apache/isis/applib/annotations/RenderDay.java
index 1182798..516f062 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotations/RenderDay.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotations/RenderDay.java
@@ -23,10 +23,12 @@ import javax.xml.bind.annotation.XmlType;
/**
* How to render days.
* @since 1.x {@index}
+ * @deprecated
*/
@XmlType(
namespace = "http://isis.apache.org/applib/layout/component"
)
+@Deprecated(forRemoval = true, since = "2.0.0-M7")
public enum RenderDay {
AS_DAY,
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java b/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java
index dc1cbaa..f9a710a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java
@@ -27,11 +27,11 @@ import org.apache.isis.applib.value.semantics.ValueSemanticsProvider;
*/
@Inherited
@Target({
- ElementType.METHOD,
- ElementType.FIELD,
- ElementType.TYPE,
- ElementType.PARAMETER,
- ElementType.ANNOTATION_TYPE,
+ ElementType.METHOD,
+ ElementType.FIELD,
+ ElementType.TYPE,
+ ElementType.PARAMETER,
+ ElementType.ANNOTATION_TYPE,
})
@Retention(RetentionPolicy.RUNTIME)
@Domain.Include // meta annotation, in support of meta-model validation
@@ -44,7 +44,7 @@ public @interface ValueSemantics {
* targeted {@link ValueSemanticsProvider} bean
*/
String provider()
- default "";
+ default "";
// -- NUMBER CONSTRAINTS
@@ -57,7 +57,7 @@ public @interface ValueSemantics {
* @see Column#precision()
*/
int maxTotalDigits()
- default 65;
+ default 65;
/**
* If associated with a {@link Number}, the minimum number of integer digits required for
@@ -65,7 +65,7 @@ public @interface ValueSemantics {
* default = {@code 1}
*/
int minIntegerDigits()
- default 1;
+ default 1;
/**
* If associated with a {@link BigDecimal}, the maximum number of fractional digits accepted
@@ -76,7 +76,7 @@ public @interface ValueSemantics {
* @see Column#scale()
*/
int maxFractionalDigits()
- default 30;
+ default 30;
/**
* If associated with a {@link BigDecimal}, the minimum number of fractional digits
@@ -84,7 +84,7 @@ public @interface ValueSemantics {
* default = {@code 0}
*/
int minFractionalDigits()
- default 0;
+ default 0;
// -- TEMPORAL FORMATTING
@@ -93,14 +93,14 @@ public @interface ValueSemantics {
* @see FormatStyle
*/
FormatStyle dateFormatStyle()
- default FormatStyle.MEDIUM;
+ default FormatStyle.MEDIUM;
/**
* If associated with a temporal time value, the rendering style of a localized time.
* @see FormatStyle
*/
FormatStyle timeFormatStyle()
- default FormatStyle.MEDIUM;
+ default FormatStyle.MEDIUM;
/**
* If associated with a temporal time value, the time of day precision,
@@ -109,6 +109,35 @@ public @interface ValueSemantics {
* @see TimePrecision
*/
TimePrecision timePrecision()
- default TimePrecision.SECOND;
+ default TimePrecision.SECOND;
+ /**
+ * If associated with a date or date-time value,
+ * instructs whether the date should be rendered as <i>n</i> days
+ * after the actually stored date.
+ * For negative <i>n</i> its days before respectively.
+ *
+ * <p>
+ * This is intended to be used so that an exclusive end date of an interval
+ * can be rendered as 1 day before the actual value stored.
+ * </p>
+ *
+ * <p>
+ * For example:
+ * </p>
+ * <pre>
+ * public LocalDate getStartDate() { ... }
+ *
+ * @ValueSemantics(dateRenderAdjustDays = -1)
+ * public LocalDate getEndDate() { ... }
+ * </pre>
+ *
+ * <p>
+ * Here, the interval of the [1-may-2013,1-jun-2013) would be rendered as the dates
+ * 1-may-2013 for the start date but using 31-may-2013 (the day before) for the end date. What is stored
+ * In the domain object, itself, however, the value stored is 1-jun-2013.
+ * </p>
+ */
+ int dateRenderAdjustDays()
+ default 0;
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java b/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
index 9dc65db..e80350b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
@@ -30,7 +30,6 @@ import javax.xml.bind.annotation.XmlType;
import org.apache.isis.applib.annotations.LabelPosition;
import org.apache.isis.applib.annotations.PromptStyle;
-import org.apache.isis.applib.annotations.RenderDay;
import org.apache.isis.applib.annotations.Repainting;
import org.apache.isis.applib.annotations.Where;
import org.apache.isis.applib.layout.links.Link;
@@ -175,15 +174,15 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
this.promptStyle = promptStyle;
}
- private RenderDay renderDay;
+ private int dateRenderAdjustDays;
@XmlAttribute(required = false)
- public RenderDay getRenderDay() {
- return renderDay;
+ public int getDateRenderAdjustDays() {
+ return dateRenderAdjustDays;
}
- public void setRenderDay(final RenderDay renderDay) {
- this.renderDay = renderDay;
+ public void setDateRenderAdjustDays(final int dateRenderAdjustDays) {
+ this.dateRenderAdjustDays = dateRenderAdjustDays;
}
diff --git a/api/applib/src/test/java/org/apache/isis/applib/layout/component/PropertyLayoutData_renderedAsDayBefore_Test.java b/api/applib/src/test/java/org/apache/isis/applib/layout/component/PropertyLayoutData_renderedAsDayBefore_Test.java
index e0cc914..ae3a1e4 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/layout/component/PropertyLayoutData_renderedAsDayBefore_Test.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/layout/component/PropertyLayoutData_renderedAsDayBefore_Test.java
@@ -20,11 +20,8 @@ import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
-import org.apache.isis.applib.annotations.RenderDay;
-
public class PropertyLayoutData_renderedAsDayBefore_Test {
PropertyLayoutData data;
@@ -32,27 +29,27 @@ public class PropertyLayoutData_renderedAsDayBefore_Test {
public void setUp() throws Exception {
data = new PropertyLayoutData();
- assertThat(data.getRenderDay(), is(nullValue()));
+ assertThat(data.getDateRenderAdjustDays(), is(0));
}
@Test
public void ignore_from_setRenderedAsDayBefore_once_set_to_DAY_BEFORE() throws Exception {
// given
- data.setRenderDay(RenderDay.AS_DAY_BEFORE);
+ data.setDateRenderAdjustDays(-1);
// then (ignored)
- assertThat(data.getRenderDay(), is(RenderDay.AS_DAY_BEFORE));
+ assertThat(data.getDateRenderAdjustDays(), is(-1));
}
@Test
public void ignore_from_setRenderedAsDayBefore_once_set_to_DAY() throws Exception {
// given
- data.setRenderDay(RenderDay.AS_DAY);
+ data.setDateRenderAdjustDays(0);
// then (ignored)
- assertThat(data.getRenderDay(), is(RenderDay.AS_DAY));
+ assertThat(data.getDateRenderAdjustDays(), is(0));
}
}
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
index c2f7d61..c0a56f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
@@ -115,7 +115,6 @@ extends TitleFacetAbstract {
}
}
-
final TranslatableString translatedTitle = titleUiEvent.getTranslatableTitle();
if(translatedTitle != null) {
return translatedTitle.translate(translationService, translationContext);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetViaIconNameMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetViaIconNameMethod.java
index c4bd3a6..f8c3906 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetViaIconNameMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetViaIconNameMethod.java
@@ -60,7 +60,7 @@ implements HasImperativeAspect {
@Override
public String iconName(final ManagedObject domainObject) {
- return imperativeAspect.eval(domainObject, (String)null);
+ return imperativeAspect.eval(domainObject, (String)null);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacet.java
index 5f84cf4..15c6014 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacet.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.metamodel.facets.object.title;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
/**
* Mechanism for obtaining the title of an instance of a class, used to label
@@ -39,11 +38,4 @@ public interface TitleFacet extends Facet {
*/
String title(TitleRenderRequest titleRenderRequest);
- @Deprecated
- default String title(final ManagedObject targetAdapter) {
- return title(TitleRenderRequest.builder()
- .object(targetAdapter)
- .build());
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/renderedadjusted/RenderedAdjustedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/daterenderedadjust/DateRenderAdjustFacet.java
similarity index 64%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/renderedadjusted/RenderedAdjustedFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/daterenderedadjust/DateRenderAdjustFacet.java
index cf2a6fb..59f3073 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/renderedadjusted/RenderedAdjustedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/daterenderedadjust/DateRenderAdjustFacet.java
@@ -16,23 +16,29 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted;
+package org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust;
-import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
+import org.apache.isis.applib.annotations.ValueSemantics;
+import org.apache.isis.core.metamodel.facetapi.Facet;
/**
- * The amount to adjust a date by when rendered.
+ * The amount of days to adjust a date by when rendered.
*
* <p>
* Intended to be used by the viewer as a rendering hint.
*
* <p>
* In the standard Apache Isis Programming Model, corresponds to the
- * <tt>@RenderedAdjusted</tt> annotation.
+ * {@link ValueSemantics#dateRenderAdjustDays()} annotation.
+ *
+ * @since 2.0 - replacing RenderedAdjustedFacet from 1.x and 2.0.0-M6
+ *
*/
-public interface RenderedAdjustedFacet extends SingleIntValueFacet {
+public interface DateRenderAdjustFacet extends Facet {
- @Override
- public int value();
+ /**
+ * The amount of days to adjust a date by when rendered.
+ */
+ int getDateRenderAdjustDays();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/renderedadjusted/RenderedAdjustedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/daterenderedadjust/DateRenderAdjustFacetAbstract.java
similarity index 64%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/renderedadjusted/RenderedAdjustedFacetAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/daterenderedadjust/DateRenderAdjustFacetAbstract.java
index 6ae24e0..a731983 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/renderedadjusted/RenderedAdjustedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/daterenderedadjust/DateRenderAdjustFacetAbstract.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted;
+package org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust;
import java.util.function.BiConsumer;
@@ -26,38 +26,36 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import lombok.NonNull;
-public abstract class RenderedAdjustedFacetAbstract
+public abstract class DateRenderAdjustFacetAbstract
extends FacetAbstract
-implements RenderedAdjustedFacet {
+implements DateRenderAdjustFacet {
- public static final Class<RenderedAdjustedFacet> type() {
- return RenderedAdjustedFacet.class;
+ public static final Class<DateRenderAdjustFacet> type() {
+ return DateRenderAdjustFacet.class;
}
- private final int adjustBy;
+ private final int dateRenderAdjustDays;
- public RenderedAdjustedFacetAbstract(final int adjustBy, final FacetHolder holder) {
+ protected DateRenderAdjustFacetAbstract(final int adjustByDays, final FacetHolder holder) {
super(type(), holder);
- this.adjustBy = adjustBy;
+ this.dateRenderAdjustDays = adjustByDays;
}
@Override
- public int value() {
- return adjustBy;
+ public int getDateRenderAdjustDays() {
+ return dateRenderAdjustDays;
}
@Override
public void visitAttributes(final BiConsumer<String, Object> visitor) {
super.visitAttributes(visitor);
- visitor.accept("adjustBy", adjustBy == -1
- ? "default"
- : String.valueOf(adjustBy));
+ visitor.accept("dateRenderAdjustDays", String.valueOf(dateRenderAdjustDays));
}
@Override
public boolean semanticEquals(final @NonNull Facet other) {
- return other instanceof RenderedAdjustedFacet
- ? this.value() == ((RenderedAdjustedFacet)other).value()
+ return other instanceof DateRenderAdjustFacet
+ ? this.getDateRenderAdjustDays() == ((DateRenderAdjustFacet)other).getDateRenderAdjustDays()
: false;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/RenderedAdjustedFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/RenderedAdjustedFacetForParameterLayoutAnnotation.java
index 8e4232c..ec7185a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/RenderedAdjustedFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/RenderedAdjustedFacetForParameterLayoutAnnotation.java
@@ -23,13 +23,14 @@ import java.util.Optional;
import org.apache.isis.applib.annotations.ParameterLayout;
import org.apache.isis.applib.annotations.RenderDay;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacetAbstract;
+@Deprecated(forRemoval = true, since = "2.0.0-M7")
public class RenderedAdjustedFacetForParameterLayoutAnnotation
-extends RenderedAdjustedFacetAbstract {
+extends DateRenderAdjustFacetAbstract {
- public static Optional<RenderedAdjustedFacet> create(
+ public static Optional<DateRenderAdjustFacet> create(
final Optional<ParameterLayout> parameterLayoutIfAny,
final FacetHolder holder) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyLayoutAnnotation.java
index b1fa4f3..184eeec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyLayoutAnnotation.java
@@ -23,10 +23,11 @@ import java.util.Optional;
import org.apache.isis.applib.annotations.PropertyLayout;
import org.apache.isis.applib.annotations.RenderDay;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacetAbstract;
+@Deprecated(forRemoval = true, since = "2.0.0-M7")
public class RenderedAdjustedFacetForPropertyLayoutAnnotation
-extends RenderedAdjustedFacetAbstract {
+extends DateRenderAdjustFacetAbstract {
public static Optional<RenderedAdjustedFacetForPropertyLayoutAnnotation> create(
final Optional<PropertyLayout> propertyLayoutIfAny,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyXml.java
index 13bd45b..8749cb0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/RenderedAdjustedFacetForPropertyXml.java
@@ -20,32 +20,28 @@ package org.apache.isis.core.metamodel.facets.properties.propertylayout;
import java.util.Optional;
-import org.apache.isis.applib.annotations.RenderDay;
import org.apache.isis.applib.layout.component.PropertyLayoutData;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacetAbstract;
public class RenderedAdjustedFacetForPropertyXml
-extends RenderedAdjustedFacetAbstract {
+extends DateRenderAdjustFacetAbstract {
- public static Optional<RenderedAdjustedFacet> create(
+ public static Optional<DateRenderAdjustFacet> create(
final PropertyLayoutData propertyLayout,
final FacetHolder holder) {
if(propertyLayout == null) {
return Optional.empty();
}
- final RenderDay renderDay = propertyLayout.getRenderDay();
- return renderDay != null
- && renderDay == RenderDay.AS_DAY_BEFORE
- ? Optional.of(new RenderedAdjustedFacetForPropertyXml(holder))
+ final int adjustByDays = propertyLayout.getDateRenderAdjustDays();
+ return adjustByDays != 0
+ ? Optional.of(new RenderedAdjustedFacetForPropertyXml(adjustByDays, holder))
: Optional.empty();
}
- public static final int ADJUST_BY = -1;
-
- private RenderedAdjustedFacetForPropertyXml(final FacetHolder holder) {
- super(ADJUST_BY, holder);
+ private RenderedAdjustedFacetForPropertyXml(final int adjustByDays, final FacetHolder holder) {
+ super(adjustByDays, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetAnnotationOnProperty.java
deleted file mode 100644
index 3f6f926..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetAnnotationOnProperty.java
+++ /dev/null
@@ -1,37 +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.properties.renderedasdaybefore.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacetAbstract;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class RenderedAsDayBeforeFacetAnnotationOnProperty extends RenderedAdjustedFacetAbstract {
-
- private static final int ADJUST_BY = -1;
-
- public RenderedAsDayBeforeFacetAnnotationOnProperty(final FacetHolder holder) {
- super(ADJUST_BY, holder);
- }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/DateRenderAdjustFacetFromValueSemanticsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/DateRenderAdjustFacetFromValueSemanticsAnnotation.java
new file mode 100644
index 0000000..6e96afa
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/DateRenderAdjustFacetFromValueSemanticsAnnotation.java
@@ -0,0 +1,45 @@
+/*
+ * 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.value.semantics;
+
+import java.util.Optional;
+
+import org.apache.isis.applib.annotations.ValueSemantics;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacetAbstract;
+
+public class DateRenderAdjustFacetFromValueSemanticsAnnotation
+extends DateRenderAdjustFacetAbstract {
+
+ public static Optional<DateRenderAdjustFacet> create(
+ final Optional<ValueSemantics> valueSemanticsIfAny,
+ final FacetHolder holder) {
+
+ return valueSemanticsIfAny
+ .map(ValueSemantics::dateRenderAdjustDays)
+ .filter(adjustBy -> adjustBy != 0)
+ .map(adjustBy -> new DateRenderAdjustFacetFromValueSemanticsAnnotation(adjustBy, holder));
+ }
+
+ private DateRenderAdjustFacetFromValueSemanticsAnnotation(final int adjustBy, final FacetHolder holder) {
+ super(adjustBy, holder);
+ }
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactory.java
index a2560bc..fabf4c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactory.java
@@ -140,6 +140,9 @@ extends FacetFactoryAbstract {
TimeFormatPrecisionFacetFromValueSemanticsAnnotation
.create(valueSemanticsIfAny, facetHolder));
+ addFacetIfPresent(
+ DateRenderAdjustFacetFromValueSemanticsAnnotation
+ .create(valueSemanticsIfAny, facetHolder));
}
}
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 039a4d7..da284ba 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
@@ -23,7 +23,6 @@ import java.util.Comparator;
import org.apache.isis.applib.annotations.ActionLayout;
import org.apache.isis.applib.annotations.BookmarkPolicy;
import org.apache.isis.applib.annotations.LabelPosition;
-import org.apache.isis.applib.annotations.RenderDay;
import org.apache.isis.applib.annotations.Where;
import org.apache.isis.applib.layout.component.ActionLayoutData;
import org.apache.isis.applib.layout.component.CollectionLayoutData;
@@ -53,9 +52,9 @@ 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.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -270,11 +269,9 @@ public class LayoutFacetUtil {
final PropertyLayoutData propertyLayoutData,
final FacetHolder facetHolder) {
- val renderedAdjustedFacet = facetHolder.getFacet(RenderedAdjustedFacet.class);
- if(isDoOp(renderedAdjustedFacet)) {
- final int adjusted = renderedAdjustedFacet.value();
- propertyLayoutData.setRenderDay(adjusted != 0 ? RenderDay.AS_DAY_BEFORE : RenderDay.AS_DAY);
- }
+ facetHolder.lookupNonFallbackFacet(DateRenderAdjustFacet.class)
+ .ifPresent(dateRenderAdjustFacet->
+ propertyLayoutData.setDateRenderAdjustDays(dateRenderAdjustFacet.getDateRenderAdjustDays()));
}
public void setSortedByIfAny(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/DefaultProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/DefaultProvider.java
deleted file mode 100644
index 1244a98..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/DefaultProvider.java
+++ /dev/null
@@ -1,30 +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.spec;
-
-public interface DefaultProvider {
-
- /**
- * Default value to be provided for properties or parameters that are not
- * declared as <tt>@Optional</tt> but where the UI has not (yet) provided a
- * value.
- */
- Object getDefaultValue();
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index c9e2b75..5e8c547 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -495,13 +495,12 @@ public final class ManagedObjects {
return "unspecified object";
}
- if (managedObject.getSpecification().isNonScalar()) {
- val collectionFacet = managedObject.getSpecification().getFacet(CollectionFacet.class);
- return collectionTitleString(managedObject, collectionFacet);
- } else {
- return objectTitleString(titleRenderRequest)
- .trim();
- }
+ return managedObject.getSpecification().isNonScalar()
+ ? collectionTitleString(
+ managedObject,
+ managedObject.getSpecification().getFacet(CollectionFacet.class))
+ : objectTitleString(titleRenderRequest)
+ .trim();
}
// -- HELPER
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 9ba3c8c..5bbac30 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
@@ -95,7 +95,6 @@ extends
ObjectActionContainer,
ObjectAssociationContainer,
Hierarchical,
- DefaultProvider,
HasLogicalType {
final class Comparators{
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 948d93b..8566935 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
@@ -174,21 +174,6 @@ extends ObjectFeature, CurrentHolder {
Can<ManagedObject> pendingArgs,
InteractionInitiatedBy interactionInitiatedBy);
- /**
- * Whether proposed value for this parameter is valid.
- *
- * @param adapter
- * @param proposedValue
- * @param interactionInitiatedBy
- * @deprecated use variant with all pendingArgs instead
- */
- @Deprecated
- String isValid(
- InteractionHead head,
- ManagedObject proposedValue,
- InteractionInitiatedBy interactionInitiatedBy);
-
-
@Vetoed
public static class Predicates {
private Predicates(){}
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 e829fc8..e53971e 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
@@ -30,7 +30,6 @@ import org.apache.isis.core.metamodel.commons.ClassExtensions;
import org.apache.isis.core.metamodel.consent.Allow;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.consent.InteractionResultSet;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -379,29 +378,6 @@ implements
return validResult.createConsent();
}
- @Override @Deprecated
- public String isValid(
- final InteractionHead head,
- final ManagedObject proposedValue,
- final InteractionInitiatedBy interactionInitiatedBy) {
-
- if(ManagedObjects.isNullOrUnspecifiedOrEmpty(proposedValue)) {
- return null;
- }
-
- val argumentAdapters = arguments(proposedValue);
- val validityContext = createProposedArgumentInteractionContext(
- head, argumentAdapters, getParameterIndex(), interactionInitiatedBy);
-
- final InteractionResultSet buf = new InteractionResultSet();
- InteractionUtils.isValidResultSet(this, validityContext, buf);
- if (buf.isVetoed()) {
- return buf.getInteractionResult().getReason();
- }
- return null;
-
- }
-
/**
* TODO: this is not ideal, because we can only populate the array for
* single argument, rather than the entire argument set. Instead, we ought
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 a0d73f4..81c7564 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
@@ -575,18 +575,6 @@ implements ObjectSpecification {
}
}
-
- // -- DefaultValue - unused
- /**
- * @deprecated - never called.
- * @return - always returns <tt>null</tt>
- */
- @Deprecated
- @Override
- public Object getDefaultValue() {
- return null;
- }
-
@Override
public ObjectTitleContext createTitleInteractionContext(
final ManagedObject targetObjectAdapter,
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
similarity index 99%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
index 7b19d95..188edc3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.object.ident.title.annotation;
+package org.apache.isis.core.metamodel.facets.object.ident.title;
import java.lang.reflect.Method;
import java.util.Arrays;
@@ -166,7 +166,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
ignoring(mockStringSpec).assertPojoCompatible(with(any(String.class)));
}});
- final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter);
+ final String title = _TitleFacetUtil.title(titleFacetViaTitleAnnotation, mockObjectAdapter);
assertThat(title, is("titleElement1. titleElement3,titleElement2"));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
index ccd30b6..17896d4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
@@ -21,35 +21,27 @@ package org.apache.isis.core.metamodel.facets.object.ident.title;
import java.lang.reflect.Method;
import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.After;
+import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaTitleMethod;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-@RunWith(JMock.class)
-public class TitleFacetViaMethodTest {
-
- private final Mockery mockery = new JUnit4Mockery();
+public class TitleFacetViaMethodTest
+extends AbstractFacetFactoryJUnit4TestCase {
private TitleFacetViaTitleMethod facet;
- private FacetHolder mockFacetHolder;
- private ManagedObject mockOwningAdapter;
+ @Mock private ManagedObject mockOwningAdapter;
private DomainObjectWithProblemInItsTitleMethod pojo;
-
private MetaModelContext metaModelContext;
public static class DomainObjectWithProblemInItsTitleMethod {
@@ -65,34 +57,28 @@ public class TitleFacetViaMethodTest {
.build();
pojo = new DomainObjectWithProblemInItsTitleMethod();
- mockFacetHolder = mockery.mock(FacetHolder.class);
- mockOwningAdapter = mockery.mock(ManagedObject.class);
+ //mockFacetHolder = mockery.mock(FacetHolder.class);
+ //mockOwningAdapter = mockery.mock(ManagedObject.class);
final Method iconNameMethod = DomainObjectWithProblemInItsTitleMethod.class.getMethod("title");
facet = (TitleFacetViaTitleMethod) TitleFacetViaTitleMethod
.create(iconNameMethod, mockFacetHolder)
.orElse(null);
- mockery.checking(new Expectations() {
- {
+ context.checking(new Expectations() {{
- allowing(mockFacetHolder).getMetaModelContext();
- will(returnValue(metaModelContext));
+ allowing(mockFacetHolder).getMetaModelContext();
+ will(returnValue(metaModelContext));
- allowing(mockOwningAdapter).getPojo();
- will(returnValue(pojo));
- }
- });
- }
+ allowing(mockOwningAdapter).getPojo();
+ will(returnValue(pojo));
- @After
- public void tearDown() throws Exception {
- facet = null;
+ }});
}
@Test
public void testTitleThrowsException() {
- final String title = facet.title(mockOwningAdapter);
+ final String title = _TitleFacetUtil.title(facet, mockOwningAdapter);
assertThat(title, is("Failed Title"));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java
similarity index 96%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java
index 487d93d..c1384fd 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.object.ident.title.annotation;
+package org.apache.isis.core.metamodel.facets.object.ident.title;
import org.jmock.Expectations;
import org.jmock.Sequence;
@@ -115,7 +115,7 @@ public class TitleFacetViaTitleAnnotationTest {
}
});
- final String title = facet.title(mockManagedObject);
+ final String title = _TitleFacetUtil.title(facet, mockManagedObject);
assertThat(title, is("Normal Domain Object"));
}
@@ -140,7 +140,7 @@ public class TitleFacetViaTitleAnnotationTest {
}
});
- final String title = facet.title(mockManagedObject);
+ final String title = _TitleFacetUtil.title(facet, mockManagedObject);
assertThat(title, is("Failed Title"));
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetForPagedAnnotationOnType.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/_TitleFacetUtil.java
similarity index 61%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetForPagedAnnotationOnType.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/_TitleFacetUtil.java
index 2b46f40..efd4a30 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetForPagedAnnotationOnType.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/_TitleFacetUtil.java
@@ -16,18 +16,18 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.object.paged.annotation;
+package org.apache.isis.core.metamodel.facets.object.ident.title;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.paged.PagedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleRenderRequest;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
-/**
- * @deprecated
- */
-@Deprecated
-public class PagedFacetForPagedAnnotationOnType extends PagedFacetAbstract {
+final class _TitleFacetUtil {
- public PagedFacetForPagedAnnotationOnType(FacetHolder holder, int value) {
- super(value, holder);
+ static String title(final TitleFacet titleFacet, final ManagedObject targetAdapter) {
+ return titleFacet.title(TitleRenderRequest.builder()
+ .object(targetAdapter)
+ .build());
}
+
}
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 9053818..bc9d095 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
@@ -27,6 +27,9 @@ import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
@@ -42,9 +45,6 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
public class ObjectActionParameterAbstractTest_getId_and_getName {
@@ -82,14 +82,6 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
}
@Override
- public String isValid(
- final InteractionHead head,
- final ManagedObject proposedValue,
- final InteractionInitiatedBy interactionInitiatedBy) {
- return null;
- }
-
- @Override
public Consent isValid(final InteractionHead head, final Can<ManagedObject> pendingArgs,
final InteractionInitiatedBy interactionInitiatedBy) {
return null;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index c36d6ad..e4bf97c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -260,11 +260,6 @@ implements ObjectSpecification {
}
@Override
- public Object getDefaultValue() {
- return null;
- }
-
- @Override
public Identifier getFeatureIdentifier() {
return Identifier.classIdentifier(LogicalType.fqcn(correspondingClass));
}
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
index 4a830ff..e2f403f 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
@@ -238,7 +238,7 @@ class DomainModelTest_usingGoodDomain {
assertEquals("inherited icon", titleService.iconNameOf(instance));
val domainObject = ManagedObject.of(spec, instance);
- assertEquals("inherited title", titleFacet.title(domainObject));
+ assertEquals("inherited title", domainObject.titleString());
assertEquals("inherited icon", iconFacet.iconName(domainObject));
}
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java
index 35673af..615b7bf 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/DomainObjectTesterFactory.java
@@ -55,7 +55,6 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.facets.object.layout.LayoutFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.interactions.managed.ActionInteraction;
import org.apache.isis.core.metamodel.interactions.managed.CollectionInteraction;
@@ -172,9 +171,7 @@ public class DomainObjectTesterFactory {
assertEquals(expectedResult,
super.objectSpecification.getTitleService().titleOf(vm.getPojo()));
assertEquals(expectedResult,
- super.objectSpecification.lookupFacet(TitleFacet.class)
- .map(titleFacet->titleFacet.title(vm))
- .orElse(null));
+ vm.titleString());
}
public void assertIcon(final @Nullable String expectedResult) {
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java
index 17e6378..6dff64d 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java
@@ -50,7 +50,12 @@ public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
@Override
public LinkBuilder builder(final Rel rel) {
- final LinkBuilder linkBuilder = LinkBuilder.newBuilder(resourceContext, relElseDefault(rel).getName(), RepresentationType.DOMAIN_OBJECT, linkRef(new StringBuilder()).toString());
+ final LinkBuilder linkBuilder = LinkBuilder
+ .newBuilder(
+ resourceContext,
+ relElseDefault(rel).getName(),
+ RepresentationType.DOMAIN_OBJECT,
+ linkRef(new StringBuilder()).toString());
linkBuilder.withTitle(objectAdapter.titleString());
return linkBuilder;
}
@@ -58,7 +63,7 @@ public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
/**
* hook method
*/
- protected StringBuilder linkRef(StringBuilder buf) {
+ protected StringBuilder linkRef(final StringBuilder buf) {
String objectRef = ManagedObjects.stringifyElseFail(objectAdapter, "/");
return buf.append("objects/").append(objectRef);
}
@@ -93,7 +98,4 @@ public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
return LinkBuilder.newBuilder(resourceContext, rel.andParam(memberType.getName(), objectMember.getId()), representationType, url);
}
-
-
-
}
\ No newline at end of file
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 66468b1..5d639dd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -23,11 +23,9 @@ import java.util.Optional;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.ResourceReference;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFactory;
@@ -60,11 +58,6 @@ extends PanelAbstract<ManagedObject, ObjectAdapterModel> {
private static final String ID_ENTITY_TITLE = "entityTitle";
private static final String ID_ENTITY_ICON = "entityImage";
- @SuppressWarnings("unused")
- private Label label;
- @SuppressWarnings("unused")
- private Image image;
-
public EntityIconAndTitlePanel(
final String id,
final ObjectAdapterModel objectAdapterModel) {
@@ -124,7 +117,8 @@ extends PanelAbstract<ManagedObject, ObjectAdapterModel> {
final String iconName = spec.getIconName(adapterIfAny);
final CssClassFaFactory cssClassFaFactory = spec.getCssClassFaFactory().orElse(null);
if (iconName != null || cssClassFaFactory == null) {
- link.addOrReplace(this.image = newImage(ID_ENTITY_ICON, adapterIfAny));
+ Wkt.imageAddCachable(link, ID_ENTITY_ICON,
+ getImageResourceCache().resourceReferenceFor(adapterIfAny));
Components.permanentlyHide(link, ID_ENTITY_FONT_AWESOME);
} else {
Label dummy = Wkt.labelAdd(link, ID_ENTITY_FONT_AWESOME, "");
@@ -133,7 +127,7 @@ extends PanelAbstract<ManagedObject, ObjectAdapterModel> {
}
final String title = determineTitle();
- this.label = Wkt.labelAdd(link, ID_ENTITY_TITLE, titleAbbreviated(title));
+ Wkt.labelAdd(link, ID_ENTITY_TITLE, titleAbbreviated(title));
String entityTypeName = determineFriendlyType() // from actual underlying model
.orElseGet(adapterIfAny.getSpecification()::getSingularName); // not sure if this code path is ever reached
@@ -212,22 +206,8 @@ extends PanelAbstract<ManagedObject, ObjectAdapterModel> {
return titleString.length();
}
- protected Image newImage(final String id, final ManagedObject adapter) {
- final ResourceReference imageResource = getImageResourceCache().resourceReferenceFor(adapter);
-
- final Image image = new Image(id, imageResource) {
- private static final long serialVersionUID = 1L;
- @Override
- protected boolean shouldAddAntiCacheParameter() {
- return false;
- }
- };
- return image;
- }
-
private boolean isContextAdapter(final ManagedObject other) {
- final ObjectAdapterModel model = getModel();
- return model.isContextAdapter(other);
+ return getModel().isContextAdapter(other);
}
static String abbreviated(final String str, final int maxLength) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
index dea019d..beab2af 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
@@ -23,7 +23,7 @@ import java.io.Serializable;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
-import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
@@ -40,9 +40,10 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
super(id, scalarModel, cls);
}
- protected int getAdjustBy() {
- final RenderedAdjustedFacet facet = getModel().getFacet(RenderedAdjustedFacet.class);
- return facet != null? facet.value(): 0;
+ protected int getDateRenderAdjustDays() {
+ return getModel().lookupFacet(DateRenderAdjustFacet.class)
+ .map(DateRenderAdjustFacet::getDateRenderAdjustDays)
+ .orElse(0);
}
@Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
index ad0db79..af271a5 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
@@ -330,7 +330,7 @@ public class Wkt {
// -- IMAGE
- private Image imageCachable(final String id, final ResourceReference imageResource) {
+ public Image imageCachable(final String id, final ResourceReference imageResource) {
return new Image(id, imageResource) {
private static final long serialVersionUID = 1L;
@Override protected boolean shouldAddAntiCacheParameter() { return false; }