You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2022/08/02 15:46:45 UTC

[isis] 01/05: ISIS-3108: makes EntityPublishingChangeFacet explicit

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 738632b133d74bbe43c3bd05cb0f3defdbe7ca44
Author: Dan Haywood <da...@haywood-associates.co.uk>
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);
-    }
-
-}