This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch ISIS-3108 in repository https://gitbox.apache.org/repos/asf/isis.git
commit 25fa9673030bd82f2838275315f71211576503be Author: Dan Haywood <[email protected]> AuthorDate: Tue Aug 2 16:13:36 2022 +0100 ISIS-3108: makes EntityPublishingChangeFacet explicit --- .../applib/mixins/system/DomainChangeRecord.java | 6 +++++ ...gePublishingFacetForDomainObjectAnnotation.java | 16 +++++++----- ...FacetForDomainObjectAnnotationAsConfigured.java | 4 +-- ...tityChangePublishingFacetFromConfiguration.java | 4 +-- .../entitychange/EntityChangePublishingFacet.java | 9 +++---- .../EntityChangePublishingFacetAbstract.java | 8 +++++- .../EntityChangePublishingFacetImpl.java | 30 ---------------------- 7 files changed, 30 insertions(+), 47 deletions(-) diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord.java index 55479e8bd1..346eade45f 100644 --- a/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord.java +++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord.java @@ -23,11 +23,13 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.UUID; +import org.apache.isis.applib.annotation.DomainObject; import org.apache.isis.applib.annotation.Editing; import org.apache.isis.applib.annotation.Optionality; import org.apache.isis.applib.annotation.Parameter; import org.apache.isis.applib.annotation.Property; import org.apache.isis.applib.annotation.PropertyLayout; +import org.apache.isis.applib.annotation.Publishing; import org.apache.isis.applib.annotation.Where; import org.apache.isis.applib.mixins.security.HasUsername; import org.apache.isis.applib.services.bookmark.Bookmark; @@ -41,6 +43,10 @@ import org.apache.isis.applib.services.bookmark.HasTarget; * * @since 2.0 {@index} */ +@DomainObject( + editing = Editing.DISABLED, + entityChangePublishing = Publishing.DISABLED +) public interface DomainChangeRecord extends HasInteractionId, HasUsername, HasTarget { diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotation.java index 47edfe1b5b..92101d7127 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotation.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotation.java @@ -48,24 +48,26 @@ extends EntityChangePublishingFacetAbstract { val publishingPolicy = PublishingPolicies.entityChangePublishingPolicy(configuration); switch (publishingPolicy) { case NONE: - return Optional.empty(); + return Optional.of(entityChangePublishingIfAny.isPresent() + ? new EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured(holder, false) + : new EntityChangePublishingFacetFromConfiguration(holder, false)); default: return Optional.of(entityChangePublishingIfAny.isPresent() - ? new EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured(holder) - : new EntityChangePublishingFacetFromConfiguration(holder)); + ? new EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured(holder, true) + : new EntityChangePublishingFacetFromConfiguration(holder, true)); } case DISABLED: - return null; + return Optional.of(new EntityChangePublishingFacetForDomainObjectAnnotation(holder, false)); case ENABLED: - return Optional.of(new EntityChangePublishingFacetForDomainObjectAnnotation(holder)); + return Optional.of(new EntityChangePublishingFacetForDomainObjectAnnotation(holder, true)); default: throw _Exceptions.unmatchedCase(publish); } } - protected EntityChangePublishingFacetForDomainObjectAnnotation(final FacetHolder holder) { - super(holder); + protected EntityChangePublishingFacetForDomainObjectAnnotation(final FacetHolder holder, boolean enabled) { + super(holder, enabled); } } diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured.java index 2429a9f47a..f2ce35af1e 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured.java @@ -24,8 +24,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder; public class EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured extends EntityChangePublishingFacetForDomainObjectAnnotation { - public EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured(final FacetHolder facetHolder) { - super(facetHolder); + public EntityChangePublishingFacetForDomainObjectAnnotationAsConfigured(final FacetHolder facetHolder, final boolean enabled) { + super(facetHolder, enabled); } } diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetFromConfiguration.java index 34f5ed088c..ca4514edd4 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetFromConfiguration.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/entitychangepublishing/EntityChangePublishingFacetFromConfiguration.java @@ -31,8 +31,8 @@ import org.apache.isis.core.metamodel.facets.object.publish.entitychange.EntityC public class EntityChangePublishingFacetFromConfiguration extends EntityChangePublishingFacetAbstract { - public EntityChangePublishingFacetFromConfiguration(final FacetHolder facetHolder) { - super(facetHolder); + public EntityChangePublishingFacetFromConfiguration(final FacetHolder facetHolder, final boolean enabled) { + super(facetHolder, enabled); } } diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacet.java index bb0cc307c3..8d9d0e3acc 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacet.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacet.java @@ -45,11 +45,10 @@ public interface EntityChangePublishingFacet extends Facet { } } - val auditableFacet = facetHolder.getFacet(EntityChangePublishingFacet.class); - if(auditableFacet == null) { - return false; - } - return true; + val entityChangePublishingFacet = facetHolder.getFacet(EntityChangePublishingFacet.class); + return entityChangePublishingFacet != null && entityChangePublishingFacet.isEnabled(); } + boolean isEnabled(); + } 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 db4b5553c7..a08cc331e0 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 @@ -22,6 +22,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; +import lombok.Getter; + public abstract class EntityChangePublishingFacetAbstract extends FacetAbstract implements EntityChangePublishingFacet { @@ -30,8 +32,12 @@ implements EntityChangePublishingFacet { return EntityChangePublishingFacet.class; } - public EntityChangePublishingFacetAbstract(final FacetHolder facetHolder) { + @Getter + private final boolean enabled; + + public EntityChangePublishingFacetAbstract(final FacetHolder facetHolder, boolean enabled) { super(EntityChangePublishingFacetAbstract.type(), facetHolder); + this.enabled = enabled; } } diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetImpl.java deleted file mode 100644 index b74d44d093..0000000000 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/publish/entitychange/EntityChangePublishingFacetImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.isis.core.metamodel.facets.object.publish.entitychange; - -import org.apache.isis.core.metamodel.facetapi.FacetHolder; - -public class EntityChangePublishingFacetImpl -extends EntityChangePublishingFacetAbstract { - - public EntityChangePublishingFacetImpl(final FacetHolder facetHolder) { - super(facetHolder); - } - -}
