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/08 13:59:56 UTC
[isis] 01/01: ISIS-2723: simplify facet precedence logic by
removing ..
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch 2723_facet.preced
in repository https://gitbox.apache.org/repos/asf/isis.git
commit b03331ea6091905c446eb9775d26730278c15962
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jun 8 15:58:47 2021 +0200
ISIS-2723: simplify facet precedence logic by removing ..
- Facet#isDerived()
- Facet#isFallback()
- Facet#isAlwaysReplace()
---
.../core/metamodel/consent/InteractionAdvisor.java | 20 ++---
.../apache/isis/core/metamodel/facetapi/Facet.java | 75 +++++++++++++-----
.../core/metamodel/facetapi/FacetAbstract.java | 89 ++++------------------
.../isis/core/metamodel/facetapi/FacetHolder.java | 20 ++---
.../core/metamodel/facetapi/FacetHolderImpl.java | 53 ++++++++-----
.../facets/SingleClassValueFacetAbstract.java | 2 +-
.../facets/SingleIntValueFacetAbstract.java | 7 +-
.../facets/SingleStringValueFacetAbstract.java | 16 ++--
.../metamodel/facets/SingleValueFacetAbstract.java | 2 +-
.../metamodel/facets/WhereValueFacetAbstract.java | 16 +++-
.../explicit/ActionExplicitFacetAbstract.java | 6 +-
.../invocation/ActionInvocationFacetAbstract.java | 2 +-
.../contributing/ContributingFacetAbstract.java | 9 +--
...tributingFacetDerivedFromMixinFacetFactory.java | 3 +-
.../defaults/ActionDefaultsFacetAbstract.java | 12 ++-
.../method/ActionDefaultsFacetViaMethod.java | 6 +-
.../NotInServiceMenuFacetAbstract.java | 6 +-
...viceMenuFacetDerivedFromDomainServiceFacet.java | 5 +-
...uFacetDerivedFromDomainServiceFacetFactory.java | 3 +-
.../position/ActionPositionFacetAbstract.java | 2 +-
.../actions/redirect/RedirectFacetAbstract.java | 7 +-
.../ActionParameterValidationFacetAbstract.java | 2 +-
.../validate/ActionValidationFacetAbstract.java | 2 +-
.../all/describedas/DescribedAsFacetAbstract.java | 8 +-
.../facets/all/help/HelpFacetAbstract.java | 4 +
.../facets/all/named/NamedFacetAbstract.java | 7 +-
.../collections/CollectionFacetAbstract.java | 2 +-
.../facets/fallback/ActionChoicesFacetNone.java | 7 +-
.../facets/fallback/ActionDefaultsFacetNone.java | 7 +-
.../facets/fallback/DescribedAsFacetNone.java | 6 +-
.../metamodel/facets/fallback/HelpFacetNone.java | 6 +-
.../facets/fallback/MaxLengthFacetUnlimited.java | 7 +-
.../facets/fallback/MultiLineFacetNone.java | 7 +-
.../metamodel/facets/fallback/NamedFacetNone.java | 7 +-
.../metamodel/facets/fallback/TitleFacetNone.java | 7 +-
.../facets/jaxb/XmlTransientFacetAbstract.java | 5 +-
.../members/cssclass/CssClassFacetAbstract.java | 9 ++-
.../members/cssclass/CssClassFacetAbstract2.java | 6 +-
.../method/DisableForContextFacetAbstract.java | 5 +-
.../method/DisableForContextFacetNone.java | 11 +--
.../facets/members/hidden/HiddenFacetAbstract.java | 11 +++
.../hidden/method/HideForContextFacetAbstract.java | 5 +-
.../hidden/method/HideForContextFacetNone.java | 10 +--
.../layout/group/LayoutGroupFacetAbstract.java | 9 +++
.../LayoutGroupFacetFromActionAnnotation.java | 6 +-
.../autocomplete/AutoCompleteFacetAbstract.java | 2 +-
.../BookmarkPolicyFacetAbstract.java | 2 +-
.../BookmarkPolicyFacetFallbackFactory.java | 9 ++-
.../object/callbacks/CallbackFacetAbstract.java | 6 +-
.../choices/ChoicesFacetFromBoundedAbstract.java | 2 +-
.../cssclass/method/CssClassFacetMethod.java | 6 +-
.../object/defaults/DefaultedFacetAbstract.java | 6 +-
.../DefaultedFacetUsingDefaultsProvider.java | 6 +-
.../disabled/DisabledObjectFacetAbstract.java | 6 +-
...ObjectLayoutAnnotationUsingCssClassUiEvent.java | 2 +-
.../domainservice/DomainServiceFacetAbstract.java | 2 +-
.../DomainServiceLayoutFacetAbstract.java | 2 +-
.../object/encodeable/EncodableFacetAbstract.java | 2 +-
.../encoder/EncodableFacetUsingEncoderDecoder.java | 2 +-
.../facets/object/facets/FacetsFacetAbstract.java | 2 +-
.../facets/object/grid/GridFacetDefault.java | 2 +-
.../object/hidden/HiddenObjectFacetAbstract.java | 2 +-
.../HiddenTypeFacetDerivedFromAuthorization.java | 2 +-
.../facets/object/icon/IconFacetAbstract.java | 2 +-
.../object/immutable/ImmutableFacetAbstract.java | 2 +-
.../facets/object/layout/LayoutFacetAbstract.java | 10 ++-
.../facets/object/layout/LayoutFacetFallback.java | 9 +--
.../logicaltype/LogicalTypeFacetAbstract.java | 9 ++-
.../LogicalTypeFacetDerivedFromClassName.java | 2 +-
.../LogicalTypeFacetOnStandaloneList.java | 2 +-
.../navparent/NavigableParentFacetAbstract.java | 2 +-
.../ObjectValidPropertiesFacetAbstract.java | 2 +-
.../facets/object/paged/PagedFacetAbstract.java | 2 +-
.../object/parseable/ParseableFacetAbstract.java | 2 +-
.../parser/ParseableFacetUsingParser.java | 2 +-
.../facets/object/plural/PluralFacetAbstract.java | 11 +--
.../plural/inferred/PluralFacetInferred.java | 2 +-
.../object/projection/ProjectionFacetAbstract.java | 6 +-
.../ProjectionFacetFromProjectingProperty.java | 5 +-
.../promptStyle/PromptStyleFacetAbstract.java | 6 +-
.../PromptStyleFacetFallBackToInline.java | 5 +-
.../EntityChangePublishingFacetAbstract.java | 2 +-
.../facets/object/title/TitleFacetAbstract.java | 6 +-
.../title/methods/TitleFacetViaMethodsFactory.java | 5 +-
.../title/methods/TitleFacetViaToStringMethod.java | 8 +-
.../object/title/parser/TitleFacetUsingParser.java | 2 +-
.../ValidateObjectFacetAbstract.java | 2 +-
.../value/TypicalLengthFacetUsingParser.java | 2 +-
.../facets/object/value/ValueFacetAbstract.java | 2 +-
.../facets/object/value/ValueFacetSimple.java | 2 +-
.../ValueSemanticsProviderAndFacetAbstract.java | 22 ++----
.../objectvalue/choices/ChoicesFacetAbstract.java | 2 +-
.../objectvalue/mandatory/MandatoryFacet.java | 33 ++++++--
.../mandatory/MandatoryFacetAbstract.java | 32 ++++----
.../mandatory/MandatoryFacetDefault.java | 13 ++--
.../objectvalue/maxlen/MaxLengthFacetAbstract.java | 8 +-
.../multiline/MultiLineFacetAbstract.java | 5 ++
.../MustSatisfySpecificationFacetAbstract.java | 2 +-
.../RenderedAdjustedFacetAbstract.java | 2 +-
.../typicallen/TypicalLengthFacetAbstract.java | 12 ++-
.../ActionParameterAutoCompleteFacetAbstract.java | 2 +-
...rameterFromJavaxValidationDigitsAnnotation.java | 2 +-
.../param/choices/ActionChoicesFacetAbstract.java | 10 ++-
.../ActionParameterChoicesFacetAbstract.java | 6 +-
.../choices/ActionParameterChoicesFacetNone.java | 7 +-
.../ActionParameterDefaultsFacetAbstract.java | 2 +-
...ParameterDefaultFacetDerivedFromTypeFacets.java | 5 +-
.../ActionParameterDisabledFacetAbstract.java | 2 +-
.../hide/ActionParameterHiddenFacetAbstract.java | 2 +-
...calLengthFacetForParameterLayoutAnnotation.java | 2 +-
.../MandatoryFacetOnParametersDefaultFactory.java | 9 +--
.../TypicalLengthFacetOnParameterAnnotation.java | 2 +-
...picalLengthFacetOnParameterDerivedFromType.java | 2 +-
.../ActionParameterValidationFacetAbstract.java | 2 +-
.../PropertyOrCollectionAccessorFacetAbstract.java | 2 +-
.../PropertyAutoCompleteFacetAbstract.java | 2 +-
...ropertyFromJavaxValidationDigitsAnnotation.java | 2 +-
.../choices/PropertyChoicesFacetAbstract.java | 2 +-
.../defaults/PropertyDefaultFacetAbstract.java | 6 +-
.../defaults/PropertyDefaultFacetNone.java | 10 +--
...pertyDefaultFacetDerivedFromDefaultedFacet.java | 2 +-
...PropertyDefaultFacetDerivedFromTypeFactory.java | 6 +-
.../MandatoryFacetOnProperyDefaultFactory.java | 8 +-
.../projection/ProjectingFacetAbstract.java | 9 +--
...icalLengthFacetForPropertyLayoutAnnotation.java | 3 +-
.../TypicalLengthFacetForPropertyXml.java | 3 +-
.../TypicalLengthFacetOnPropertyAnnotation.java | 2 +-
...ypicalLengthFacetOnPropertyDerivedFromType.java | 2 +-
.../update/clear/PropertyClearFacetAbstract.java | 2 +-
.../init/PropertyInitializationFacetAbstract.java | 2 +-
.../update/modify/PropertySetterFacetAbstract.java | 2 +-
.../validating/PropertyValidateFacetAbstract.java | 6 +-
.../validating/PropertyValidateFacetNone.java | 10 +--
.../dflt/PropertyValidateFacetDefault.java | 2 +-
.../bigdecimal/BigDecimalValueFacetAbstract.java | 4 +-
.../image/ImageValueSemanticsProviderAbstract.java | 10 ---
.../JavaAwtImageValueSemanticsProvider.java | 5 --
.../core/metamodel/layout/LayoutFacetUtil.java | 3 +-
.../all/i18n/DescribedAsFacetTranslated.java | 6 +-
.../all/i18n/NamedFacetTranslated.java | 2 +-
.../all/i18n/PluralFacetTranslated.java | 2 +-
.../authorization/AuthorizationFacetAbstract.java | 2 +-
.../NavigationFacetDerivedFromHiddenType.java | 6 +-
.../DeriveProjectionFacetsPostProcessor.java | 8 +-
.../services/metamodel/DomainMemberDefault.java | 3 +-
.../services/metamodel/MetaModelExporter.java | 2 +-
.../specloader/specimpl/FacetedMethodsBuilder.java | 5 +-
.../specloader/specimpl/ObjectActionDefault.java | 6 +-
.../specimpl/ObjectActionParameterAbstract.java | 2 +-
.../specimpl/ObjectSpecificationAbstract.java | 2 +-
.../specimpl/OneToOneAssociationDefault.java | 5 +-
...etaModelValidatorForConflictingOptionality.java | 3 +-
.../core/metamodel/facetapi/FacetAbstractTest.java | 2 +-
.../title/TitleFacetViaMethodsFactoryTest.java | 2 +-
.../interactions/InteractionUtils_isA_Test.java | 7 +-
...ObjectAssociationAbstractTest_alwaysHidden.java | 15 ++--
.../facets/TenantedAuthorizationFacetDefault.java | 2 +-
.../metamodel/facets/entity/JdoEntityFacet.java | 2 +-
.../JdoDatastoreIdentityFacetAbstract.java | 2 +-
...ypeFacetForJdoPersistenceCapableAnnotation.java | 2 +-
.../JdoPersistenceCapableFacetAnnotation.java | 2 +-
.../facets/object/query/JdoQueryFacetAbstract.java | 2 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 6 +-
.../BigDecimalFacetDerivedFromJdoColumn.java | 2 +-
.../prop/column/BigDecimalFacetFallback.java | 2 +-
...ndatoryFromJdoColumnAnnotationFacetFactory.java | 13 ++--
...DerivedFromJdoColumnAnnotationFacetFactory.java | 2 +-
...vedFromJdoColumnAnnotationFacetFactoryTest.java | 18 ++---
.../metamodel/JpaEntityFacetFactory.java | 7 +-
.../LogicalTypeFacetForTableAnnotation.java | 2 +-
.../object/table/JpaTableFacetAnnotationImpl.java | 2 +-
.../ActionParameterDescriptionReprRenderer.java | 7 +-
.../PropertyDescriptionReprRenderer.java | 7 +-
.../scalars/string/StringPanelFactory.java | 3 +-
174 files changed, 589 insertions(+), 557 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/InteractionAdvisor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/InteractionAdvisor.java
index 7f49398..2d0264f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/InteractionAdvisor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/InteractionAdvisor.java
@@ -46,11 +46,6 @@ public interface InteractionAdvisor {
}
@Override
- public boolean alwaysReplace() {
- return false;
- }
-
- @Override
public Class<? extends Facet> facetType() {
return null;
}
@@ -61,11 +56,6 @@ public interface InteractionAdvisor {
}
@Override
- public boolean isFallback() {
- return true;
- }
-
- @Override
public void setFacetHolder(final FacetHolder facetHolder) {
}
@@ -80,11 +70,6 @@ public interface InteractionAdvisor {
}
@Override
- public boolean isDerived() {
- return false;
- }
-
- @Override
public void addContributedFacet(Facet contributedFacet) {
throw _Exceptions.unsupportedOperation();
}
@@ -99,6 +84,11 @@ public interface InteractionAdvisor {
return null;
}
+ @Override
+ public Precedence getPrecedence() {
+ return Facet.Precedence.FALLBACK;
+ }
+
};
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/Facet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/Facet.java
index 077dca3..7361a6e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/Facet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/Facet.java
@@ -26,12 +26,58 @@ import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInv
public interface Facet extends FacetWithAttributes {
/**
+ * @implSpec Ordinal dictates precedence
+ * (corresponding to the ascending order of appearance).
+ */
+ public static enum Precedence {
+
+ /**
+ * Whether this facet implementation is a fallback. Meaning it is treated
+ * with lowest priority, always overruled by any other facet of same type.
+ */
+ FALLBACK,
+
+ /**
+ * Whether this facet implementation is derived (as opposed to explicit);
+ * <p>
+ * For example, we might derive the typical length of a property based on
+ * its type; but if the typical length has been explicitly specified using
+ * an annotation then that should take precedence.
+ */
+ DERIVED,
+
+ /**
+ * Lower priority than {@link #DEFAULT}.
+ */
+ LATE,
+
+ /**
+ * The default as used with {@link FacetAbstract}, if not specified otherwise.
+ */
+ DEFAULT,
+
+ /**
+ * Higher priority than {@link #DEFAULT}.
+ */
+ EARLY;
+
+ public boolean isFallback() {
+ return this == FALLBACK;
+ }
+
+ public boolean isDerived() {
+ return this == DERIVED;
+ }
+
+ }
+
+ /**
* The {@link FacetHolder holder} of this facet.
*/
FacetHolder getFacetHolder();
/**
- * Allows reparenting of Facet.
+ * Allows re-parenting of Facet.
*
* <p>
* Used by Facet decorators.
@@ -42,7 +88,9 @@ public interface Facet extends FacetWithAttributes {
/**
* Underlying {@link Facet} of the same {@link #facetType() type}, if any.
+ * @deprecated
*/
+ @Deprecated
public Facet getUnderlyingFacet();
/**
@@ -50,7 +98,9 @@ public interface Facet extends FacetWithAttributes {
*
* <p>
* Must be of the same {@link #facetType() type}.
+ * @deprecated
*/
+ @Deprecated
public void setUnderlyingFacet(Facet underlyingFacet);
/**
@@ -73,27 +123,10 @@ public interface Facet extends FacetWithAttributes {
Class<? extends Facet> facetType();
/**
- * Whether this facet implementation is derived (as opposed to explicit);
- * used to determine precedence.
- *
- * <p>
- * For example, we might derive the typical length of a property based on
- * its type; but if the typical length has been explicitly specified using
- * an annotation then that should take precedence.
- */
- public boolean isDerived();
-
- /**
- * Whether this facet implementation is a fallback. Meaning it is treated
- * with lowest priority, always overruled by any other facet of same type.
- */
- public boolean isFallback();
-
- /**
- * Whether this facet implementation should replace existing (none-fallback)
- * implementations.
+ * Facets with higher precedence override facets with lower precedence.
+ * On same precedence, its unspecified, which one wins. (Warnings should be logged.)
*/
- public boolean alwaysReplace();
+ public Precedence getPrecedence();
// -- FACET ALIAS SUPPORT
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java
index 6032555..01fe7bd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java
@@ -31,24 +31,21 @@ import org.apache.isis.core.metamodel.context.MetaModelContext;
import static org.apache.isis.commons.internal.base._With.requires;
+import lombok.Getter;
+import lombok.NonNull;
import lombok.Setter;
import lombok.val;
public abstract class FacetAbstract implements Facet, HasMetaModelContext {
- public enum Derivation {
- DERIVED,
- NOT_DERIVED
- }
-
private Facet underlyingFacet;
private final Class<? extends Facet> facetType;
@Setter private Class<? extends Facet> facetAliasType;
private Set<Facet> contributedFacets; // lazy init
- private final boolean derived;
+ @Getter(onMethod_ = {@Override}) private final @NonNull Facet.Precedence precedence;
private FacetHolder holder;
/**
@@ -63,18 +60,18 @@ public abstract class FacetAbstract implements Facet, HasMetaModelContext {
public FacetAbstract(
Class<? extends Facet> facetType,
FacetHolder holder,
- Derivation derivation) {
+ Facet.Precedence precedence) {
this.facetType = requires(facetType, "facetType");
setFacetHolder(holder);
- this.derived = (derivation == Derivation.DERIVED);
+ this.precedence = precedence;
}
protected FacetAbstract(
Class<? extends Facet> facetType,
FacetHolder holder) {
- this(facetType, holder, Derivation.NOT_DERIVED);
+ this(facetType, holder, Facet.Precedence.DEFAULT);
}
@Override
@@ -97,11 +94,6 @@ public abstract class FacetAbstract implements Facet, HasMetaModelContext {
return holder.getMetaModelContext();
}
- @Override
- public boolean isDerived() {
- return derived;
- }
-
/**
* Convenience method that returns {@link #getFacetHolder()} downcast to
* {@link IdentifiedHolder} if the implementation does indeed inherit from
@@ -119,64 +111,18 @@ public abstract class FacetAbstract implements Facet, HasMetaModelContext {
@Override
public void setUnderlyingFacet(final Facet underlyingFacet) {
if(underlyingFacet != null) {
-// if(underlyingFacet instanceof MultiTypedFacet) {
-// val multiTypedFacet = (MultiTypedFacet) underlyingFacet;
-// val matches = compatible(multiTypedFacet);
-// if(!matches) {
-// throw new IllegalArgumentException("illegal argument, expected underlying facet (a multi-valued facet) to have equivalent to the facet type (or facet types) of this facet");
-// }
-// } else {
-
- val underlyingFacetType = underlyingFacet.facetType();
- if(!Objects.equals(underlyingFacetType, facetType)) {
- val msg = String.format(
- "type-missmatch: underlying facet's type '%s' "
- + "must match this facet's type '%s'",
- underlyingFacetType, facetType);
- throw _Exceptions.unrecoverable(msg);
- }
-
- // }
+ val underlyingFacetType = underlyingFacet.facetType();
+ if(!Objects.equals(underlyingFacetType, facetType)) {
+ val msg = String.format(
+ "type-missmatch: underlying facet's type '%s' "
+ + "must match this facet's type '%s'",
+ underlyingFacetType, facetType);
+ throw _Exceptions.unrecoverable(msg);
+ }
}
this.underlyingFacet = underlyingFacet;
}
-// private boolean compatible(final MultiTypedFacet multiTypedFacet) {
-//
-// if (!(this instanceof MultiTypedFacet)) {
-// return multiTypedFacet.containsFacetTypeOf(this.facetType);
-// }
-//
-// val thisAsMultiTyped = (MultiTypedFacet) this;
-//
-// return thisAsMultiTyped.facetTypes()
-// .anyMatch(multiTypedFacet::containsFacetTypeOf);
-// }
-
- /**
- * Assume implementation is <i>not</i> a no-op.
- *
- * <p>
- * No-op implementations should override and return <tt>true</tt>.
- */
- @Override
- public boolean isFallback() {
- return false;
- }
-
- /**
- * Default implementation of this method that returns <tt>true</tt>, ie
- * should replace (none {@link #isFallback() no-op} implementations.
- *
- * <p>
- * Implementations that don't wish to replace none no-op implementations
- * should override and return <tt>false</tt>.
- */
- @Override
- public boolean alwaysReplace() {
- return true;
- }
-
@Override
public void setFacetHolder(final FacetHolder facetHolder) {
this.holder = facetHolder;
@@ -231,13 +177,8 @@ public abstract class FacetAbstract implements Facet, HasMetaModelContext {
@Override
public void appendAttributesTo(final Map<String, Object> attributeMap) {
- if(derived) {
- attributeMap.put("derived", derived);
- }
+ attributeMap.put("precedence", getPrecedence().name());
attributeMap.put("underlyingFacet", underlyingFacet);
- if(isFallback()) {
- attributeMap.put("noop", isFallback());
- }
if(isHiding()) {
attributeMap.put("hiding", isHiding());
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
index c707b78..45bb025 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
@@ -23,7 +23,6 @@ import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Stream;
-import org.apache.isis.commons.internal.functions._Predicates;
import org.apache.isis.core.metamodel.context.HasMetaModelContext;
import lombok.NonNull;
@@ -58,7 +57,7 @@ public interface FacetHolder extends HasMetaModelContext {
default <T extends Facet> Optional<T> lookupNonFallbackFacet(
@NonNull final Class<T> facetType) {
- return lookupFacet(facetType, _Predicates.not(Facet::isFallback));
+ return lookupFacet(facetType, facet->!facet.getPrecedence().isFallback());
}
// -- CONTAINS
@@ -70,23 +69,26 @@ public interface FacetHolder extends HasMetaModelContext {
/**
* Whether there is a facet registered of the specified type that is not a
- * {@link Facet#isFallback() fallback} .
+ * {@link Facet.Precedence#isFallback() fallback} .
* <p>
* Convenience; saves having to {@link #getFacet(Class)} and then check if
* <tt>null</tt> and not a fallback.
*/
default boolean containsNonFallbackFacet(Class<? extends Facet> facetType) {
val facet = getFacet(facetType);
- return facet != null && !facet.isFallback();
+ return facet != null
+ && !facet.getPrecedence().isFallback();
}
/**
* As {@link #containsNonFallbackFacet(Class)}, with additional requirement, that the
- * facet is <i>explicit</i>, not {@link Facet#isDerived() derived}.
+ * facet is <i>explicit</i>, not {@link Facet.Precedence#isDerived() derived}.
*/
default boolean containsExplicitNonFallbackFacet(Class<? extends Facet> facetType) {
val facet = getFacet(facetType);
- return facet != null && !facet.isFallback() && !facet.isDerived();
+ return facet != null
+ && !facet.getPrecedence().isFallback()
+ && !facet.getPrecedence().isDerived();
}
Stream<Facet> streamFacets();
@@ -102,9 +104,7 @@ public interface FacetHolder extends HasMetaModelContext {
*
* <p>
* If there are any facet of the same type, they will be overwritten
- * <i>provided</i> that either the {@link Facet} specifies to
- * {@link Facet#alwaysReplace() always replace} or if the existing
- * {@link Facet} is a {@link Facet#isFallback() no-op}.
+ * <i>provided</i> that given {@link Facet} has higher precedence.
*/
void addFacet(Facet facet);
@@ -114,7 +114,9 @@ public interface FacetHolder extends HasMetaModelContext {
*
* @param facet
* @since 2.0
+ * @deprecated underlying facets are deprecated
*/
+ @Deprecated
void addOrReplaceFacet(Facet facet);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
index 52567ce..a168989 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
@@ -33,12 +33,15 @@ import org.apache.isis.core.metamodel.context.MetaModelContextAware;
import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
import lombok.Getter;
+import lombok.NonNull;
import lombok.Setter;
import lombok.val;
+import lombok.extern.log4j.Log4j2;
/**
* For base subclasses or, more likely, to help write tests.
*/
+@Log4j2
public class FacetHolderImpl implements FacetHolder, MetaModelContextAware {
@Getter(onMethod = @__(@Override)) @Setter(onMethod = @__(@Override))
@@ -57,7 +60,7 @@ public class FacetHolderImpl implements FacetHolder, MetaModelContextAware {
@Override
public void addFacet(Facet facet) {
synchronized($lock) {
- val changed = addFacetOrKeepExisting(facetsByType, facet);
+ val changed = addFacetOrKeepExistingBasedOnPrecedence(facetsByType, facet);
if(changed) {
snapshot.clear(); //invalidate
}
@@ -123,22 +126,26 @@ public class FacetHolderImpl implements FacetHolder, MetaModelContextAware {
private void collectChildren(AliasMap<Class<? extends Facet>, Facet> target, Facet parentFacet) {
parentFacet.forEachContributedFacet(child->{
- val added = addFacetOrKeepExisting(target, child);
+ val added = addFacetOrKeepExistingBasedOnPrecedence(target, child);
if(added) {
collectChildren(target, child);
}
});
}
- private boolean addFacetOrKeepExisting(
- Map<Class<? extends Facet>, Facet> facetsByType,
- Facet facet) {
+ private boolean addFacetOrKeepExistingBasedOnPrecedence(
+ final @NonNull Map<Class<? extends Facet>, Facet> facetsByType,
+ final @NonNull Facet newFacet) {
- val existingFacet = facetsByType.get(facet.facetType());
+ val existingFacet = facetsByType.get(newFacet.facetType());
+ if(existingFacet==null) {
+ facetsByType.put(newFacet.facetType(), newFacet);
+ return true;
+ }
- val addOrKeep = whichPrecedesTheOther(existingFacet, facet);
- if(addOrKeep==facet) {
- facetsByType.put(facet.facetType(), facet);
+ val preferredFacet = getPreferredOf(existingFacet, newFacet);
+ if(newFacet==preferredFacet) {
+ facetsByType.put(preferredFacet.facetType(), preferredFacet);
return true;
}
return false;
@@ -149,19 +156,25 @@ public class FacetHolderImpl implements FacetHolder, MetaModelContextAware {
facetsByType.remove(topLevelFacet.facetType());
}
- // also has side-effects (not really suggested by the naming)
- private Facet whichPrecedesTheOther(Facet existingFacet, Facet facet) {
- if (existingFacet == null || existingFacet.isFallback()) {
- return facet;
- }
- if (!facet.alwaysReplace()) {
- return existingFacet; //eg. ValueSemanticsProviderAndFacetAbstract is alwaysReplace=false
+ // on equal precedence returns b
+ private Facet getPreferredOf(final @NonNull Facet a, final @NonNull Facet b) {
+
+ // guard against args being the same object
+ if(a==b) {
+ return a;
}
- if (facet.isDerived() && !existingFacet.isDerived()) {
- return existingFacet;
+
+ if(a.getPrecedence() == b.getPrecedence()) {
+ log.warn("Facets {} and {} have same precedence. Undecidable, which to use. "
+ + "Arbitrarily chosing the latter.",
+ a.getClass().getName(),
+ b.getClass().getName());
+ return b;
}
- facet.setUnderlyingFacet(existingFacet);
- return facet;
+
+ return a.getPrecedence().ordinal() < b.getPrecedence().ordinal()
+ ? b
+ : a;
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleClassValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleClassValueFacetAbstract.java
index d2c8b90..9bc87e4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleClassValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleClassValueFacetAbstract.java
@@ -34,7 +34,7 @@ public abstract class SingleClassValueFacetAbstract extends FacetAbstract implem
final Class<? extends Facet> facetType,
final FacetHolder holder,
final Class<?> value) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleIntValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleIntValueFacetAbstract.java
index 612405f..1fbae8f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleIntValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleIntValueFacetAbstract.java
@@ -30,7 +30,12 @@ public abstract class SingleIntValueFacetAbstract extends FacetAbstract implemen
private final int value;
public SingleIntValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final int value) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
+ this.value = value;
+ }
+
+ public SingleIntValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final int value, final Facet.Precedence precedence) {
+ super(facetType, holder, precedence);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleStringValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleStringValueFacetAbstract.java
index d2dfa8c..2a694e6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleStringValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleStringValueFacetAbstract.java
@@ -25,15 +25,21 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class SingleStringValueFacetAbstract extends FacetAbstract implements SingleStringValueFacet {
+public abstract class SingleStringValueFacetAbstract
+extends FacetAbstract
+implements SingleStringValueFacet {
+
private final String value;
- public SingleStringValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final String value) {
- this(facetType, holder, value, Derivation.NOT_DERIVED);
+ public SingleStringValueFacetAbstract(
+ final Class<? extends Facet> type, final FacetHolder holder, final String value) {
+ super(type, holder);
+ this.value = value;
}
- public SingleStringValueFacetAbstract(final Class<? extends Facet> type, final FacetHolder holder, final String value, final Derivation derivation) {
- super(type, holder, derivation);
+ public SingleStringValueFacetAbstract(
+ final Class<? extends Facet> type, final FacetHolder holder, final String value, final Facet.Precedence precedence) {
+ super(type, holder, precedence);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleValueFacetAbstract.java
index fa927c7..1b02368 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleValueFacetAbstract.java
@@ -30,7 +30,7 @@ public abstract class SingleValueFacetAbstract<T> extends FacetAbstract implemen
private T value;
public SingleValueFacetAbstract(final Class<? extends Facet> facetType, final T value, final FacetHolder holder) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhereValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhereValueFacetAbstract.java
index b508832..bba5467 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhereValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhereValueFacetAbstract.java
@@ -28,7 +28,9 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import lombok.NonNull;
-public abstract class WhereValueFacetAbstract extends FacetAbstract implements WhereValueFacet {
+public abstract class WhereValueFacetAbstract
+extends FacetAbstract
+implements WhereValueFacet {
private final @NonNull Where where;
@@ -37,7 +39,17 @@ public abstract class WhereValueFacetAbstract extends FacetAbstract implements W
final @NonNull FacetHolder holder,
final @NonNull Where where) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
+ this.where = where;
+ }
+
+ public WhereValueFacetAbstract(
+ final @NonNull Class<? extends Facet> facetType,
+ final @NonNull FacetHolder holder,
+ final @NonNull Where where,
+ final @NonNull Facet.Precedence precedence) {
+
+ super(facetType, holder, precedence);
this.where = where;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/explicit/ActionExplicitFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/explicit/ActionExplicitFacetAbstract.java
index 5c5b628..0bfef1e0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/explicit/ActionExplicitFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/explicit/ActionExplicitFacetAbstract.java
@@ -26,9 +26,7 @@ public abstract class ActionExplicitFacetAbstract
extends FacetAbstract
implements ActionExplicitFacet {
- public ActionExplicitFacetAbstract(
- final FacetHolder holder) {
-
- super(ActionExplicitFacet.class, holder, Derivation.NOT_DERIVED);
+ public ActionExplicitFacetAbstract(final FacetHolder holder) {
+ super(ActionExplicitFacet.class, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetAbstract.java
index 514d348..eaafecd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetAbstract.java
@@ -32,7 +32,7 @@ implements ActionInvocationFacet {
}
public ActionInvocationFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/ContributingFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/ContributingFacetAbstract.java
index c413d98..c0639ae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/ContributingFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/ContributingFacetAbstract.java
@@ -38,14 +38,7 @@ implements ContributingFacet {
public ContributingFacetAbstract(
final Contributing contributing,
final FacetHolder holder) {
- this(contributing, holder, Derivation.NOT_DERIVED);
- }
-
- public ContributingFacetAbstract(
- final Contributing contributing,
- final FacetHolder holder,
- final Derivation derivation) {
- super(type(), holder, derivation);
+ super(type(), holder);
this.contributing = contributing;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/derived/ContributingFacetDerivedFromMixinFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/derived/ContributingFacetDerivedFromMixinFacetFactory.java
index 42526fe..d6cd000 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/derived/ContributingFacetDerivedFromMixinFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/derived/ContributingFacetDerivedFromMixinFacetFactory.java
@@ -48,8 +48,7 @@ public class ContributingFacetDerivedFromMixinFacetFactory extends FacetFactoryA
val declaringClass = method.getDeclaringClass();
val spec = getSpecificationLoader().loadSpecification(declaringClass);
- val mixinFacet = spec.getFacet(MixinFacet.class);
- if(mixinFacet == null || mixinFacet.isFallback()) {
+ if(!spec.lookupNonFallbackFacet(MixinFacet.class).isPresent()) {
return;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/ActionDefaultsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/ActionDefaultsFacetAbstract.java
index dfa1214..b57b12c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/ActionDefaultsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/ActionDefaultsFacetAbstract.java
@@ -23,14 +23,20 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class ActionDefaultsFacetAbstract extends FacetAbstract implements ActionDefaultsFacet {
+public abstract class ActionDefaultsFacetAbstract
+extends FacetAbstract
+implements ActionDefaultsFacet {
public static Class<? extends Facet> type() {
return ActionDefaultsFacet.class;
}
- public ActionDefaultsFacetAbstract(final FacetHolder holder, final Derivation derivation) {
- super(type(), holder, derivation);
+ public ActionDefaultsFacetAbstract(final FacetHolder holder) {
+ super(type(), holder);
+ }
+
+ public ActionDefaultsFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethod.java
index 7e4cc5e..51bdc08 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethod.java
@@ -33,7 +33,9 @@ import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFace
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
-public class ActionDefaultsFacetViaMethod extends ActionDefaultsFacetAbstract implements ImperativeFacet {
+public class ActionDefaultsFacetViaMethod
+extends ActionDefaultsFacetAbstract
+implements ImperativeFacet {
private final Method method;
@@ -41,7 +43,7 @@ public class ActionDefaultsFacetViaMethod extends ActionDefaultsFacetAbstract im
private final Method actionMethod;
public ActionDefaultsFacetViaMethod(final Method method, final FacetHolder holder) {
- super(holder, Derivation.NOT_DERIVED);
+ super(holder);
this.method = method;
this.actionMethod = determineActionMethod(holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/NotInServiceMenuFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/NotInServiceMenuFacetAbstract.java
index d3c8aea..c92f8c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/NotInServiceMenuFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/NotInServiceMenuFacetAbstract.java
@@ -30,11 +30,11 @@ public abstract class NotInServiceMenuFacetAbstract extends FacetAbstract implem
}
public NotInServiceMenuFacetAbstract(final FacetHolder holder) {
- this(holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
- public NotInServiceMenuFacetAbstract(final FacetHolder holder, final Derivation derivation) {
- super(type(), holder, derivation);
+ public NotInServiceMenuFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacet.java
index be09c80..12c0deb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacet.java
@@ -34,7 +34,7 @@ extends NotInServiceMenuFacetAbstract {
public NotInServiceMenuFacetDerivedFromDomainServiceFacet(
final NatureOfService natureOfService, final FacetHolder holder) {
- super(holder, Derivation.DERIVED);
+ super(holder);
this.natureOfService = natureOfService;
}
@@ -47,7 +47,8 @@ extends NotInServiceMenuFacetAbstract {
return natureOfService;
}
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
+ @Override
+ public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
attributeMap.put("natureOfService", natureOfService);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java
index 57f43b4..6242d3c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java
@@ -43,7 +43,8 @@ public class NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory extends F
final ObjectSpecification spec = getSpecificationLoader().loadSpecification(declaringClass);
final DomainServiceFacet domainServiceFacet = spec.getFacet(DomainServiceFacet.class);
- if(domainServiceFacet == null || domainServiceFacet.isFallback()) {
+ if(domainServiceFacet == null
+ || domainServiceFacet.getPrecedence().isFallback()) {
return;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/position/ActionPositionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/position/ActionPositionFacetAbstract.java
index eea9751..9a8d891 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/position/ActionPositionFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/position/ActionPositionFacetAbstract.java
@@ -35,7 +35,7 @@ public abstract class ActionPositionFacetAbstract extends FacetAbstract implemen
private final ActionLayout.Position position;
public ActionPositionFacetAbstract(final ActionLayout.Position position, final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.position = position;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/redirect/RedirectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/redirect/RedirectFacetAbstract.java
index 60805f4..80e3fca 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/redirect/RedirectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/redirect/RedirectFacetAbstract.java
@@ -37,14 +37,15 @@ public abstract class RedirectFacetAbstract extends FacetAbstract implements Red
protected RedirectFacetAbstract(
final Redirect redirect,
final FacetHolder holder) {
- this(redirect, holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ this.redirect = redirect;
}
protected RedirectFacetAbstract(
final Redirect redirect,
final FacetHolder holder,
- final Derivation derivation) {
- super(type(), holder, derivation);
+ final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
this.redirect = redirect;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java
index 276df4b..a873528 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacetAbstract.java
@@ -34,7 +34,7 @@ implements ActionParameterValidationFacet {
}
public ActionParameterValidationFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionValidationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionValidationFacetAbstract.java
index f9ca278..514c1f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionValidationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionValidationFacetAbstract.java
@@ -34,7 +34,7 @@ implements ActionValidationFacet {
}
public ActionValidationFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java
index 4d3bcf2..da41c7a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/describedas/DescribedAsFacetAbstract.java
@@ -23,7 +23,9 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-public abstract class DescribedAsFacetAbstract extends SingleStringValueFacetAbstract implements DescribedAsFacet {
+public abstract class DescribedAsFacetAbstract
+extends SingleStringValueFacetAbstract
+implements DescribedAsFacet {
public static Class<? extends Facet> type() {
return DescribedAsFacet.class;
@@ -33,4 +35,8 @@ public abstract class DescribedAsFacetAbstract extends SingleStringValueFacetAbs
super(type(), holder, value);
}
+ public DescribedAsFacetAbstract(final String value, final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, value, precedence);
+ }
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/help/HelpFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/help/HelpFacetAbstract.java
index 189017c..749b68b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/help/HelpFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/help/HelpFacetAbstract.java
@@ -33,4 +33,8 @@ public abstract class HelpFacetAbstract extends SingleStringValueFacetAbstract i
super(type(), holder, value);
}
+ public HelpFacetAbstract(final String value, final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, value, precedence);
+ }
+
}
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
index 426a1df..8fe7316 100644
--- 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
@@ -35,8 +35,13 @@ public abstract class NamedFacetAbstract extends FacetAbstract implements NamedF
}
public NamedFacetAbstract(String value, boolean escaped, FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ this.value = value;
+ this.escaped = escaped;
+ }
+ public NamedFacetAbstract(String value, boolean escaped, FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
this.value = value;
this.escaped = escaped;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/CollectionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/CollectionFacetAbstract.java
index 534c58d..74c8148 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/CollectionFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/CollectionFacetAbstract.java
@@ -28,7 +28,7 @@ extends FacetAbstract
implements CollectionFacet {
public CollectionFacetAbstract(final FacetHolder holder) {
- super(CollectionFacet.class, holder, Derivation.NOT_DERIVED);
+ super(CollectionFacet.class, holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
index 4fa3f81..bfe45bc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
@@ -28,7 +28,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
public class ActionChoicesFacetNone extends ActionChoicesFacetAbstract {
public ActionChoicesFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
@Override
@@ -38,9 +38,4 @@ public class ActionChoicesFacetNone extends ActionChoicesFacetAbstract {
return CanVector.empty();
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionDefaultsFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionDefaultsFacetNone.java
index df07a06..9a23fa7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionDefaultsFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionDefaultsFacetNone.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
public class ActionDefaultsFacetNone extends ActionDefaultsFacetAbstract {
public ActionDefaultsFacetNone(final FacetHolder holder) {
- super(holder, Derivation.NOT_DERIVED);
+ super(holder, Precedence.FALLBACK);
}
@Override
@@ -34,9 +34,4 @@ public class ActionDefaultsFacetNone extends ActionDefaultsFacetAbstract {
return null;
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
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/fallback/DescribedAsFacetNone.java
index f9429ed..50016a9 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/fallback/DescribedAsFacetNone.java
@@ -28,12 +28,8 @@ import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbs
public class DescribedAsFacetNone extends DescribedAsFacetAbstract {
public DescribedAsFacetNone(final FacetHolder holder) {
- super("", holder);
+ super("", holder, Precedence.FALLBACK);
}
- @Override
- public boolean isFallback() {
- return true;
- }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/HelpFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/HelpFacetNone.java
index baa3393..6ae0384 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/HelpFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/HelpFacetNone.java
@@ -28,7 +28,7 @@ import org.apache.isis.core.metamodel.facets.all.help.HelpFacetAbstract;
public class HelpFacetNone extends HelpFacetAbstract {
public HelpFacetNone(final FacetHolder holder) {
- super(null, holder);
+ super(null, holder, Precedence.FALLBACK);
}
@Override
@@ -36,9 +36,5 @@ public class HelpFacetNone extends HelpFacetAbstract {
return "No help available";
}
- @Override
- public boolean isFallback() {
- return true;
- }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MaxLengthFacetUnlimited.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MaxLengthFacetUnlimited.java
index 3818f4a..61d28eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MaxLengthFacetUnlimited.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MaxLengthFacetUnlimited.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.interactions.ValidityContext;
public class MaxLengthFacetUnlimited extends MaxLengthFacetAbstract {
public MaxLengthFacetUnlimited(final FacetHolder holder) {
- super(Integer.MAX_VALUE, holder);
+ super(Integer.MAX_VALUE, holder, Precedence.FALLBACK);
}
/**
@@ -37,9 +37,4 @@ public class MaxLengthFacetUnlimited extends MaxLengthFacetAbstract {
return null;
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MultiLineFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MultiLineFacetNone.java
index b43dc4a..6bb8c5c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MultiLineFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/MultiLineFacetNone.java
@@ -25,12 +25,7 @@ import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFace
public class MultiLineFacetNone extends MultiLineFacetAbstract {
public MultiLineFacetNone(final FacetHolder holder) {
- super(1, holder);
- }
-
- @Override
- public boolean isFallback() {
- return true;
+ super(1, 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
index 995b1b5..efca58e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/NamedFacetNone.java
@@ -33,12 +33,7 @@ public class NamedFacetNone extends NamedFacetAbstract {
public static final boolean ESCAPED = true;
public NamedFacetNone(final FacetHolder holder) {
- super(null, ESCAPED, holder);
- }
-
- @Override
- public boolean isFallback() {
- return true;
+ super(null, ESCAPED, holder, Precedence.FALLBACK);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java
index e6e5e42..2e75716 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
public class TitleFacetNone extends TitleFacetAbstract {
public TitleFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
@Override
@@ -34,9 +34,4 @@ public class TitleFacetNone extends TitleFacetAbstract {
return null;
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/XmlTransientFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/XmlTransientFacetAbstract.java
index 5dd1960..c32694a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/XmlTransientFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/XmlTransientFacetAbstract.java
@@ -23,7 +23,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
public abstract class XmlTransientFacetAbstract
-extends FacetAbstract implements XmlTransientFacet {
+extends FacetAbstract
+implements XmlTransientFacet {
public static Class<XmlTransientFacet> type() {
return XmlTransientFacet.class;
@@ -31,7 +32,7 @@ extends FacetAbstract implements XmlTransientFacet {
public XmlTransientFacetAbstract(
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract.java
index 2159fba..3e5b7dd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract.java
@@ -26,7 +26,9 @@ import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-public abstract class CssClassFacetAbstract extends FacetAbstract implements CssClassFacet {
+public abstract class CssClassFacetAbstract
+extends FacetAbstract
+implements CssClassFacet {
public static Class<? extends Facet> type() {
return CssClassFacet.class;
@@ -35,7 +37,7 @@ public abstract class CssClassFacetAbstract extends FacetAbstract implements Css
private final String cssClass;
public CssClassFacetAbstract(final String cssClass, final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.cssClass = cssClass;
}
@@ -44,7 +46,8 @@ public abstract class CssClassFacetAbstract extends FacetAbstract implements Css
return cssClass;
}
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
+ @Override
+ public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
attributeMap.put("cssClass", cssClass);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract2.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract2.java
index 94af7c8..71c3772 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract2.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacetAbstract2.java
@@ -23,14 +23,16 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class CssClassFacetAbstract2 extends FacetAbstract implements CssClassFacet {
+public abstract class CssClassFacetAbstract2
+extends FacetAbstract
+implements CssClassFacet {
public static Class<? extends Facet> type() {
return CssClassFacet.class;
}
public CssClassFacetAbstract2(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetAbstract.java
index 3493ffe..d5db305 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetAbstract.java
@@ -30,8 +30,11 @@ public abstract class DisableForContextFacetAbstract extends FacetAbstract imple
}
public DisableForContextFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
+ public DisableForContextFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetNone.java
index 44d0a39..b974056 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetNone.java
@@ -22,10 +22,11 @@ package org.apache.isis.core.metamodel.facets.members.disabled.method;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-public class DisableForContextFacetNone extends DisableForContextFacetAbstract {
+public class DisableForContextFacetNone
+extends DisableForContextFacetAbstract {
public DisableForContextFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
/**
@@ -39,10 +40,4 @@ public class DisableForContextFacetNone extends DisableForContextFacetAbstract {
return null;
}
-
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java
index b359d08..28effbb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java
@@ -56,6 +56,17 @@ implements HiddenFacet {
super.setFacetAliasType(HiddenFacet.class);
}
+ public HiddenFacetAbstract(
+ Class<? extends Facet> facetType,
+ Where where,
+ FacetHolder holder,
+ final Facet.Precedence precedence) {
+
+ super(facetType, holder, where, precedence);
+ super.setFacetAliasType(HiddenFacet.class);
+ }
+
+
// to instantiate contributed facets
private HiddenFacetAbstract(HiddenFacetAbstract toplevelFacet) {
super(HiddenFacet.class, toplevelFacet.getFacetHolder(), toplevelFacet.where());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetAbstract.java
index 9aedd8a..cf7c4a0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetAbstract.java
@@ -30,8 +30,11 @@ public abstract class HideForContextFacetAbstract extends FacetAbstract implemen
}
public HideForContextFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
+ public HideForContextFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetNone.java
index 7f9541c..ad86913 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetNone.java
@@ -22,10 +22,11 @@ package org.apache.isis.core.metamodel.facets.members.hidden.method;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-public class HideForContextFacetNone extends HideForContextFacetAbstract {
+public class HideForContextFacetNone
+extends HideForContextFacetAbstract {
public HideForContextFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
/**
@@ -36,9 +37,4 @@ public class HideForContextFacetNone extends HideForContextFacetAbstract {
return null;
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetAbstract.java
index 0a52fed..5e97955 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetAbstract.java
@@ -20,6 +20,7 @@ package org.apache.isis.core.metamodel.facets.members.layout.group;
import java.util.Map;
+import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -39,6 +40,14 @@ implements LayoutGroupFacet {
this.groupIdAndName = groupIdAndName;
}
+ protected LayoutGroupFacetAbstract(
+ final GroupIdAndName groupIdAndName,
+ final FacetHolder holder,
+ final Facet.Precedence precedence) {
+ super(LayoutGroupFacet.class, holder, precedence);
+ this.groupIdAndName = groupIdAndName;
+ }
+
@Override
public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
index e778e36..33926a1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
@@ -37,12 +37,8 @@ extends LayoutGroupFacetAbstract {
}
private LayoutGroupFacetFromActionAnnotation(GroupIdAndName groupIdAndName, FacetHolder holder) {
- super(groupIdAndName, holder);
+ super(groupIdAndName, holder, Precedence.FALLBACK);
}
- @Override
- public boolean isFallback() {
- return true;
- }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index 53c3cf0..34fdb0c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -59,7 +59,7 @@ implements AutoCompleteFacet {
final Class<?> repositoryClass,
final Method repositoryMethod) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.repositoryClass = repositoryClass;
this.repositoryMethod = repositoryMethod;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacetAbstract.java
index 8cbe40f..967c8be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacetAbstract.java
@@ -36,7 +36,7 @@ implements BookmarkPolicyFacet {
private final BookmarkPolicy bookmarkPolicy;
public BookmarkPolicyFacetAbstract(BookmarkPolicy bookmarkPolicy, FacetHolder facetHolder) {
- super(BookmarkPolicyFacetAbstract.type(), facetHolder, Derivation.NOT_DERIVED);
+ super(BookmarkPolicyFacetAbstract.type(), facetHolder);
this.bookmarkPolicy = bookmarkPolicy;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
index 941cde7..57b10ab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
@@ -59,15 +59,18 @@ implements MetaModelRefiner {
objectSpec.streamDeclaredActions(MixedIn.EXCLUDED)
.filter(objectAction->{
final BookmarkPolicyFacet bookmarkFacet = objectAction.getFacet(BookmarkPolicyFacet.class);
- if(bookmarkFacet == null || bookmarkFacet.isFallback() ||
- bookmarkFacet.value() == BookmarkPolicy.NEVER) {
+ if(bookmarkFacet == null
+ || bookmarkFacet.getPrecedence().isFallback()
+ || bookmarkFacet.value() == BookmarkPolicy.NEVER) {
return false;
}
return true;
})
.forEach(objectAction->{
final ActionSemanticsFacet semanticsFacet = objectAction.getFacet(ActionSemanticsFacet.class);
- if(semanticsFacet == null || semanticsFacet.isFallback() || !semanticsFacet.value().isSafeInNature()) {
+ if(semanticsFacet == null
+ || semanticsFacet.getPrecedence().isFallback()
+ || !semanticsFacet.value().isSafeInNature()) {
ValidationFailure.raiseFormatted(
objectAction,
"%s: action is bookmarkable but action semantics are not explicitly indicated as being safe. " +
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacetAbstract.java
index 7c43831..ce78407 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacetAbstract.java
@@ -26,10 +26,12 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
/**
* Adapter superclass for {@link Facet}s for {@link CallbackFacet}.
*/
-public abstract class CallbackFacetAbstract extends FacetAbstract implements CallbackFacet {
+public abstract class CallbackFacetAbstract
+extends FacetAbstract
+implements CallbackFacet {
public CallbackFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
index f0524f5..4543f9d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
@@ -63,7 +63,7 @@ implements
public ChoicesFacetFromBoundedAbstract(
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethod.java
index 5965c04..c543449 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethod.java
@@ -29,7 +29,9 @@ import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
-public class CssClassFacetMethod extends FacetAbstract implements CssClassFacet {
+public class CssClassFacetMethod
+extends FacetAbstract
+implements CssClassFacet {
public static Class<? extends Facet> type() {
return CssClassFacet.class;
@@ -39,7 +41,7 @@ public class CssClassFacetMethod extends FacetAbstract implements CssClassFacet
public CssClassFacetMethod(final Method method, final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.method = method;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetAbstract.java
index de0a265..3bbbafc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetAbstract.java
@@ -27,7 +27,9 @@ import org.apache.isis.core.metamodel.commons.ClassExtensions;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class DefaultedFacetAbstract extends FacetAbstract implements DefaultedFacet {
+public abstract class DefaultedFacetAbstract
+extends FacetAbstract
+implements DefaultedFacet {
private final Class<?> defaultsProviderClass;
@@ -39,7 +41,7 @@ public abstract class DefaultedFacetAbstract extends FacetAbstract implements De
final Class<?> candidateEncoderDecoderClass,
final FacetHolder holder) {
- super(DefaultedFacet.class, holder, Derivation.NOT_DERIVED);
+ super(DefaultedFacet.class, holder);
this.defaultsProviderClass = DefaultsProviderUtil.defaultsProviderOrNull(candidateEncoderDecoderClass, candidateEncoderDecoderName);
if (isValid()) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetUsingDefaultsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetUsingDefaultsProvider.java
index ef7c0f2..b723d19 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetUsingDefaultsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultedFacetUsingDefaultsProvider.java
@@ -23,12 +23,14 @@ import org.apache.isis.applib.adapters.DefaultsProvider;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class DefaultedFacetUsingDefaultsProvider extends FacetAbstract implements DefaultedFacet {
+public class DefaultedFacetUsingDefaultsProvider
+extends FacetAbstract
+implements DefaultedFacet {
private final DefaultsProvider<?> defaultsProvider;
public DefaultedFacetUsingDefaultsProvider(final DefaultsProvider<?> parser, final FacetHolder holder) {
- super(DefaultedFacet.class, holder, Derivation.NOT_DERIVED);
+ super(DefaultedFacet.class, holder);
this.defaultsProvider = parser;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/DisabledObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/DisabledObjectFacetAbstract.java
index 1348e71..7af5d05 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/DisabledObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/DisabledObjectFacetAbstract.java
@@ -26,14 +26,16 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-public abstract class DisabledObjectFacetAbstract extends FacetAbstract implements DisabledObjectFacet {
+public abstract class DisabledObjectFacetAbstract
+extends FacetAbstract
+implements DisabledObjectFacet {
public static Class<? extends Facet> type() {
return DisabledObjectFacet.class;
}
public DisabledObjectFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
index 63fccaa..81e0438 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
@@ -69,7 +69,7 @@ implements CssClassFacet {
final MetamodelEventService metamodelEventService,
final FacetHolder holder) {
- super(CssClassFacetAbstract.type(), holder, Derivation.NOT_DERIVED);
+ super(CssClassFacetAbstract.type(), holder);
this.cssClassUiEventClass = cssClassUiEventClass;
this.metamodelEventService = metamodelEventService;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java
index 91f9a03..9e829d7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java
@@ -40,7 +40,7 @@ implements DomainServiceFacet {
public DomainServiceFacetAbstract(
final FacetHolder facetHolder,
final NatureOfService natureOfService) {
- super(DomainServiceFacetAbstract.type(), facetHolder, Derivation.NOT_DERIVED);
+ super(DomainServiceFacetAbstract.type(), facetHolder);
this.natureOfService = natureOfService;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetAbstract.java
index ba8c279..f156f89 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetAbstract.java
@@ -38,7 +38,7 @@ implements DomainServiceLayoutFacet {
private final DomainServiceLayout.MenuBar menuBar;
public DomainServiceLayoutFacetAbstract(final FacetHolder facetHolder, final DomainServiceLayout.MenuBar menuBar) {
- super(DomainServiceLayoutFacetAbstract.type(), facetHolder, Derivation.NOT_DERIVED);
+ super(DomainServiceLayoutFacetAbstract.type(), facetHolder);
this.menuBar = menuBar;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java
index 1d13e53..5addde6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java
@@ -38,7 +38,7 @@ public abstract class EncodableFacetAbstract extends FacetAbstract implements En
final Class<?> candidateEncoderDecoderClass,
final FacetHolder holder) {
- super(EncodableFacet.class, holder, Derivation.NOT_DERIVED);
+ super(EncodableFacet.class, holder);
this.encoderDecoderClass = EncoderDecoderUtil.encoderDecoderOrNull(candidateEncoderDecoderClass, candidateEncoderDecoderName);
if (isValid()) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/encoder/EncodableFacetUsingEncoderDecoder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/encoder/EncodableFacetUsingEncoderDecoder.java
index 7a4508b..3caf6fa9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/encoder/EncodableFacetUsingEncoderDecoder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/encoder/EncodableFacetUsingEncoderDecoder.java
@@ -33,7 +33,7 @@ implements EncodableFacet {
private final EncoderDecoder<?> encoderDecoder;
public EncodableFacetUsingEncoderDecoder(final EncoderDecoder<?> encoderDecoder, final FacetHolder holder) {
- super(EncodableFacet.class, holder, Derivation.NOT_DERIVED);
+ super(EncodableFacet.class, holder);
this.encoderDecoder = encoderDecoder;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java
index 6ebde09..76aa53c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java
@@ -41,7 +41,7 @@ public abstract class FacetsFacetAbstract extends FacetAbstract implements Facet
private final Class<? extends FacetFactory>[] facetFactories;
public FacetsFacetAbstract(final String[] names, final Class<?>[] classes, final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
final List<Class<? extends FacetFactory>> facetFactories = new ArrayList<Class<? extends FacetFactory>>();
for (final String name : names) {
final Class<? extends FacetFactory> facetFactory = facetFactoryOrNull(name);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
index 6f29705..d7e30ac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
@@ -64,7 +64,7 @@ implements GridFacet {
private GridFacetDefault(
final FacetHolder facetHolder,
final GridService gridService) {
- super(GridFacetDefault.type(), facetHolder, Derivation.NOT_DERIVED);
+ super(GridFacetDefault.type(), facetHolder);
this.gridService = gridService;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java
index a099978..4ecc685 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenObjectFacetAbstract.java
@@ -32,7 +32,7 @@ public abstract class HiddenObjectFacetAbstract extends FacetAbstract implements
}
public HiddenObjectFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenTypeFacetDerivedFromAuthorization.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenTypeFacetDerivedFromAuthorization.java
index 3e6fa99..0a95140 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenTypeFacetDerivedFromAuthorization.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/HiddenTypeFacetDerivedFromAuthorization.java
@@ -36,7 +36,7 @@ public class HiddenTypeFacetDerivedFromAuthorization extends FacetAbstract imple
}
public HiddenTypeFacetDerivedFromAuthorization(final FacetHolder holder) {
- super(type(), holder, Derivation.DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/IconFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/IconFacetAbstract.java
index ed65dfc..4b77050 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/IconFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/IconFacetAbstract.java
@@ -30,7 +30,7 @@ public abstract class IconFacetAbstract extends FacetAbstract implements IconFac
}
public IconFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
index 60036b3..3f40bc2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
@@ -32,7 +32,7 @@ public abstract class ImmutableFacetAbstract extends FacetAbstract implements Im
}
public ImmutableFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
/**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetAbstract.java
index 12e0bee..e80893c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetAbstract.java
@@ -23,19 +23,21 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class LayoutFacetAbstract extends FacetAbstract implements LayoutFacet {
+public abstract class LayoutFacetAbstract
+extends FacetAbstract implements LayoutFacet {
public static Class<? extends Facet> type() {
return LayoutFacet.class;
}
protected LayoutFacetAbstract(final FacetHolder holder) {
- this(holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
+
protected LayoutFacetAbstract(
final FacetHolder holder,
- final Derivation derivation) {
- super(type(), holder, derivation);
+ final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFallback.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFallback.java
index 79148a5..9d56b60 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFallback.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFallback.java
@@ -21,14 +21,14 @@ package org.apache.isis.core.metamodel.facets.object.layout;
import java.util.Map;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
+import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.spec.ManagedObject;
public class LayoutFacetFallback extends LayoutFacetAbstract {
public LayoutFacetFallback(final FacetHolder holder) {
- super(holder, FacetAbstract.Derivation.DERIVED);
+ super(holder, Facet.Precedence.DERIVED);
}
@Override
@@ -41,9 +41,4 @@ public class LayoutFacetFallback extends LayoutFacetAbstract {
super.appendAttributesTo(attributeMap);
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacetAbstract.java
index 5872eea..31864e7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacetAbstract.java
@@ -40,17 +40,18 @@ implements LogicalTypeFacet {
@Getter(onMethod_ = {@Override})
private final @NonNull LogicalType logicalType;
- public LogicalTypeFacetAbstract(
+ protected LogicalTypeFacetAbstract(
final LogicalType logicalType,
final FacetHolder holder) {
- this(logicalType, holder, Derivation.NOT_DERIVED);
+ super(LogicalTypeFacetAbstract.type(), holder);
+ this.logicalType = logicalType;
}
protected LogicalTypeFacetAbstract(
final LogicalType logicalType,
final FacetHolder holder,
- final Derivation derivation) {
- super(LogicalTypeFacetAbstract.type(), holder, derivation);
+ final Facet.Precedence precedence) {
+ super(LogicalTypeFacetAbstract.type(), holder, precedence);
this.logicalType = logicalType;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetDerivedFromClassName.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetDerivedFromClassName.java
index 65275cc..5afa11d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetDerivedFromClassName.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetDerivedFromClassName.java
@@ -32,7 +32,7 @@ extends LogicalTypeFacetAbstract {
}
public LogicalTypeFacetDerivedFromClassName(final LogicalType logicalType, final FacetHolder holder) {
- super(logicalType, holder, Derivation.DERIVED);
+ super(logicalType, holder, Precedence.DERIVED);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetOnStandaloneList.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetOnStandaloneList.java
index e4d94c1..8048a3a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetOnStandaloneList.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/classname/LogicalTypeFacetOnStandaloneList.java
@@ -26,6 +26,6 @@ import org.apache.isis.core.metamodel.facets.object.logicaltype.LogicalTypeFacet
public class LogicalTypeFacetOnStandaloneList extends LogicalTypeFacetAbstract {
public LogicalTypeFacetOnStandaloneList(final LogicalType logicalType, final FacetHolder holder) {
- super(logicalType, holder, Derivation.NOT_DERIVED);
+ super(logicalType, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetAbstract.java
index b3468ac..c55a1d0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetAbstract.java
@@ -30,7 +30,7 @@ public abstract class NavigableParentFacetAbstract extends FacetAbstract impleme
}
public NavigableParentFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java
index e91b186..54cef0a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java
@@ -32,7 +32,7 @@ public abstract class ObjectValidPropertiesFacetAbstract extends FacetAbstract i
}
public ObjectValidPropertiesFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/PagedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/PagedFacetAbstract.java
index f01c17f..70e40a2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/PagedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/PagedFacetAbstract.java
@@ -34,7 +34,7 @@ public abstract class PagedFacetAbstract extends FacetAbstract implements PagedF
private final int value;
public PagedFacetAbstract(int value, final FacetHolder holder) {
- super(type(), holder, Derivation.DERIVED);
+ super(type(), holder, Precedence.DERIVED);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java
index 66894ea..1e23a99 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java
@@ -41,7 +41,7 @@ implements ParseableFacet {
final Class<?> candidateParserClass,
final FacetHolder holder) {
- super(ParseableFacet.class, holder, Derivation.NOT_DERIVED);
+ super(ParseableFacet.class, holder);
this.parserClass = ParserUtil.parserOrNull(candidateParserClass, candidateParserName);
this.parseableFacetUsingParser = isValid()?
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
index 7d0cd67..04709c3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
@@ -52,7 +52,7 @@ implements ParseableFacet {
final Parser<?> parser,
final FacetHolder holder) {
- super(ParseableFacet.class, holder, Derivation.NOT_DERIVED);
+ super(ParseableFacet.class, holder);
this.parser = parser;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/PluralFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/PluralFacetAbstract.java
index 5b639b4..04729de 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/PluralFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/PluralFacetAbstract.java
@@ -20,22 +20,23 @@
package org.apache.isis.core.metamodel.facets.object.plural;
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.SingleStringValueFacetAbstract;
-public abstract class PluralFacetAbstract extends SingleStringValueFacetAbstract implements PluralFacet {
+public abstract class PluralFacetAbstract
+extends SingleStringValueFacetAbstract
+implements PluralFacet {
public static Class<? extends Facet> type() {
return PluralFacet.class;
}
public PluralFacetAbstract(final String value, final FacetHolder holder) {
- this(value, holder, FacetAbstract.Derivation.NOT_DERIVED);
+ super(type(), holder, value);
}
- public PluralFacetAbstract(final String value, final FacetHolder holder, final FacetAbstract.Derivation derivation) {
- super(type(), holder, value, derivation);
+ public PluralFacetAbstract(final String value, final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, value, precedence);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/inferred/PluralFacetInferred.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/inferred/PluralFacetInferred.java
index 572c3d3..2773fc0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/inferred/PluralFacetInferred.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/inferred/PluralFacetInferred.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.facets.object.plural.PluralFacetAbstract;
public class PluralFacetInferred extends PluralFacetAbstract {
public PluralFacetInferred(final String value, final FacetHolder holder) {
- super(value, holder, Derivation.DERIVED);
+ super(value, holder, Precedence.DERIVED);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetAbstract.java
index 8ff861f..370ffaf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetAbstract.java
@@ -32,11 +32,7 @@ implements ProjectionFacet {
}
protected ProjectionFacetAbstract(final FacetHolder holder) {
- this( holder, Derivation.NOT_DERIVED);
- }
-
- protected ProjectionFacetAbstract(final FacetHolder holder, final Derivation derivation) {
- super( type(), holder, derivation);
+ super( type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java
index 1cd7a6b..cd9ed1a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java
@@ -49,8 +49,9 @@ public class ProjectionFacetFromProjectingProperty extends ProjectionFacetAbstra
public static ProjectionFacet create(final ObjectSpecification objectSpecification) {
return objectSpecification.streamProperties(MixedIn.EXCLUDED)
.filter(propertySpec -> {
- val projectingFacet = propertySpec.getFacet(ProjectingFacet.class);
- return projectingFacet != null && !projectingFacet.isFallback()
+ val projectingFacet = propertySpec.lookupNonFallbackFacet(ProjectingFacet.class)
+ .orElse(null);
+ return projectingFacet != null
&& projectingFacet.value() == Projecting.PROJECTED;
})
.findFirst()
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
index 93db934..8b9b227 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
@@ -32,11 +32,11 @@ implements PromptStyleFacet {
}
protected PromptStyleFacetAbstract(final FacetHolder holder) {
- this( holder, Derivation.NOT_DERIVED);
+ super( type(), holder);
}
- protected PromptStyleFacetAbstract(final FacetHolder holder, final Derivation derivation) {
- super( type(), holder, derivation);
+ protected PromptStyleFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super( type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBackToInline.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBackToInline.java
index 12161ef..671a3c1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBackToInline.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBackToInline.java
@@ -22,10 +22,11 @@ package org.apache.isis.core.metamodel.facets.object.promptStyle;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class PromptStyleFacetFallBackToInline extends PromptStyleFacetAbstract {
+public class PromptStyleFacetFallBackToInline
+extends PromptStyleFacetAbstract {
public PromptStyleFacetFallBackToInline(final FacetHolder holder) {
- super(holder, Derivation.DERIVED);
+ super(holder, Precedence.DERIVED);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetAbstract.java
index eb68e30..6fc11c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetAbstract.java
@@ -31,7 +31,7 @@ implements EntityChangePublishingFacet {
}
public EntityChangePublishingFacetAbstract(final FacetHolder facetHolder) {
- super(EntityChangePublishingFacetAbstract.type(), facetHolder, Derivation.NOT_DERIVED);
+ super(EntityChangePublishingFacetAbstract.type(), facetHolder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacetAbstract.java
index 65d4c06..1524918 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/TitleFacetAbstract.java
@@ -30,7 +30,11 @@ public abstract class TitleFacetAbstract extends FacetAbstract implements TitleF
}
public TitleFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ }
+
+ public TitleFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java
index 4582249..5c531ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java
@@ -73,8 +73,9 @@ public class TitleFacetViaMethodsFactory extends MethodPrefixBasedFacetFactoryAb
}
// may have a facet by virtue of @Title, say.
- final TitleFacet existingTitleFacet = facetHolder.getFacet(TitleFacet.class);
- if(existingTitleFacet != null && !existingTitleFacet.isFallback()) {
+ final TitleFacet existingTitleFacet = facetHolder.lookupNonFallbackFacet(TitleFacet.class)
+ .orElse(null);
+ if(existingTitleFacet != null) {
return;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaToStringMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaToStringMethod.java
index 1435393..9de4e94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaToStringMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaToStringMethod.java
@@ -34,7 +34,7 @@ public class TitleFacetViaToStringMethod extends TitleFacetAbstract implements I
private final Method method;
public TitleFacetViaToStringMethod(final Method method, final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
this.method = method;
}
@@ -58,11 +58,7 @@ public class TitleFacetViaToStringMethod extends TitleFacetAbstract implements I
}
@Override
- public boolean isFallback() {
- return true;
- }
-
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
+ public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
ImperativeFacet.Util.appendAttributesTo(this, attributeMap);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingParser.java
index 438de34..502f3e0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingParser.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingParser.java
@@ -31,7 +31,7 @@ public class TitleFacetUsingParser extends FacetAbstract implements TitleFacet {
private final Parser<?> parser;
public TitleFacetUsingParser(final Parser<?> parser, final FacetHolder holder) {
- super(TitleFacet.class, holder, Derivation.NOT_DERIVED);
+ super(TitleFacet.class, holder);
this.parser = parser;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java
index 3dfb377..aaa147d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java
@@ -33,7 +33,7 @@ public abstract class ValidateObjectFacetAbstract extends FacetAbstract implemen
}
public ValidateObjectFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/TypicalLengthFacetUsingParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/TypicalLengthFacetUsingParser.java
index 2ac8c25..aa21553 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/TypicalLengthFacetUsingParser.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/TypicalLengthFacetUsingParser.java
@@ -29,7 +29,7 @@ public class TypicalLengthFacetUsingParser extends FacetAbstract implements Typi
private final Parser<?> parser;
public TypicalLengthFacetUsingParser(final Parser<?> parser, final FacetHolder holder) {
- super(TypicalLengthFacet.class, holder, Derivation.NOT_DERIVED);
+ super(TypicalLengthFacet.class, holder);
this.parser = parser;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
index 1d6703b..5f801db 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
@@ -80,7 +80,7 @@ implements ValueFacet {
final AddFacetsIfInvalidStrategy addFacetsIfInvalid,
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
super.setFacetAliasType(ValueFacet.class);
this.semanticsProvider = semanticsProvider;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java
index b88e0d1..5f6e234 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java
@@ -30,7 +30,7 @@ public class ValueFacetSimple extends FacetAbstract implements ValueFacet {
}
public ValueFacetSimple(FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
super.setFacetAliasType(ValueFacet.class);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index 1741aee..12259d7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -32,7 +32,6 @@ import org.apache.isis.applib.exceptions.unrecoverable.UnknownTypeException;
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.properties.defaults.PropertyDefaultFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -80,7 +79,14 @@ implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser<T>, DefaultsProv
final EqualByContent equalByContent,
final T defaultValue) {
- super(adapterFacetType, holder, Derivation.NOT_DERIVED);
+ /*
+ * precedence = LATE
+ * We don't replace any (none no-op) facets.
+ *
+ * For example, if there is already a {@link PropertyDefaultFacet} then we
+ * shouldn't replace it.
+ */
+ super(adapterFacetType, holder, Facet.Precedence.LATE);
this.adaptedClass = adaptedClass;
this.typicalLength = typicalLength;
this.maxLength = maxLength;
@@ -108,18 +114,6 @@ implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser<T>, DefaultsProv
return adaptedClass;
}
- /**
- * We don't replace any (none no-op) facets.
- *
- * <p>
- * For example, if there is already a {@link PropertyDefaultFacet} then we
- * shouldn't replace it.
- */
- @Override
- public boolean alwaysReplace() {
- return false;
- }
-
// ///////////////////////////////////////////////////////////////////////////
// ValueSemanticsProvider implementation
// ///////////////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacetAbstract.java
index 5f085a2..9b6588d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacetAbstract.java
@@ -32,7 +32,7 @@ implements ChoicesFacet {
}
public ChoicesFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacet.java
index 67871f4..7803aa4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacet.java
@@ -35,11 +35,26 @@ import lombok.val;
* value being provided. For a mandatory parameter, the action cannot be invoked
* without the value being provided.
*
- * <p>
- * In the standard Apache Isis Programming Model, specify mandatory by
- * <i>omitting</i> the <tt>@Optional</tt> annotation.
*/
-public interface MandatoryFacet extends Facet, ValidatingInteractionAdvisor {
+public interface MandatoryFacet
+extends Facet, ValidatingInteractionAdvisor {
+
+ public enum Semantics {
+ REQUIRED,
+ OPTIONAL;
+
+ public static Semantics of(boolean required) {
+ return required ? REQUIRED: OPTIONAL;
+ }
+
+ public boolean isRequired() {
+ return this == REQUIRED;
+ }
+
+ public boolean isOptional() {
+ return this == OPTIONAL;
+ }
+ }
/**
* Whether this value is required but has not been provided (and is
@@ -56,13 +71,15 @@ public interface MandatoryFacet extends Facet, ValidatingInteractionAdvisor {
* other words that the {@link FacetHolder} to which this {@link Facet} is
* attached is <i>not</i> mandatory.
*/
- public boolean isInvertedSemantics();
+ public Semantics getSemantics();
- static boolean isMandatory(@NonNull FacetHolder facetHolder) {
+ static boolean isMandatory(final @NonNull FacetHolder facetHolder) {
val mandatoryFacet = facetHolder.getFacet(MandatoryFacet.class);
- if(mandatoryFacet == null || mandatoryFacet.isFallback() || mandatoryFacet.isInvertedSemantics()) {
+ if(mandatoryFacet == null) {
+ // absence of the mandatory facet indicates OPTIONAL
return false;
}
- return true;
+ return mandatoryFacet.getSemantics()==null
+ || mandatoryFacet.getSemantics().isRequired();
}
}
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 80e3677..07d6582 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
@@ -33,23 +33,18 @@ import org.apache.isis.core.metamodel.interactions.ValidityContext;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects.UnwrapUtil;
+import lombok.Getter;
import lombok.val;
-public abstract class MandatoryFacetAbstract extends FacetAbstract implements MandatoryFacet {
+public abstract class MandatoryFacetAbstract
+extends FacetAbstract
+implements MandatoryFacet {
public static Class<? extends Facet> type() {
return MandatoryFacet.class;
}
- public enum Semantics {
- REQUIRED,
- OPTIONAL;
-
- public static Semantics of(boolean required) {
- return required ? REQUIRED: OPTIONAL;
- }
- }
-
+ @Getter(onMethod_ = {@Override})
private Semantics semantics;
public MandatoryFacetAbstract(final FacetHolder holder, final Semantics semantics) {
@@ -57,12 +52,18 @@ public abstract class MandatoryFacetAbstract extends FacetAbstract implements Ma
this.semantics = semantics;
}
+ public MandatoryFacetAbstract(
+ final FacetHolder holder, final Semantics semantics, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
+ this.semantics = semantics;
+ }
+
/**
* If not specified or, if a string, then zero length.
*/
@Override
public final boolean isRequiredButNull(final ManagedObject adapter) {
- if(!isInvertedSemantics()) {
+ if(getSemantics().isRequired()) {
val pojo = UnwrapUtil.single(adapter);
// special case string handling.
@@ -77,11 +78,6 @@ public abstract class MandatoryFacetAbstract extends FacetAbstract implements Ma
}
@Override
- public boolean isInvertedSemantics() {
- return this.semantics == Semantics.OPTIONAL;
- }
-
- @Override
public String invalidates(final ValidityContext context) {
if (!(context instanceof PropertyModifyContext) && !(context instanceof ActionArgValidityContext)) {
return null;
@@ -102,9 +98,9 @@ public abstract class MandatoryFacetAbstract extends FacetAbstract implements Ma
return name != null? "'" + name + "' is mandatory":"Mandatory";
}
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
+ @Override
+ public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
attributeMap.put("semantics", semantics);
- attributeMap.put("inverted", isInvertedSemantics());
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetDefault.java
index 819807d..ee5a59d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetDefault.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.objectvalue.mandatory;
+import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
/**
@@ -28,16 +29,16 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
* For a mandatory property, the object cannot be saved/updated without the
* value being provided. For a mandatory parameter, the action cannot be invoked
* without the value being provided.
- *
- * <p>
- * In the standard Apache Isis Programming Model, specify mandatory by
- * <i>omitting</i> the <tt>@Optional</tt> annotation.
*/
public class MandatoryFacetDefault extends MandatoryFacetAbstract {
- public MandatoryFacetDefault(final FacetHolder holder) {
- super(holder, Semantics.REQUIRED);
+ public static MandatoryFacetDefault required(final FacetHolder holder) {
+ return new MandatoryFacetDefault(holder, Semantics.REQUIRED);
}
+ private MandatoryFacetDefault(final FacetHolder holder, final Semantics semantics) {
+ // unconditionally created, hence acting as a fallback
+ super(holder, semantics, Facet.Precedence.FALLBACK);
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxLengthFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxLengthFacetAbstract.java
index beda1c3..e455936 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxLengthFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxLengthFacetAbstract.java
@@ -29,7 +29,9 @@ import org.apache.isis.core.metamodel.spec.ManagedObjects.UnwrapUtil;
import lombok.val;
-public abstract class MaxLengthFacetAbstract extends SingleIntValueFacetAbstract implements MaxLengthFacet {
+public abstract class MaxLengthFacetAbstract
+extends SingleIntValueFacetAbstract
+implements MaxLengthFacet {
public static Class<? extends Facet> type() {
return MaxLengthFacet.class;
@@ -39,6 +41,10 @@ public abstract class MaxLengthFacetAbstract extends SingleIntValueFacetAbstract
super(type(), holder, value);
}
+ public MaxLengthFacetAbstract(final int value, final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, value, precedence);
+ }
+
/**
* Whether the provided argument exceeds the {@link #value() maximum length}
* .
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/multiline/MultiLineFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/multiline/MultiLineFacetAbstract.java
index 89c46ac..ed2813c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/multiline/MultiLineFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/multiline/MultiLineFacetAbstract.java
@@ -40,6 +40,11 @@ implements MultiLineFacet {
this.numberOfLines = numberOfLines;
}
+ public MultiLineFacetAbstract(final int numberOfLines, final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
+ this.numberOfLines = numberOfLines;
+ }
+
@Override
public int numberOfLines() {
return numberOfLines;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mustsatisfyspec/MustSatisfySpecificationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mustsatisfyspec/MustSatisfySpecificationFacetAbstract.java
index 7b07e8f..c4cfeb0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mustsatisfyspec/MustSatisfySpecificationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mustsatisfyspec/MustSatisfySpecificationFacetAbstract.java
@@ -58,7 +58,7 @@ public abstract class MustSatisfySpecificationFacetAbstract extends FacetAbstrac
public MustSatisfySpecificationFacetAbstract(
final List<Specification> specifications,
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.specifications = specifications;
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/renderedadjusted/RenderedAdjustedFacetAbstract.java
index 54e7e9f..830584d 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/renderedadjusted/RenderedAdjustedFacetAbstract.java
@@ -34,7 +34,7 @@ public abstract class RenderedAdjustedFacetAbstract extends FacetAbstract implem
private final int adjustBy;
public RenderedAdjustedFacetAbstract(int adjustBy, final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.adjustBy = adjustBy;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/typicallen/TypicalLengthFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/typicallen/TypicalLengthFacetAbstract.java
index b2acdf1..dde485b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/typicallen/TypicalLengthFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/typicallen/TypicalLengthFacetAbstract.java
@@ -23,14 +23,20 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class TypicalLengthFacetAbstract extends FacetAbstract implements TypicalLengthFacet {
+public abstract class TypicalLengthFacetAbstract
+extends FacetAbstract
+implements TypicalLengthFacet {
public static Class<? extends Facet> type() {
return TypicalLengthFacet.class;
}
- public TypicalLengthFacetAbstract(final FacetHolder holder, final Derivation derivation) {
- super(type(), holder, derivation);
+ public TypicalLengthFacetAbstract(final FacetHolder holder) {
+ super(type(), holder);
+ }
+
+ public TypicalLengthFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
index b2a8c69..ca20102 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
@@ -32,7 +32,7 @@ implements ActionParameterAutoCompleteFacet {
}
public ActionParameterAutoCompleteFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java
index 832c357..c8e0d96 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java
@@ -35,7 +35,7 @@ public class BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation exten
}
public BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation(final FacetHolder holder, final Integer precision, final Integer scale) {
- super(BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.type(), holder, Derivation.NOT_DERIVED);
+ super(BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.type(), holder);
this.precision = precision;
this.scale = scale;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java
index e517292..7ce7fab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java
@@ -23,14 +23,20 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class ActionChoicesFacetAbstract extends FacetAbstract implements ActionChoicesFacet {
+public abstract class ActionChoicesFacetAbstract
+extends FacetAbstract
+implements ActionChoicesFacet {
public static Class<? extends Facet> type() {
return ActionChoicesFacet.class;
}
public ActionChoicesFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ }
+
+ public ActionChoicesFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetAbstract.java
index d24c036..1659e63 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetAbstract.java
@@ -32,7 +32,11 @@ implements ActionParameterChoicesFacet {
}
public ActionParameterChoicesFacetAbstract(FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ }
+
+ public ActionParameterChoicesFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetNone.java
index 45dd9ba..5728361 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionParameterChoicesFacetNone.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class ActionParameterChoicesFacetNone extends ActionParameterChoicesFacetAbstract {
public ActionParameterChoicesFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
@Override
@@ -42,9 +42,4 @@ public class ActionParameterChoicesFacetNone extends ActionParameterChoicesFacet
return Can.empty();
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/ActionParameterDefaultsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/ActionParameterDefaultsFacetAbstract.java
index 21e247b..c26f771 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/ActionParameterDefaultsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/ActionParameterDefaultsFacetAbstract.java
@@ -32,7 +32,7 @@ implements ActionParameterDefaultsFacet {
}
public ActionParameterDefaultsFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java
index cbed839..e9fc190 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java
@@ -26,12 +26,13 @@ import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFace
import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-public class ActionParameterDefaultFacetDerivedFromTypeFacets extends ActionDefaultsFacetAbstract {
+public class ActionParameterDefaultFacetDerivedFromTypeFacets
+extends ActionDefaultsFacetAbstract {
private final DefaultedFacet[] defaultedFacets;
public ActionParameterDefaultFacetDerivedFromTypeFacets(final DefaultedFacet[] defaultedFacets, final FacetHolder holder) {
- super(holder, Derivation.DERIVED);
+ super(holder, Precedence.DERIVED);
this.defaultedFacets = defaultedFacets;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java
index 5ed711e..b0d1023 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java
@@ -34,7 +34,7 @@ implements ActionParameterDisabledFacet {
}
public ActionParameterDisabledFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
index 65159a6..d826644 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
@@ -36,7 +36,7 @@ implements ActionParameterHiddenFacet {
}
public ActionParameterHiddenFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/TypicalLengthFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/TypicalLengthFacetForParameterLayoutAnnotation.java
index b7d8ab8..8cf1d7b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/TypicalLengthFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/TypicalLengthFacetForParameterLayoutAnnotation.java
@@ -43,7 +43,7 @@ public class TypicalLengthFacetForParameterLayoutAnnotation extends TypicalLengt
private final int value;
public TypicalLengthFacetForParameterLayoutAnnotation(int typicalLength, FacetHolder holder) {
- super(holder, Derivation.NOT_DERIVED);
+ super(holder);
this.value = typicalLength;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java
index a283387..d26ed6f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java
@@ -19,7 +19,7 @@
package org.apache.isis.core.metamodel.facets.param.mandatory.dflt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
@@ -46,11 +46,10 @@ public class MandatoryFacetOnParametersDefaultFactory extends FacetFactoryAbstra
@Override
public void processParams(final ProcessParameterContext processParameterContext) {
- super.addFacet(create(processParameterContext.getFacetHolder()));
+ FacetUtil.addFacet(
+ MandatoryFacetDefault
+ .required(processParameterContext.getFacetHolder()));
}
- private MandatoryFacet create(final FacetHolder holder) {
- return new MandatoryFacetDefault(holder);
- }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotation.java
index a67831b..3184dc5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotation.java
@@ -33,7 +33,7 @@ public class TypicalLengthFacetOnParameterAnnotation extends TypicalLengthFacetA
private final int value;
public TypicalLengthFacetOnParameterAnnotation(final int value, final FacetHolder holder) {
- super(holder, Derivation.NOT_DERIVED);
+ super(holder);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/fromtype/TypicalLengthFacetOnParameterDerivedFromType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/fromtype/TypicalLengthFacetOnParameterDerivedFromType.java
index 365d1a2..e063886 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/fromtype/TypicalLengthFacetOnParameterDerivedFromType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/fromtype/TypicalLengthFacetOnParameterDerivedFromType.java
@@ -31,7 +31,7 @@ public class TypicalLengthFacetOnParameterDerivedFromType extends TypicalLengthF
private final TypicalLengthFacet typicalLengthFacet;
public TypicalLengthFacetOnParameterDerivedFromType(final TypicalLengthFacet typicalLengthFacet, final FacetHolder holder) {
- super(holder, Derivation.DERIVED);
+ super(holder, Precedence.DERIVED);
this.typicalLengthFacet = typicalLengthFacet;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java
index c8e5610..7aaf33d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java
@@ -36,7 +36,7 @@ implements ActionParameterValidationFacet {
}
public ActionParameterValidationFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/accessor/PropertyOrCollectionAccessorFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/accessor/PropertyOrCollectionAccessorFacetAbstract.java
index 5a5e2a6..b9d1fcb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/accessor/PropertyOrCollectionAccessorFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/accessor/PropertyOrCollectionAccessorFacetAbstract.java
@@ -39,7 +39,7 @@ implements PropertyOrCollectionAccessorFacet {
public PropertyOrCollectionAccessorFacetAbstract(
final ObjectSpecification onType,
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.onType = onType;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/PropertyAutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/PropertyAutoCompleteFacetAbstract.java
index 262887c..76299c6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/PropertyAutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/PropertyAutoCompleteFacetAbstract.java
@@ -30,7 +30,7 @@ public abstract class PropertyAutoCompleteFacetAbstract extends FacetAbstract im
}
public PropertyAutoCompleteFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
index b5a54c5..01d8ce8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
@@ -36,7 +36,7 @@ public class BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation extend
}
public BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation(final FacetHolder holder, final Integer precision, final Integer scale) {
- super(BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation.type(), holder, Derivation.NOT_DERIVED);
+ super(BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotation.type(), holder);
this.precision = precision;
this.scale = scale;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacetAbstract.java
index a2acb8f..d7cc9a0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacetAbstract.java
@@ -30,7 +30,7 @@ public abstract class PropertyChoicesFacetAbstract extends FacetAbstract impleme
}
public PropertyChoicesFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetAbstract.java
index 92be45e..d18c8dd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetAbstract.java
@@ -30,7 +30,11 @@ public abstract class PropertyDefaultFacetAbstract extends FacetAbstract impleme
}
public PropertyDefaultFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ }
+
+ public PropertyDefaultFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetNone.java
index 26eb8aa..03f10fa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/PropertyDefaultFacetNone.java
@@ -22,10 +22,11 @@ package org.apache.isis.core.metamodel.facets.properties.defaults;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-public class PropertyDefaultFacetNone extends PropertyDefaultFacetAbstract {
+public class PropertyDefaultFacetNone
+extends PropertyDefaultFacetAbstract {
public PropertyDefaultFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
/**
@@ -36,9 +37,4 @@ public class PropertyDefaultFacetNone extends PropertyDefaultFacetAbstract {
return null;
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromDefaultedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromDefaultedFacet.java
index 3299986..99e6459 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromDefaultedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromDefaultedFacet.java
@@ -34,7 +34,7 @@ public class PropertyDefaultFacetDerivedFromDefaultedFacet extends FacetAbstract
public PropertyDefaultFacetDerivedFromDefaultedFacet(
final DefaultedFacet typeFacet, final FacetHolder holder) {
- super(PropertyDefaultFacet.class, holder, Derivation.NOT_DERIVED);
+ super(PropertyDefaultFacet.class, holder);
this.typeFacet = typeFacet;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java
index acdb4df..a7d2889 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java
@@ -41,8 +41,10 @@ public class PropertyDefaultFacetDerivedFromTypeFactory extends FacetFactoryAbst
@Override
public void process(final ProcessMethodContext processMethodContext) {
// don't overwrite any defaults that might already picked up
- final PropertyDefaultFacet existingDefaultFacet = processMethodContext.getFacetHolder().getFacet(PropertyDefaultFacet.class);
- if (existingDefaultFacet != null && !existingDefaultFacet.isFallback()) {
+ final PropertyDefaultFacet existingDefaultFacet = processMethodContext.getFacetHolder()
+ .lookupNonFallbackFacet(PropertyDefaultFacet.class)
+ .orElse(null);
+ if (existingDefaultFacet != null) {
return;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/dflt/MandatoryFacetOnProperyDefaultFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/dflt/MandatoryFacetOnProperyDefaultFactory.java
index 1978634..596b425 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/dflt/MandatoryFacetOnProperyDefaultFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/dflt/MandatoryFacetOnProperyDefaultFactory.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.properties.mandatory.dflt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactory;
@@ -47,11 +46,10 @@ public class MandatoryFacetOnProperyDefaultFactory extends FacetFactoryAbstract
@Override
public void process(final ProcessMethodContext processMethodContext) {
- FacetUtil.addFacet(create(processMethodContext.getFacetHolder()));
+ FacetUtil.addFacet(
+ MandatoryFacetDefault
+ .required(processMethodContext.getFacetHolder()));
}
- private MandatoryFacet create(final FacetHolder holder) {
- return new MandatoryFacetDefault(holder);
- }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/projection/ProjectingFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/projection/ProjectingFacetAbstract.java
index c0ce345..5f5a6d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/projection/ProjectingFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/projection/ProjectingFacetAbstract.java
@@ -23,7 +23,8 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class ProjectingFacetAbstract extends FacetAbstract
+public abstract class ProjectingFacetAbstract
+extends FacetAbstract
implements ProjectingFacet {
public static Class<? extends Facet> type() {
@@ -31,11 +32,7 @@ implements ProjectingFacet {
}
protected ProjectingFacetAbstract(final FacetHolder holder) {
- this( holder, Derivation.NOT_DERIVED);
- }
-
- protected ProjectingFacetAbstract(final FacetHolder holder, final Derivation derivation) {
- super( type(), holder, derivation);
+ super( type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyLayoutAnnotation.java
index af97c83..e666ead 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyLayoutAnnotation.java
@@ -23,7 +23,6 @@ import java.util.Map;
import java.util.Optional;
import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacetAbstract;
@@ -44,7 +43,7 @@ public class TypicalLengthFacetForPropertyLayoutAnnotation extends TypicalLength
private final int value;
private TypicalLengthFacetForPropertyLayoutAnnotation(int value, FacetHolder holder) {
- super(holder, FacetAbstract.Derivation.NOT_DERIVED);
+ super(holder);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyXml.java
index 9cb8fc3..ae7c961 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/TypicalLengthFacetForPropertyXml.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.properties.propertylayout;
import java.util.Map;
import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacetAbstract;
@@ -40,7 +39,7 @@ public class TypicalLengthFacetForPropertyXml extends TypicalLengthFacetAbstract
private final int value;
private TypicalLengthFacetForPropertyXml(int value, FacetHolder holder) {
- super(holder, FacetAbstract.Derivation.NOT_DERIVED);
+ super(holder);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthFacetOnPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthFacetOnPropertyAnnotation.java
index c496473..22dac06 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthFacetOnPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthFacetOnPropertyAnnotation.java
@@ -33,7 +33,7 @@ public class TypicalLengthFacetOnPropertyAnnotation extends TypicalLengthFacetAb
private final int value;
public TypicalLengthFacetOnPropertyAnnotation(final int value, final FacetHolder holder) {
- super(holder, Derivation.NOT_DERIVED);
+ super(holder);
this.value = value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/fromtype/TypicalLengthFacetOnPropertyDerivedFromType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/fromtype/TypicalLengthFacetOnPropertyDerivedFromType.java
index f6ea2de..ce6c7d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/fromtype/TypicalLengthFacetOnPropertyDerivedFromType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/fromtype/TypicalLengthFacetOnPropertyDerivedFromType.java
@@ -31,7 +31,7 @@ public class TypicalLengthFacetOnPropertyDerivedFromType extends TypicalLengthFa
private final TypicalLengthFacet typicalLengthFacet;
public TypicalLengthFacetOnPropertyDerivedFromType(final TypicalLengthFacet typicalLengthFacet, final FacetHolder holder) {
- super(holder, Derivation.DERIVED);
+ super(holder, Precedence.DERIVED);
this.typicalLengthFacet = typicalLengthFacet;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/clear/PropertyClearFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/clear/PropertyClearFacetAbstract.java
index 13e25af..1327145 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/clear/PropertyClearFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/clear/PropertyClearFacetAbstract.java
@@ -30,6 +30,6 @@ public abstract class PropertyClearFacetAbstract extends FacetAbstract implement
}
public PropertyClearFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacetAbstract.java
index 1c061bf..ca73e10 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacetAbstract.java
@@ -30,6 +30,6 @@ public abstract class PropertyInitializationFacetAbstract extends FacetAbstract
}
public PropertyInitializationFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacetAbstract.java
index ea42897..b80c2d1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacetAbstract.java
@@ -30,6 +30,6 @@ public abstract class PropertySetterFacetAbstract extends FacetAbstract implemen
}
public PropertySetterFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetAbstract.java
index a00e277..612157d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetAbstract.java
@@ -34,7 +34,11 @@ public abstract class PropertyValidateFacetAbstract extends FacetAbstract implem
}
public PropertyValidateFacetAbstract(final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
+ }
+
+ public PropertyValidateFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
+ super(type(), holder, precedence);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetNone.java
index 363b51d..b73b6f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/PropertyValidateFacetNone.java
@@ -22,10 +22,11 @@ package org.apache.isis.core.metamodel.facets.properties.validating;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-public class PropertyValidateFacetNone extends PropertyValidateFacetAbstract {
+public class PropertyValidateFacetNone
+extends PropertyValidateFacetAbstract {
public PropertyValidateFacetNone(final FacetHolder holder) {
- super(holder);
+ super(holder, Precedence.FALLBACK);
}
/**
@@ -39,9 +40,4 @@ public class PropertyValidateFacetNone extends PropertyValidateFacetAbstract {
return null;
}
- @Override
- public boolean isFallback() {
- return true;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/dflt/PropertyValidateFacetDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/dflt/PropertyValidateFacetDefault.java
index 968363c..3c95c5a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/dflt/PropertyValidateFacetDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/dflt/PropertyValidateFacetDefault.java
@@ -37,7 +37,7 @@ public class PropertyValidateFacetDefault extends FacetAbstract implements Prope
}
public PropertyValidateFacetDefault(final FacetHolder holder) {
- super(PropertyValidateFacet.class, holder, Derivation.NOT_DERIVED);
+ super(PropertyValidateFacet.class, holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java
index 2183842..c5e50c4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java
@@ -25,8 +25,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
public abstract class BigDecimalValueFacetAbstract extends FacetAbstract implements BigDecimalValueFacet {
- public BigDecimalValueFacetAbstract(Class<? extends Facet> facetType, FacetHolder holder, Derivation derivation) {
- super(facetType, holder, derivation);
+ public BigDecimalValueFacetAbstract(Class<? extends Facet> facetType, FacetHolder holder) {
+ super(facetType, holder);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java
index 639be8b..2885544 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java
@@ -53,11 +53,6 @@ implements ImageValueFacet {
}
@Override
- public boolean alwaysReplace() {
- return false;
- }
-
- @Override
public Facet getUnderlyingFacet() {
return null;
}
@@ -71,11 +66,6 @@ implements ImageValueFacet {
}
@Override
- public boolean isDerived() {
- return false;
- }
-
- @Override
public String titleString(final Object value) {
return "image";
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/imageawt/JavaAwtImageValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/imageawt/JavaAwtImageValueSemanticsProvider.java
index 2b54745..fac6753 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/imageawt/JavaAwtImageValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/imageawt/JavaAwtImageValueSemanticsProvider.java
@@ -72,11 +72,6 @@ extends ImageValueSemanticsProviderAbstract<BufferedImage> {
}
@Override
- public boolean isFallback() {
- return false;
- }
-
- @Override
public String toString() {
return "JavaAwtImageValueSemanticsProvider: ";
}
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 8cd79de..d3fa4e0 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
@@ -374,7 +374,8 @@ public class LayoutFacetUtil {
// -- HELPER
private static boolean isDoOp(final Facet facet) {
- return facet != null && !facet.isFallback();
+ return facet != null
+ && !facet.getPrecedence().isFallback();
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/DescribedAsFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/DescribedAsFacetTranslated.java
index abce92d..757c5a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/DescribedAsFacetTranslated.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/DescribedAsFacetTranslated.java
@@ -27,7 +27,9 @@ import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
-public class DescribedAsFacetTranslated extends FacetAbstract implements DescribedAsFacet {
+public class DescribedAsFacetTranslated
+extends FacetAbstract
+implements DescribedAsFacet {
private final TranslationContext context;
private final String originalText;
@@ -37,7 +39,7 @@ public class DescribedAsFacetTranslated extends FacetAbstract implements Describ
final TranslationContext context, final String originalText,
final TranslationService translationService,
final IdentifiedHolder holder) {
- super(DescribedAsFacet.class, holder, Derivation.NOT_DERIVED);
+ super(DescribedAsFacet.class, holder);
this.context = context;
this.originalText = originalText;
this.translationService = translationService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/NamedFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/NamedFacetTranslated.java
index ea439cd..2682e32 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/NamedFacetTranslated.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/NamedFacetTranslated.java
@@ -37,7 +37,7 @@ public class NamedFacetTranslated extends FacetAbstract implements NamedFacet {
final TranslationContext context, final String originalText,
final TranslationService translationService,
final IdentifiedHolder facetHolder) {
- super(NamedFacet.class, facetHolder, Derivation.NOT_DERIVED);
+ super(NamedFacet.class, facetHolder);
this.context = context;
this.originalText = originalText;
this.translationService = translationService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/PluralFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/PluralFacetTranslated.java
index d1fdca4..9be7de3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/PluralFacetTranslated.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/PluralFacetTranslated.java
@@ -35,7 +35,7 @@ public class PluralFacetTranslated extends FacetAbstract implements PluralFacet
private String originalText;
public PluralFacetTranslated(final NamedFacetTranslated facet, final FacetHolder facetHolder) {
- super(PluralFacet.class, facetHolder, Derivation.DERIVED);
+ super(PluralFacet.class, facetHolder, Precedence.DERIVED);
this.translationService = facet.translationService;
this.context = facet.context;
this.originalText = facet.originalText;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
index d1b52c0..d3a3529 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
@@ -42,7 +42,7 @@ public abstract class AuthorizationFacetAbstract extends FacetAbstract implement
public AuthorizationFacetAbstract(
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.authorizationManager = getAuthorizationManager();
this.authenticationContext = getAuthenticationContext();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java
index 61ecf7f..ed8e7ea 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java
@@ -20,18 +20,14 @@
package org.apache.isis.core.metamodel.postprocessors.members.navigation;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.id.LogicalType;
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.members.navigation.NavigationFacet;
import org.apache.isis.core.metamodel.facets.object.hidden.HiddenTypeFacet;
-import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.MixedIn;
import lombok.val;
@@ -44,7 +40,7 @@ public class NavigationFacetDerivedFromHiddenType extends FacetAbstract implemen
}
public NavigationFacetDerivedFromHiddenType(final FacetHolder holder, final ObjectSpecification navigatedType) {
- super(type(), holder, Derivation.DERIVED);
+ super(type(), holder);
this.navigatedType = navigatedType;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/object/DeriveProjectionFacetsPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/object/DeriveProjectionFacetsPostProcessor.java
index e354ccc..21e0760 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/object/DeriveProjectionFacetsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/object/DeriveProjectionFacetsPostProcessor.java
@@ -19,6 +19,8 @@
package org.apache.isis.core.metamodel.postprocessors.object;
+import javax.annotation.Nullable;
+
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
@@ -77,8 +79,10 @@ extends ObjectSpecificationPostProcessorAbstract {
protected void doPostProcess(ObjectSpecification objectSpecification, OneToManyAssociation coll) {
}
- private static boolean canOverwrite(final Facet facet) {
- return facet == null || facet.isFallback() || facet.isDerived();
+ private static boolean canOverwrite(final @Nullable Facet existingFacet) {
+ return existingFacet == null
+ || existingFacet.getPrecedence().isFallback()
+ || existingFacet.getPrecedence().isDerived();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
index aa07dea..25fad50 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
@@ -268,7 +268,8 @@ public class DomainMemberDefault implements DomainMember {
}
private static String interpretFacet(final Facet facet) {
- if (facet == null || facet.isFallback()) {
+ if (facet == null
+ || facet.getPrecedence().isFallback()) {
return "";
}
if (facet instanceof ImperativeFacet) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java
index b10e475..8a1a1f5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java
@@ -366,7 +366,7 @@ class MetaModelExporter {
final List<org.apache.isis.schema.metamodel.v2.Facet> facetList = facets.getFacet();
facetHolder.streamFacets()
- .filter(facet -> !facet.isFallback() || !config.isIgnoreNoop())
+ .filter(facet -> !facet.getPrecedence().isFallback() || !config.isIgnoreNoop())
.map(facet -> asXsdType(facet, config))
.forEach(facetList::add);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index e9640f5..8376cac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -554,8 +554,9 @@ public class FacetedMethodsBuilder {
* @param method
*/
private boolean isMixinMain(Method method) {
- val mixinFacet = inspectedTypeSpec.getFacet(MixinFacet.class);
- if(mixinFacet==null || mixinFacet.isFallback()) {
+ val mixinFacet = inspectedTypeSpec.lookupNonFallbackFacet(MixinFacet.class)
+ .orElse(null);
+ if(mixinFacet==null) {
return false;
}
if(inspectedTypeSpec.isLessThan(IntrospectionState.FULLY_INTROSPECTED)) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
index e02718a..90a9cde 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
@@ -424,7 +424,7 @@ implements ObjectAction {
public Can<ManagedObject> getDefaults(final ManagedObject target) {
val actionDefaultsFacet = getFacet(ActionDefaultsFacet.class);
- if (!actionDefaultsFacet.isFallback()) {
+ if (!actionDefaultsFacet.getPrecedence().isFallback()) {
// use the old defaultXxx approach
@@ -478,7 +478,7 @@ implements ObjectAction {
final ActionChoicesFacet facet = getFacet(ActionChoicesFacet.class);
val parameters = getParameters();
- if (!facet.isFallback()) {
+ if (!facet.getPrecedence().isFallback()) {
// using the old choicesXxx() approach
paramChoicesVector = facet.getChoices(target,
interactionInitiatedBy);
@@ -502,7 +502,7 @@ implements ObjectAction {
val paramSpec = param.getSpecification();
val paramFacet = param.getFacet(ActionParameterChoicesFacet.class);
- if (paramFacet != null && !paramFacet.isFallback()) {
+ if (paramFacet != null && !paramFacet.getPrecedence().isFallback()) {
val visibleChoices = paramFacet.getChoices(
paramSpec,
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 c3ebae6..6cb7503 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
@@ -241,7 +241,7 @@ implements ObjectActionParameter, HasFacetHolder {
val paramSpec = getSpecification();
val defaultsFacet = getFacet(ActionParameterDefaultsFacet.class);
- if (defaultsFacet != null && !defaultsFacet.isFallback()) {
+ if (defaultsFacet != null && !defaultsFacet.getPrecedence().isFallback()) {
final Object paramValuePojo = defaultsFacet.getDefault(pendingArgs);
return ManagedObjects.emptyToDefault(
!isOptional(),
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 5e8d161..e58a6ee 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
@@ -572,7 +572,7 @@ implements ObjectSpecification {
if(facet==null) {
return false;
}
- if(!facet.isFallback()) {
+ if(!facet.getPrecedence().isFallback()) {
return true;
}
if(noopFacet == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
index 9d0ca21..ff4801a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
@@ -219,11 +219,12 @@ implements OneToOneAssociation {
// -- defaults
@Override
public ManagedObject getDefault(final ManagedObject ownerAdapter) {
- PropertyDefaultFacet propertyDefaultFacet = getFacet(PropertyDefaultFacet.class);
+ PropertyDefaultFacet propertyDefaultFacet = lookupNonFallbackFacet(PropertyDefaultFacet.class)
+ .orElse(null);
// if no default on the association, attempt to find a default on the
// specification (eg an int should
// default to 0).
- if (propertyDefaultFacet == null || propertyDefaultFacet.isFallback()) {
+ if (propertyDefaultFacet == null) {
propertyDefaultFacet = this.getSpecification().getFacet(PropertyDefaultFacet.class);
}
if (propertyDefaultFacet == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java
index 8360a6f..dcfb841 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java
@@ -57,7 +57,8 @@ public class MetaModelValidatorForConflictingOptionality {
return false;
}
final boolean conflicting =
- underlyingFacet != null && facet.isInvertedSemantics() != underlyingFacet.isInvertedSemantics();
+ underlyingFacet != null
+ && facet.getSemantics() != underlyingFacet.getSemantics();
return conflicting;
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facetapi/FacetAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facetapi/FacetAbstractTest.java
index f59a49f..633fcc0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facetapi/FacetAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facetapi/FacetAbstractTest.java
@@ -31,7 +31,7 @@ public class FacetAbstractTest extends TestCase {
public static class ConcreteFacet extends FacetAbstract {
public ConcreteFacet(final Class<? extends Facet> facetType, final FacetHolder holder) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
index 9e9c1d9..36e2bf4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
@@ -95,7 +95,7 @@ public class TitleFacetViaMethodsFactoryTest extends AbstractFacetFactoryTest {
* a none no-op implementation.
*/
public void testTitleFacetMethodUsingToStringIsClassifiedAsANoop() {
- assertTrue(new TitleFacetViaToStringMethod(null, facetedMethod).isFallback());
+ assertTrue(new TitleFacetViaToStringMethod(null, facetedMethod).getPrecedence().isFallback());
}
public void testNoExplicitTitleOrToStringMethod() {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/interactions/InteractionUtils_isA_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/interactions/InteractionUtils_isA_Test.java
index 1e45b4b..d30ceaf 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/interactions/InteractionUtils_isA_Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/interactions/InteractionUtils_isA_Test.java
@@ -25,14 +25,15 @@ import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
-import junit.framework.TestCase;
import lombok.val;
+import junit.framework.TestCase;
+
public class InteractionUtils_isA_Test extends TestCase {
public class FooSuperFacet extends FacetAbstract {
public FooSuperFacet(final Class<? extends Facet> facetType, final FacetHolder holder) {
- super(facetType, holder, Derivation.NOT_DERIVED);
+ super(facetType, holder);
}
}
@@ -50,7 +51,7 @@ public class InteractionUtils_isA_Test extends TestCase {
public class BarFacet extends FacetAbstract {
public BarFacet(final FacetHolder holder) {
- super(BarFacet.class, holder, Derivation.NOT_DERIVED);
+ super(BarFacet.class, holder);
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
index f116e5d..3f92176 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
@@ -48,6 +48,8 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import lombok.val;
+
public class ObjectAssociationAbstractTest_alwaysHidden {
@Rule
@@ -213,16 +215,17 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
final Where where,
final FacetedMethod holder,
final boolean noop) {
- HiddenFacet facet = new HiddenFacetAbstract(HiddenFacet.class, where, holder) {
+
+ val precedence = noop
+ ? Facet.Precedence.FALLBACK
+ : Facet.Precedence.DEFAULT;
+
+ HiddenFacet facet = new HiddenFacetAbstract(HiddenFacet.class, where, holder, precedence) {
+
@Override
protected String hiddenReason(final ManagedObject target, final Where whereContext) {
return null;
}
-
- @Override
- public boolean isFallback() {
- return noop;
- }
};
FacetUtil.addFacet(facet);
}
diff --git a/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacetDefault.java b/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacetDefault.java
index 977f159..f8d962f 100644
--- a/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacetDefault.java
+++ b/extensions/security/secman/integration/src/main/java/org/apache/isis/extensions/secman/integration/facets/TenantedAuthorizationFacetDefault.java
@@ -51,7 +51,7 @@ public class TenantedAuthorizationFacetDefault extends FacetAbstract implements
final Provider<QueryResultsCache> queryResultsCacheProvider,
final UserService userService,
final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
+ super(type(), holder);
this.evaluators = evaluators;
this.applicationUserRepository = applicationUserRepository;
this.queryResultsCacheProvider = queryResultsCacheProvider;
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
index 9b0472b..187866f 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
@@ -74,7 +74,7 @@ implements EntityFacet {
public JdoEntityFacet(
final FacetHolder holder) {
- super(EntityFacet.class, holder, Derivation.NOT_DERIVED);
+ super(EntityFacet.class, holder);
super.setFacetAliasType(EntityFacet.class);
}
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityFacetAbstract.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityFacetAbstract.java
index 4a309bb..006175b 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityFacetAbstract.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityFacetAbstract.java
@@ -39,7 +39,7 @@ JdoDatastoreIdentityFacet {
private final IdGeneratorStrategy strategy;
public JdoDatastoreIdentityFacetAbstract(IdGeneratorStrategy strategy, FacetHolder facetHolder) {
- super(JdoDatastoreIdentityFacetAbstract.type(), facetHolder, Derivation.NOT_DERIVED);
+ super(JdoDatastoreIdentityFacetAbstract.type(), facetHolder);
this.strategy = strategy;
}
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/domainobject/objectspecid/LogicalTypeFacetForJdoPersistenceCapableAnnotation.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/domainobject/objectspecid/LogicalTypeFacetForJdoPersistenceCapableAnnotation.java
index ebb5e53..4cff330 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/domainobject/objectspecid/LogicalTypeFacetForJdoPersistenceCapableAnnotation.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/domainobject/objectspecid/LogicalTypeFacetForJdoPersistenceCapableAnnotation.java
@@ -36,7 +36,7 @@ extends LogicalTypeFacetAbstract {
final Class<?> correspondingClass,
final FacetHolder holder) {
- if(persistenceCapableFacet.isFallback()) {
+ if(persistenceCapableFacet.getPrecedence().isFallback()) {
return null;
}
final String schema = persistenceCapableFacet.getSchema();
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAnnotation.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAnnotation.java
index 22435f6..ed0584a 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAnnotation.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetAnnotation.java
@@ -41,7 +41,7 @@ implements JdoPersistenceCapableFacet {
final IdentityType identityType,
final FacetHolder holder) {
- super(JdoPersistenceCapableFacet.class, holder, Derivation.NOT_DERIVED);
+ super(JdoPersistenceCapableFacet.class, holder);
super.setFacetAliasType(EntityFacet.class);
this.schema = schemaName;
this.table = tableOrTypeName;
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryFacetAbstract.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryFacetAbstract.java
index d3f2c3d..0bfaab9 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryFacetAbstract.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryFacetAbstract.java
@@ -49,7 +49,7 @@ implements JdoQueryFacet {
final @NonNull FacetHolder holder,
final @NonNull Can<Query> jdoNamedQueries) {
- super(JdoQueryFacetAbstract.type(), holder, Derivation.NOT_DERIVED);
+ super(JdoQueryFacetAbstract.type(), holder);
val objSpec = (ObjectSpecification) getFacetHolder();
this.namedQueries = jdoNamedQueries.map(jdoNamedQuery->new JdoNamedQuery(jdoNamedQuery, objSpec));
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
index d13ebbe..4c3ed57 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -65,7 +65,8 @@ implements MetaModelRefiner {
.orElse(null);
if (jdoColumnAnnotation == null) {
- if(existingFacet != null && !existingFacet.isFallback()) {
+ if(existingFacet != null
+ && !existingFacet.getPrecedence().isFallback()) {
// do nothing
} else {
final BigDecimalValueFacet facet = new BigDecimalFacetFallback(holder);
@@ -78,7 +79,8 @@ implements MetaModelRefiner {
// if there was an *explicit* value defined on the @Column annotation that is incompatible with existing.
Integer existingLength = null;
Integer existingScale = null;
- if(existingFacet != null && !existingFacet.isFallback()) {
+ if(existingFacet != null
+ && !existingFacet.getPrecedence().isFallback()) {
existingLength = existingFacet.getPrecision();
existingScale = existingFacet.getScale();
}
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
index 2c2599c..632d84a 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
@@ -36,7 +36,7 @@ public class BigDecimalFacetDerivedFromJdoColumn extends BigDecimalValueFacetAbs
}
public BigDecimalFacetDerivedFromJdoColumn(final FacetHolder holder, final Integer precision, final Integer scale) {
- super(BigDecimalFacetDerivedFromJdoColumn.type(), holder, Derivation.NOT_DERIVED);
+ super(BigDecimalFacetDerivedFromJdoColumn.type(), holder);
this.precision = precision;
this.scale = scale;
}
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
index 3c0f363..02f9c07 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
@@ -32,7 +32,7 @@ public class BigDecimalFacetFallback extends BigDecimalValueFacetAbstract {
}
public BigDecimalFacetFallback(final FacetHolder holder) {
- super(BigDecimalFacetFallback.type(), holder, Derivation.NOT_DERIVED);
+ super(BigDecimalFacetFallback.type(), holder);
}
@Override
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
index 7ba7c32..348a975 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
@@ -97,7 +97,8 @@ implements MetaModelRefiner {
// however, if a @Column was explicitly provided, and the underlying facet
// was the simple MandatoryFacetDefault (from an absence of @Optional or @Mandatory),
// then don't chain, simply replace.
- if(facet instanceof MandatoryFacetDerivedFromJdoColumn && facet.getUnderlyingFacet() instanceof MandatoryFacetDefault) {
+ if(facet instanceof MandatoryFacetDerivedFromJdoColumn
+ && facet.getUnderlyingFacet() instanceof MandatoryFacetDefault) {
facet.setUnderlyingFacet(null);
}
}
@@ -148,14 +149,15 @@ implements MetaModelRefiner {
if(facet instanceof MandatoryFacetDerivedFromJdoColumn) {
- if(underlying.isInvertedSemantics() == facet.isInvertedSemantics()) {
+ if(underlying.getSemantics() == facet.getSemantics()) {
return;
}
- if(underlying.isInvertedSemantics()) {
+ if(underlying.getSemantics().isOptional()) {
// ie @Optional
ValidationFailure.raiseFormatted(
association,
+ //TODO @Optional is history
"%s: incompatible usage of Isis' @Optional annotation and @javax.jdo.annotations.Column; use just @javax.jdo.annotations.Column(allowsNull=\"...\")",
association.getIdentifier().getFullIdentityString());
} else {
@@ -168,13 +170,14 @@ implements MetaModelRefiner {
if(facet instanceof MandatoryFacetInferredFromAbsenceOfJdoColumn) {
- if(underlying.isInvertedSemantics() == facet.isInvertedSemantics()) {
+ if(underlying.getSemantics() == facet.getSemantics()) {
return;
}
- if(underlying.isInvertedSemantics()) {
+ if(underlying.getSemantics().isOptional()) {
// ie @Optional
ValidationFailure.raiseFormatted(
association,
+ //TODO @Optional is history
"%s: incompatible usage of Isis' @Optional annotation and @javax.jdo.annotations.Column; use just @javax.jdo.annotations.Column(allowsNull=\"...\")",
association.getIdentifier().getFullIdentityString());
} else {
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
index d6f86d5..22ea8a5 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -81,7 +81,7 @@ implements MetaModelRefiner {
final MaxLengthFacet facet = new MaxLengthFacetDerivedFromJdoColumn(jdoColumnAnnotation.length(), holder);
- if(!existingFacet.isFallback()) {
+ if(!existingFacet.getPrecedence().isFallback()) {
// will raise violation later
facet.setUnderlyingFacet(existingFacet);
}
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryDerivedFromJdoColumnAnnotationFacetFactoryTest.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryDerivedFromJdoColumnAnnotationFacetFactoryTest.java
index 0159d50..dfd4a04 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryDerivedFromJdoColumnAnnotationFacetFactoryTest.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryDerivedFromJdoColumnAnnotationFacetFactoryTest.java
@@ -30,7 +30,7 @@ import org.apache.isis.persistence.jdo.metamodel.testing.AbstractFacetFactoryTes
import lombok.val;
-public class MandatoryDerivedFromJdoColumnAnnotationFacetFactoryTest
+public class MandatoryDerivedFromJdoColumnAnnotationFacetFactoryTest
extends AbstractFacetFactoryTest {
private MandatoryFromJdoColumnAnnotationFacetFactory facetFactory;
@@ -67,7 +67,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetInferredFromAbsenceOfJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(false));
+ assertThat(facet.getSemantics().isOptional(), is(false));
}
public void testPrimitiveWithNoAllowsNull_isMandatory() throws Exception {
@@ -77,7 +77,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(false));
+ assertThat(facet.getSemantics().isOptional(), is(false));
}
public void testPrimitiveWithAllowsNullFalse() throws Exception {
@@ -87,7 +87,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(false));
+ assertThat(facet.getSemantics().isOptional(), is(false));
}
public void testPrimitiveWithAllowsNullTrue() throws Exception {
@@ -97,7 +97,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(true));
+ assertThat(facet.getSemantics().isOptional(), is(true));
}
public void testReferenceWithNoAnnotation_isOptional() throws Exception {
@@ -107,7 +107,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetInferredFromAbsenceOfJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(true));
+ assertThat(facet.getSemantics().isOptional(), is(true));
}
public void testReferenceWithNoAllowsNull_isOptional() throws Exception {
@@ -117,7 +117,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(true));
+ assertThat(facet.getSemantics().isOptional(), is(true));
}
public void testReferenceWithAllowsNullFalse() throws Exception {
@@ -127,7 +127,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(false));
+ assertThat(facet.getSemantics().isOptional(), is(false));
}
public void testReferenceWithAllowsNullTrue() throws Exception {
@@ -137,7 +137,7 @@ extends AbstractFacetFactoryTest {
final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn);
- assertThat(facet.isInvertedSemantics(), is(true));
+ assertThat(facet.getSemantics().isOptional(), is(true));
}
}
diff --git a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/metamodel/JpaEntityFacetFactory.java b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/metamodel/JpaEntityFacetFactory.java
index 7c2730a..47af4be 100644
--- a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/metamodel/JpaEntityFacetFactory.java
+++ b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/metamodel/JpaEntityFacetFactory.java
@@ -43,6 +43,7 @@ import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.commons.internal.memento._Mementos;
import org.apache.isis.commons.internal.memento._Mementos.SerializingAdapter;
+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.facetapi.FeatureType;
@@ -95,15 +96,11 @@ public class JpaEntityFacetFactory extends FacetFactoryAbstract {
final Class<?> entityClass,
final @NonNull ServiceRegistry serviceRegistry) {
- super(EntityFacet.class, holder);
+ super(EntityFacet.class, holder, Facet.Precedence.EARLY);
this.entityClass = entityClass;
this.serviceRegistry = serviceRegistry;
}
- @Override public boolean isDerived() { return false;}
- @Override public boolean isFallback() { return false;}
- @Override public boolean alwaysReplace() { return true;}
-
// -- ENTITY FACET
@Override
diff --git a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/domainobject/objectspecid/LogicalTypeFacetForTableAnnotation.java b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/domainobject/objectspecid/LogicalTypeFacetForTableAnnotation.java
index e04492b..6547e7c 100644
--- a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/domainobject/objectspecid/LogicalTypeFacetForTableAnnotation.java
+++ b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/domainobject/objectspecid/LogicalTypeFacetForTableAnnotation.java
@@ -35,7 +35,7 @@ extends LogicalTypeFacetAbstract {
final Class<?> correspondingClass,
final FacetHolder holder) {
- if(tableFacet.isFallback()) {
+ if(tableFacet.getPrecedence().isFallback()) {
return null;
}
final String schema = tableFacet.getSchema();
diff --git a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotationImpl.java b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotationImpl.java
index c635eb6..a22a702 100644
--- a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotationImpl.java
+++ b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotationImpl.java
@@ -35,7 +35,7 @@ implements JpaTableFacetAnnotation {
final String tableOrTypeName,
final FacetHolder holder) {
- super(JpaTableFacetAnnotation.class, holder, Derivation.NOT_DERIVED);
+ super(JpaTableFacetAnnotation.class, holder);
this.schema = schemaName;
this.tableOrTypeName = tableOrTypeName;
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
index a3cae31..776973c 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
@@ -83,10 +83,9 @@ public class ActionParameterDescriptionReprRenderer extends AbstractTypeFeatureR
representation.mapPut("name", getObjectFeature().getName());
representation.mapPut("number", getObjectFeature().getNumber());
representation.mapPut("optional", getObjectFeature().isOptional());
- final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class);
- if (maxLength != null && !maxLength.isFallback()) {
- representation.mapPut("maxLength", maxLength.value());
- }
+ getObjectFeature()
+ .lookupNonFallbackFacet(MaxLengthFacet.class)
+ .ifPresent(maxLengthFacet->representation.mapPut("maxLength", maxLengthFacet.value()));
}
@Override
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
index 0cc5a62..3375ccd 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
@@ -49,10 +49,9 @@ public class PropertyDescriptionReprRenderer extends AbstractTypeMemberReprRende
@Override
protected void addPropertiesSpecificToFeature() {
representation.mapPut("optional", !getObjectFeature().isMandatory());
- final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class);
- if (maxLength != null && !maxLength.isFallback()) {
- representation.mapPut("maxLength", maxLength.value());
- }
+ getObjectFeature()
+ .lookupNonFallbackFacet(MaxLengthFacet.class)
+ .ifPresent(maxLengthFacet->representation.mapPut("maxLength", maxLengthFacet.value()));
}
private void addLinkToReturnTypeIfAny() {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
index efc3bd8..077ef43 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
@@ -36,7 +36,8 @@ public class StringPanelFactory extends ComponentFactoryScalarAbstract {
@Override
public Component createComponent(final String id, final ScalarModel scalarModel) {
final MultiLineFacet multiLineFacet = scalarModel.getFacet(MultiLineFacet.class);
- if (multiLineFacet != null && !multiLineFacet.isFallback()) {
+ if (multiLineFacet != null
+ && !multiLineFacet.getPrecedence().isFallback()) {
return new MultiLineStringPanel(id, scalarModel);
} else {
return new StringPanel(id, scalarModel);