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);
- }
-
-}