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 2014/05/10 09:18:05 UTC
git commit: ISIS-550: removed WrapperPolicy,
replaced with ExecutionMode#SKIP_RULES
Repository: isis
Updated Branches:
refs/heads/ISIS-550 c1a259667 -> c2b250f01
ISIS-550: removed WrapperPolicy, replaced with ExecutionMode#SKIP_RULES
In addition:
- all the events inherit from java.util.EventObject
- additional convenience methods wrapNoExecute(.) and wrapSkipRules(.) in WrapperFactory.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c2b250f0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c2b250f0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c2b250f0
Branch: refs/heads/ISIS-550
Commit: c2b250f01e0b6ace2a71ac1c25d90694d50fc65e
Parents: c1a2596
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat May 10 08:08:45 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat May 10 08:08:45 2014 +0100
----------------------------------------------------------------------
.../annotation/PostsActionInvokedEvent.java | 7 ---
.../annotation/PostsCollectionAddedToEvent.java | 7 ---
.../PostsCollectionRemovedFromEvent.java | 7 ---
.../annotation/PostsPropertyChangedEvent.java | 7 ---
.../isis/applib/annotation/WrapperPolicy.java | 35 -----------
.../services/eventbus/ActionInvokedEvent.java | 22 ++++---
.../eventbus/CollectionAddedToEvent.java | 28 ++++-----
.../eventbus/CollectionRemovedFromEvent.java | 27 ++++-----
.../services/eventbus/PropertyChangedEvent.java | 15 +++--
.../applib/services/wrapper/WrapperFactory.java | 52 ++++++++++++++++-
.../facets/PostsEventWithWrapperPolicy.java | 61 --------------------
.../event/PostsCollectionAddedToEventFacet.java | 3 +-
...ostsCollectionAddedToEventFacetAbstract.java | 13 +----
.../PostsCollectionRemovedFromEventFacet.java | 3 +-
...CollectionRemovedFromEventFacetAbstract.java | 13 +----
.../event/PostsPropertyChangedEventFacet.java | 3 +-
.../PostsPropertyChangedEventFacetAbstract.java | 13 +----
...ctionAddedToEventAnnotationFacetFactory.java | 4 +-
...tsCollectionAddedToEventFacetAnnotation.java | 4 +-
...nRemovedFromEventAnnotationFacetFactory.java | 4 +-
...llectionRemovedFromEventFacetAnnotation.java | 4 +-
...pertyChangedEventAnnotationFacetFactory.java | 4 +-
...ostsPropertyChangedEventFacetAnnotation.java | 4 +-
...nAddedEventFacetAnnotationTest_newEvent.java | 4 +-
...emovedEventFacetAnnotationTest_newEvent.java | 4 +-
...hangedEventFacetAnnotationTest_newEvent.java | 4 +-
.../core/wrapper/WrapperFactoryAbstract.java | 10 ++++
.../handlers/DomainObjectInvocationHandler.java | 53 ++++-------------
.../dom/src/main/java/dom/todo/ToDoItem.java | 13 +++--
29 files changed, 159 insertions(+), 269 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsActionInvokedEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsActionInvokedEvent.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsActionInvokedEvent.java
index 6b772e7..ba11074 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsActionInvokedEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsActionInvokedEvent.java
@@ -26,7 +26,6 @@ import java.lang.annotation.Target;
import org.apache.isis.applib.services.eventbus.ActionInvokedEvent;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
/**
* Applies only to actions; any changes should be propagated as events to subscribers.
@@ -58,10 +57,4 @@ public @interface PostsActionInvokedEvent {
*/
Class<? extends ActionInvokedEvent<?>> value() default ActionInvokedEvent.Default.class;
- /**
- * If invoked through the {@link WrapperFactory}, whether business rules ("see it, use it, do it")
- * should be enforced or not.
- */
- WrapperPolicy wrapperPolicy() default WrapperPolicy.ENFORCE_RULES;
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionAddedToEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionAddedToEvent.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionAddedToEvent.java
index 04037b8..d3a8f31 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionAddedToEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionAddedToEvent.java
@@ -60,11 +60,4 @@ public @interface PostsCollectionAddedToEvent {
* This subclass must provide a no-arg constructor; the fields are set reflectively.
*/
Class<? extends CollectionAddedToEvent<?,?>> value() default CollectionAddedToEvent.Default.class;
-
- /**
- * If invoked through the {@link WrapperFactory}, whether business rules ("see it, use it, do it")
- * should be enforced or not.
- */
- WrapperPolicy wrapperPolicy() default WrapperPolicy.ENFORCE_RULES;
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionRemovedFromEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionRemovedFromEvent.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionRemovedFromEvent.java
index f94851f..40b194f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionRemovedFromEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsCollectionRemovedFromEvent.java
@@ -25,7 +25,6 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.apache.isis.applib.services.eventbus.CollectionRemovedFromEvent;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
/**
* Applies only to collections; any changes should be propagated as events to subscribers.
@@ -61,10 +60,4 @@ public @interface PostsCollectionRemovedFromEvent {
*/
Class<? extends CollectionRemovedFromEvent<?,?>> value() default CollectionRemovedFromEvent.Default.class;
- /**
- * If invoked through the {@link WrapperFactory}, whether business rules ("see it, use it, do it")
- * should be enforced or not.
- */
- WrapperPolicy wrapperPolicy() default WrapperPolicy.ENFORCE_RULES;
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsPropertyChangedEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsPropertyChangedEvent.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsPropertyChangedEvent.java
index b55c961..81a6219 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsPropertyChangedEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PostsPropertyChangedEvent.java
@@ -25,7 +25,6 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
/**
* Applies only to properties; any changes should be propagated as events to subscribers.
@@ -57,10 +56,4 @@ public @interface PostsPropertyChangedEvent {
*/
Class<? extends PropertyChangedEvent<?,?>> value() default PropertyChangedEvent.Default.class;
- /**
- * If invoked through the {@link WrapperFactory}, whether business rules ("see it, use it, do it")
- * should be enforced or not.
- */
- WrapperPolicy wrapperPolicy() default WrapperPolicy.ENFORCE_RULES;
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/annotation/WrapperPolicy.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/WrapperPolicy.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/WrapperPolicy.java
deleted file mode 100644
index a69c817..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/WrapperPolicy.java
+++ /dev/null
@@ -1,35 +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.applib.annotation;
-
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
-
-/**
- * An attribute of {@link PostsPropertyChangedEvent}, {@link PostsCollectionAddedToEvent} and other related annotations;
- * is a hint to indicate that if the object member is interacted with through a {@link WrapperFactory}, then whether
- * business rules ("see it, use it, do it") should be enforced or not.
- *
- * <p>
- * This provides a half-way house between strictly UI-interactions and fully programmatic interactions, so that an
- * event can be fired programmatically even if the object is disabled in the UI.
- */
-public enum WrapperPolicy {
- ENFORCE_RULES,
- SKIP_RULES
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionInvokedEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionInvokedEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionInvokedEvent.java
index 2140525..7dabf9b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionInvokedEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionInvokedEvent.java
@@ -18,14 +18,17 @@
*/
package org.apache.isis.applib.services.eventbus;
-import org.apache.isis.applib.annotation.PostsPropertyChangedEvent;
+import org.apache.isis.applib.annotation.PostsActionInvokedEvent;
import org.apache.isis.applib.util.ObjectContracts;
-public abstract class ActionInvokedEvent<S> {
+public abstract class ActionInvokedEvent<S> extends java.util.EventObject {
- public static class Default extends ActionInvokedEvent<Object> {}
+ private static final long serialVersionUID = 1L;
+
+ public static class Default extends ActionInvokedEvent<Object> {
+ private static final long serialVersionUID = 1L;
+ }
- private final S source;
private final String action;
private final String parameters;
@@ -40,14 +43,19 @@ public abstract class ActionInvokedEvent<S> {
this(null, null, null);
}
- public ActionInvokedEvent(S source, String action, String parameters) {
- this.source = source;
+ public ActionInvokedEvent(
+ final S source,
+ final String action,
+ final String parameters) {
+ super(source);
this.action = action;
this.parameters = parameters;
}
+ @Override
+ @SuppressWarnings("unchecked")
public S getSource() {
- return source;
+ return (S)source;
}
public String getAction() {
return action;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionAddedToEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionAddedToEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionAddedToEvent.java
index 7b2d8f1..2b4302d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionAddedToEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionAddedToEvent.java
@@ -22,11 +22,14 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.PostsPropertyChangedEvent;
import org.apache.isis.applib.util.ObjectContracts;
-public abstract class CollectionAddedToEvent<S,T> {
+public abstract class CollectionAddedToEvent<S,T> extends java.util.EventObject {
- public static class Default extends CollectionAddedToEvent<Object, Object> {}
+ private static final long serialVersionUID = 1L;
+
+ public static class Default extends CollectionAddedToEvent<Object, Object> {
+ private static final long serialVersionUID = 1L;
+ }
- private final S source;
private final Identifier identifier;
private final T value;
@@ -41,22 +44,19 @@ public abstract class CollectionAddedToEvent<S,T> {
this(null, null, null);
}
- /**
- * @deprecated - use {@link #CollectionAddedToEvent(Object, Identifier, Object)}
- */
- @Deprecated
- public CollectionAddedToEvent(S source, T value) {
- this(source, null, value);
- }
-
- public CollectionAddedToEvent(S source, Identifier identifier, T value) {
- this.source = source;
+ public CollectionAddedToEvent(
+ final S source,
+ final Identifier identifier,
+ final T value) {
+ super(source);
this.identifier = identifier;
this.value = value;
}
+ @Override
+ @SuppressWarnings("unchecked")
public S getSource() {
- return source;
+ return (S)source;
}
public Identifier getIdentifier() {
return identifier;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionRemovedFromEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionRemovedFromEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionRemovedFromEvent.java
index 17b8fed..47ff424 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionRemovedFromEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionRemovedFromEvent.java
@@ -21,11 +21,14 @@ package org.apache.isis.applib.services.eventbus;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.util.ObjectContracts;
-public abstract class CollectionRemovedFromEvent<S,T> {
+public abstract class CollectionRemovedFromEvent<S,T> extends java.util.EventObject {
- public static class Default extends CollectionRemovedFromEvent<Object, Object> {}
+ private static final long serialVersionUID = 1L;
+
+ public static class Default extends CollectionRemovedFromEvent<Object, Object> {
+ private static final long serialVersionUID = 1L;
+ }
- private final S source;
private final Identifier identifier;
private final T value;
@@ -39,21 +42,19 @@ public abstract class CollectionRemovedFromEvent<S,T> {
public CollectionRemovedFromEvent() {
this(null, null, null);
}
- /**
- * @deprecated - use {@link #CollectionRemovedFromEvent(Object, Identifier, Object)}
- */
- @Deprecated
- public CollectionRemovedFromEvent(S source, T value) {
- this(source, null, value);
- }
- public CollectionRemovedFromEvent(S source, Identifier identifier, T value) {
- this.source = source;
+ public CollectionRemovedFromEvent(
+ final S source,
+ final Identifier identifier,
+ final T value) {
+ super(source);
this.identifier = identifier;
this.value = value;
}
+ @Override
+ @SuppressWarnings("unchecked")
public S getSource() {
- return source;
+ return (S) source;
}
public Identifier getIdentifier() {
return identifier;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyChangedEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyChangedEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyChangedEvent.java
index 9ae0afe..13666ff 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyChangedEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyChangedEvent.java
@@ -22,11 +22,14 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.PostsPropertyChangedEvent;
import org.apache.isis.applib.util.ObjectContracts;
-public abstract class PropertyChangedEvent<S,T> {
+public abstract class PropertyChangedEvent<S,T> extends java.util.EventObject {
- public static class Default extends PropertyChangedEvent<Object, Object> {}
+ private static final long serialVersionUID = 1L;
+
+ public static class Default extends PropertyChangedEvent<Object, Object> {
+ private static final long serialVersionUID = 1L;
+ }
- private final S source;
private final Identifier identifier;
private final T oldValue;
private final T newValue;
@@ -52,14 +55,16 @@ public abstract class PropertyChangedEvent<S,T> {
}
public PropertyChangedEvent(S source, Identifier identifier, T oldValue, T newValue) {
- this.source = source;
+ super(source);
this.identifier = identifier;
this.oldValue = oldValue;
this.newValue = newValue;
}
+ @Override
+ @SuppressWarnings("unchecked")
public S getSource() {
- return source;
+ return (S) source;
}
public Identifier getIdentifier() {
return identifier;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 1fb3c5a..4a8a452 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -70,7 +70,33 @@ public interface WrapperFactory {
* @see WrapperFactory#wrap(Object, ExecutionMode)
*/
public static enum ExecutionMode {
- EXECUTE, NO_EXECUTE
+ /**
+ * Validate all business rules and then execute.
+ */
+ EXECUTE(true,true),
+ /**
+ * Skip all business rules and then execute.
+ */
+ SKIP_RULES(false, true),
+ /**
+ * Validate all business rules but do not execute.
+ */
+ NO_EXECUTE(true, false);
+
+ private final boolean enforceRules;
+ private final boolean execute;
+
+ private ExecutionMode(final boolean enforceRules, final boolean execute) {
+ this.enforceRules = enforceRules;
+ this.execute = execute;
+ }
+
+ public boolean shouldEnforceRules() {
+ return enforceRules;
+ }
+ public boolean shouldExecute() {
+ return execute;
+ }
}
WrapperFactory NOOP = new WrapperFactory(){
@@ -81,6 +107,16 @@ public interface WrapperFactory {
}
@Override
+ public <T> T wrapNoExecute(T domainObject) {
+ return domainObject;
+ }
+
+ @Override
+ public <T> T wrapSkipRules(T domainObject) {
+ return domainObject;
+ }
+
+ @Override
public <T> T wrap(T domainObject, ExecutionMode mode) {
return domainObject;
}
@@ -126,6 +162,20 @@ public interface WrapperFactory {
<T> T wrap(T domainObject);
/**
+ * Convenience method for {@link #wrap(Object, ExecutionMode)} with {@link ExecutionMode#NO_EXECUTE},
+ * to make this feature more discoverable.
+ */
+ @Programmatic
+ <T> T wrapNoExecute(T domainObject);
+
+ /**
+ * Convenience method for {@link #wrap(Object, ExecutionMode)} with {@link ExecutionMode#SKIP_RULES},
+ * to make this feature more discoverable.
+ */
+ @Programmatic
+ <T> T wrapSkipRules(T domainObject);
+
+ /**
* Same as {@link #wrap(Object)}, except the actual execution occurs only if
* the <tt>execute</tt> parameter indicates.
*
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PostsEventWithWrapperPolicy.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PostsEventWithWrapperPolicy.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PostsEventWithWrapperPolicy.java
deleted file mode 100644
index 0c12c1c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PostsEventWithWrapperPolicy.java
+++ /dev/null
@@ -1,61 +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;
-
-import org.apache.isis.applib.annotation.WrapperPolicy;
-import org.apache.isis.applib.services.eventbus.EventBusService;
-import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
-import org.apache.isis.core.commons.lang.ObjectExtensions;
-import org.apache.isis.core.metamodel.facetapi.DecoratingFacet;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
-import org.apache.isis.core.metamodel.facets.properties.modify.PropertyClearFacet;
-import org.apache.isis.core.metamodel.facets.properties.modify.PropertySetterFacet;
-
-public interface PostsEventWithWrapperPolicy {
-
- WrapperPolicy getWrapperPolicy();
-
- public static class Util {
- private Util(){}
-
- /**
- * Returns the provided {@link Facet facet} as an {@link PostsEventWithWrapperPolicy} if
- * it either is one or if it is a {@link DecoratingFacet} that in turn wraps
- * an {@link PostsEventWithWrapperPolicy}.
- *
- * <p>
- * Otherwise, returns <tt>null</tt>.
- */
- public static PostsEventWithWrapperPolicy getWrapperPolicyFacet(final Facet facet) {
- if (facet instanceof PostsEventWithWrapperPolicy) {
- return (PostsEventWithWrapperPolicy) facet;
- }
- if (facet.getUnderlyingFacet() instanceof PostsEventWithWrapperPolicy) {
- return (PostsEventWithWrapperPolicy) facet.getUnderlyingFacet();
- }
- if (facet instanceof DecoratingFacet) {
- final DecoratingFacet<?> decoratingFacet = ObjectExtensions.asT(facet);
- return getWrapperPolicyFacet(decoratingFacet.getDecoratedFacet());
- }
- return null;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacet.java
index 72edf00..f437667 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacet.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.collections.event;
import org.apache.isis.applib.services.eventbus.CollectionAddedToEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
-import org.apache.isis.core.metamodel.facets.PostsEventWithWrapperPolicy;
import org.apache.isis.core.metamodel.facets.SingleValueFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
@@ -30,6 +29,6 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToF
* Indicates that (the specified subclass of) {@link CollectionAddedToEvent} should be posted to the
* {@link EventBusService}.
*/
-public interface PostsCollectionAddedToEventFacet extends SingleValueFacet<Class<? extends CollectionAddedToEvent<?,?>>>, CollectionAddToFacet, MultiTypedFacet, PostsEventWithWrapperPolicy {
+public interface PostsCollectionAddedToEventFacet extends SingleValueFacet<Class<? extends CollectionAddedToEvent<?,?>>>, CollectionAddToFacet, MultiTypedFacet {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacetAbstract.java
index 4f89185..7423a41 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionAddedToEventFacetAbstract.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.collections.event;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.CollectionAddedToEvent;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -40,16 +39,10 @@ public abstract class PostsCollectionAddedToEventFacetAbstract
return CollectionAddToFacet.class;
}
- private final WrapperPolicy wrapperPolicy;
-
- public PostsCollectionAddedToEventFacetAbstract(Class<? extends CollectionAddedToEvent<?, ?>> changedEventType, WrapperPolicy wrapperPolicy, FacetHolder holder) {
+ public PostsCollectionAddedToEventFacetAbstract(
+ final Class<? extends CollectionAddedToEvent<?, ?>> changedEventType,
+ final FacetHolder holder) {
super(type(), changedEventType, holder);
- this.wrapperPolicy = wrapperPolicy;
- }
-
- @Override
- public WrapperPolicy getWrapperPolicy() {
- return wrapperPolicy;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacet.java
index d351f84..90a657b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacet.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.collections.event;
import org.apache.isis.applib.services.eventbus.CollectionRemovedFromEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
-import org.apache.isis.core.metamodel.facets.PostsEventWithWrapperPolicy;
import org.apache.isis.core.metamodel.facets.SingleValueFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
@@ -30,6 +29,6 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemove
* Indicates that (the specified subclass of) {@link CollectionRemovedFromEvent} should be posted to the
* {@link EventBusService}.
*/
-public interface PostsCollectionRemovedFromEventFacet extends SingleValueFacet<Class<? extends CollectionRemovedFromEvent<?,?>>>, CollectionRemoveFromFacet, MultiTypedFacet, PostsEventWithWrapperPolicy {
+public interface PostsCollectionRemovedFromEventFacet extends SingleValueFacet<Class<? extends CollectionRemovedFromEvent<?,?>>>, CollectionRemoveFromFacet, MultiTypedFacet {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAbstract.java
index a317467..18fc423 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAbstract.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.collections.event;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.CollectionRemovedFromEvent;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -40,16 +39,10 @@ public abstract class PostsCollectionRemovedFromEventFacetAbstract
return CollectionRemoveFromFacet.class;
}
- private final WrapperPolicy wrapperPolicy;
-
- public PostsCollectionRemovedFromEventFacetAbstract(Class<? extends CollectionRemovedFromEvent<?, ?>> changedEventType, WrapperPolicy wrapperPolicy, FacetHolder holder) {
+ public PostsCollectionRemovedFromEventFacetAbstract(
+ final Class<? extends CollectionRemovedFromEvent<?, ?>> changedEventType,
+ final FacetHolder holder) {
super(type(), changedEventType, holder);
- this.wrapperPolicy = wrapperPolicy;
- }
-
- @Override
- public WrapperPolicy getWrapperPolicy() {
- return wrapperPolicy;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacet.java
index e5c108f..a01e7f4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacet.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.properties.event;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
-import org.apache.isis.core.metamodel.facets.PostsEventWithWrapperPolicy;
import org.apache.isis.core.metamodel.facets.SingleValueFacet;
import org.apache.isis.core.metamodel.facets.properties.modify.PropertyClearFacet;
import org.apache.isis.core.metamodel.facets.properties.modify.PropertySetterFacet;
@@ -31,6 +30,6 @@ import org.apache.isis.core.metamodel.facets.properties.modify.PropertySetterFac
* Indicates that (the specified subclass of) {@link PropertyChangedEvent} should be posted to the
* {@link EventBusService}.
*/
-public interface PostsPropertyChangedEventFacet extends SingleValueFacet<Class<? extends PropertyChangedEvent<?,?>>>, PropertyClearFacet, PropertySetterFacet, MultiTypedFacet, PostsEventWithWrapperPolicy {
+public interface PostsPropertyChangedEventFacet extends SingleValueFacet<Class<? extends PropertyChangedEvent<?,?>>>, PropertyClearFacet, PropertySetterFacet, MultiTypedFacet {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacetAbstract.java
index 69ff6a0..1acbf8d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/event/PostsPropertyChangedEventFacetAbstract.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.properties.event;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -35,16 +34,10 @@ public abstract class PostsPropertyChangedEventFacetAbstract
return PostsPropertyChangedEventFacet.class;
}
- private final WrapperPolicy wrapperPolicy;
-
- public PostsPropertyChangedEventFacetAbstract(final Class<? extends PropertyChangedEvent<?,?>> changedEventType, final WrapperPolicy wrapperPolicy, final FacetHolder holder) {
+ public PostsPropertyChangedEventFacetAbstract(
+ final Class<? extends PropertyChangedEvent<?,?>> changedEventType,
+ final FacetHolder holder) {
super(type(), changedEventType, holder);
- this.wrapperPolicy = wrapperPolicy;
- }
-
- @Override
- public WrapperPolicy getWrapperPolicy() {
- return wrapperPolicy;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventAnnotationFacetFactory.java
index 504dd64..5292f07 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventAnnotationFacetFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.progmodel.facets.collections.event;
import java.lang.reflect.Method;
import org.apache.isis.applib.annotation.PostsCollectionAddedToEvent;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.CollectionAddedToEvent;
import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.ServicesProviderAware;
@@ -66,8 +65,7 @@ public class PostsCollectionAddedToEventAnnotationFacetFactory extends FacetFact
// the collectionAddToFacet will end up as the underlying facet of the PostsCollectionAddedToEventFacetAnnotation
final Class<? extends CollectionAddedToEvent<?,?>> changedEventType = annotation.value();
- final WrapperPolicy wrapperPolicy = annotation.wrapperPolicy();
- return new PostsCollectionAddedToEventFacetAnnotation(changedEventType, wrapperPolicy, getterFacet, collectionAddToFacet, servicesProvider, holder);
+ return new PostsCollectionAddedToEventFacetAnnotation(changedEventType, getterFacet, collectionAddToFacet, servicesProvider, holder);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventFacetAnnotation.java
index bd69339..e566300 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedToEventFacetAnnotation.java
@@ -27,7 +27,6 @@ import com.google.common.collect.Lists;
import org.apache.isis.applib.FatalException;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.CollectionAddedToEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -52,12 +51,11 @@ public class PostsCollectionAddedToEventFacetAnnotation
public PostsCollectionAddedToEventFacetAnnotation(
final Class<? extends CollectionAddedToEvent<?, ?>> eventType,
- final WrapperPolicy wrapperPolicy,
final PropertyOrCollectionAccessorFacet getterFacet,
final CollectionAddToFacet collectionAddToFacet,
final ServicesProvider servicesProvider,
final FacetHolder holder) {
- super(eventType, wrapperPolicy, holder);
+ super(eventType, holder);
this.getterFacet = getterFacet;
this.collectionAddToFacet = collectionAddToFacet;
this.servicesProvider = servicesProvider;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventAnnotationFacetFactory.java
index 67e8871..abf039c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventAnnotationFacetFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.progmodel.facets.collections.event;
import java.lang.reflect.Method;
import org.apache.isis.applib.annotation.PostsCollectionRemovedFromEvent;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.CollectionRemovedFromEvent;
import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.ServicesProviderAware;
@@ -66,8 +65,7 @@ public class PostsCollectionRemovedFromEventAnnotationFacetFactory extends Facet
// the collectionRemoveFromFacet will end up as the underlying facet of the PostsCollectionRemovedFromEventFacetAnnotation
final Class<? extends CollectionRemovedFromEvent<?,?>> changedEventType = annotation.value();
- final WrapperPolicy wrapperPolicy = annotation.wrapperPolicy();
- return new PostsCollectionRemovedFromEventFacetAnnotation(changedEventType, wrapperPolicy, getterFacet, collectionRemoveFromFacet, servicesProvider, holder);
+ return new PostsCollectionRemovedFromEventFacetAnnotation(changedEventType, getterFacet, collectionRemoveFromFacet, servicesProvider, holder);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAnnotation.java
index a19b55d..98524cf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedFromEventFacetAnnotation.java
@@ -27,7 +27,6 @@ import com.google.common.collect.Lists;
import org.apache.isis.applib.FatalException;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.CollectionRemovedFromEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -52,11 +51,10 @@ public class PostsCollectionRemovedFromEventFacetAnnotation extends
public PostsCollectionRemovedFromEventFacetAnnotation(
final Class<? extends CollectionRemovedFromEvent<?, ?>> eventType,
- final WrapperPolicy wrapperPolicy,
final PropertyOrCollectionAccessorFacet getterFacet,
final CollectionRemoveFromFacet collectionRemoveFromFacet,
final ServicesProvider servicesProvider, final FacetHolder holder) {
- super(eventType, wrapperPolicy, holder);
+ super(eventType, holder);
this.getterFacet = getterFacet;
this.collectionRemoveFromFacet = collectionRemoveFromFacet;
this.servicesProvider = servicesProvider;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventAnnotationFacetFactory.java
index 1a75d60..030a5b3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventAnnotationFacetFactory.java
@@ -24,7 +24,6 @@ import java.util.Comparator;
import java.util.List;
import org.apache.isis.applib.annotation.PostsPropertyChangedEvent;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.ServicesProvider;
@@ -90,8 +89,7 @@ public class PostsPropertyChangedEventAnnotationFacetFactory extends FacetFactor
}
final Class<? extends PropertyChangedEvent<?, ?>> changedEventType = annotation.value();
- final WrapperPolicy wrapperPolicy = annotation.wrapperPolicy();
- return new PostsPropertyChangedEventFacetAnnotation(changedEventType, wrapperPolicy, getterFacet, setterFacet, clearFacet, servicesProvider, holder);
+ return new PostsPropertyChangedEventFacetAnnotation(changedEventType, getterFacet, setterFacet, clearFacet, servicesProvider, holder);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotation.java
index afc96bb..017cf48 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotation.java
@@ -27,7 +27,6 @@ import com.google.common.collect.Lists;
import org.apache.isis.applib.FatalException;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -52,13 +51,12 @@ public class PostsPropertyChangedEventFacetAnnotation extends PostsPropertyChang
public PostsPropertyChangedEventFacetAnnotation(
final Class<? extends PropertyChangedEvent<?, ?>> eventType,
- final WrapperPolicy wrapperPolicy,
final PropertyOrCollectionAccessorFacet getterFacet,
final PropertySetterFacet setterFacet,
final PropertyClearFacet clearFacet,
final ServicesProvider servicesProvider,
final FacetHolder holder) {
- super(eventType, wrapperPolicy, holder);
+ super(eventType, holder);
this.getterFacet = getterFacet;
this.setterFacet = setterFacet;
this.clearFacet = clearFacet;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedEventFacetAnnotationTest_newEvent.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedEventFacetAnnotationTest_newEvent.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedEventFacetAnnotationTest_newEvent.java
index c4f15c9..07baa29 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedEventFacetAnnotationTest_newEvent.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionAddedEventFacetAnnotationTest_newEvent.java
@@ -33,7 +33,9 @@ public class PostsCollectionAddedEventFacetAnnotationTest_newEvent {
}
public static class SomeReferencedObject {}
- public static class SomeDomainObjectCollectionAddedToEvent extends CollectionAddedToEvent<SomeDomainObject, SomeReferencedObject> {}
+ public static class SomeDomainObjectCollectionAddedToEvent extends CollectionAddedToEvent<SomeDomainObject, SomeReferencedObject> {
+ private static final long serialVersionUID = 1L;
+ }
@Test
public void test() throws Exception {
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedEventFacetAnnotationTest_newEvent.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedEventFacetAnnotationTest_newEvent.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedEventFacetAnnotationTest_newEvent.java
index a713a74..76ea7a4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedEventFacetAnnotationTest_newEvent.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/event/PostsCollectionRemovedEventFacetAnnotationTest_newEvent.java
@@ -32,7 +32,9 @@ public class PostsCollectionRemovedEventFacetAnnotationTest_newEvent {
}
public static class SomeReferencedObject {}
- public static class SomeDomainObjectCollectionRemovedFromEvent extends CollectionRemovedFromEvent<SomeDomainObject, SomeReferencedObject> {}
+ public static class SomeDomainObjectCollectionRemovedFromEvent extends CollectionRemovedFromEvent<SomeDomainObject, SomeReferencedObject> {
+ private static final long serialVersionUID = 1L;
+ }
@Test
public void test() throws Exception {
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotationTest_newEvent.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotationTest_newEvent.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotationTest_newEvent.java
index f997473..4e4391d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotationTest_newEvent.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/properties/event/PostsPropertyChangedEventFacetAnnotationTest_newEvent.java
@@ -29,7 +29,9 @@ public class PostsPropertyChangedEventFacetAnnotationTest_newEvent {
public static class SomeDomainObject {}
- public static class SomeDatePropertyChangedEvent extends PropertyChangedEvent<SomeDomainObject, LocalDate> {}
+ public static class SomeDatePropertyChangedEvent extends PropertyChangedEvent<SomeDomainObject, LocalDate> {
+ private static final long serialVersionUID = 1L;
+ }
@Test
public void test() throws Exception {
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryAbstract.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryAbstract.java
index 88c33c8..d0ba943 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryAbstract.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryAbstract.java
@@ -214,6 +214,16 @@ public abstract class WrapperFactoryAbstract implements WrapperFactory, Authenti
}
@Override
+ public <T> T wrapNoExecute(final T domainObject) {
+ return wrap(domainObject, ExecutionMode.NO_EXECUTE);
+ }
+
+ @Override
+ public <T> T wrapSkipRules(final T domainObject) {
+ return wrap(domainObject, ExecutionMode.SKIP_RULES);
+ }
+
+ @Override
public <T> T wrap(final T domainObject, final ExecutionMode mode) {
if (isWrapper(domainObject)) {
return domainObject;
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index 1dc2293..01b03a0 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -27,7 +27,6 @@ import java.util.List;
import java.util.Map;
import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.annotation.WrapperPolicy;
import org.apache.isis.applib.events.CollectionAccessEvent;
import org.apache.isis.applib.events.InteractionEvent;
import org.apache.isis.applib.events.ObjectTitleEvent;
@@ -55,7 +54,6 @@ import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.facetapi.DecoratingFacet;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.facets.PostsEventWithWrapperPolicy;
import org.apache.isis.core.metamodel.facets.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.facets.actions.choices.ActionChoicesFacet;
import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
@@ -329,7 +327,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
final InteractionResult interactionResult = targetNoSpec.isValidResult(targetAdapter);
notifyListenersAndVetoIfRequired(interactionResult);
- if (getExecutionMode() == ExecutionMode.EXECUTE) {
+ if (getExecutionMode().shouldExecute()) {
if (targetAdapter.isTransient()) {
getObjectPersistor().makePersistent(targetAdapter);
}
@@ -370,8 +368,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
final Object argumentObj = underlying(args[0]);
- final WrapperPolicy wrapperPolicy = determineWrapperPolicy(otoa, argumentObj);
- if(wrapperPolicy == WrapperPolicy.ENFORCE_RULES) {
+ if(getExecutionMode().shouldEnforceRules()) {
checkVisibility(getAuthenticationSession(), targetAdapter, otoa);
checkUsability(getAuthenticationSession(), targetAdapter, otoa);
}
@@ -381,12 +378,12 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
resolveIfRequired(targetAdapter);
- if(wrapperPolicy == WrapperPolicy.ENFORCE_RULES) {
+ if(getExecutionMode().shouldEnforceRules()) {
final InteractionResult interactionResult = otoa.isAssociationValid(targetAdapter, argumentAdapter).getInteractionResult();
notifyListenersAndVetoIfRequired(interactionResult);
}
- if (getExecutionMode() == ExecutionMode.EXECUTE) {
+ if (getExecutionMode().shouldExecute()) {
otoa.set(targetAdapter, argumentAdapter);
}
@@ -395,19 +392,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
return null;
}
- private static WrapperPolicy determineWrapperPolicy(final OneToOneAssociation otoa, final Object argumentObj) {
- final PostsEventWithWrapperPolicy wrapperPolicyFacet;
- if(argumentObj != null) {
- final PropertySetterFacet setterFacet = otoa.getFacet(PropertySetterFacet.class);
- wrapperPolicyFacet = PostsEventWithWrapperPolicy.Util.getWrapperPolicyFacet(setterFacet);
- } else {
- final PropertyClearFacet clearFacet = otoa.getFacet(PropertyClearFacet.class);
- wrapperPolicyFacet = PostsEventWithWrapperPolicy.Util.getWrapperPolicyFacet(clearFacet);
- }
- return wrapperPolicyFacet != null ? wrapperPolicyFacet.getWrapperPolicy() : WrapperPolicy.ENFORCE_RULES;
- }
-
-
// /////////////////////////////////////////////////////////////////
// collection - access
@@ -480,8 +464,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
throw new IllegalArgumentException("Invoking a addTo should only have a single argument");
}
- final WrapperPolicy wrapperPolicy = determineAddToWrapperPolicy(otma);
- if(wrapperPolicy == WrapperPolicy.ENFORCE_RULES) {
+ if(getExecutionMode().shouldEnforceRules()) {
checkVisibility(getAuthenticationSession(), targetAdapter, otma);
checkUsability(getAuthenticationSession(), targetAdapter, otma);
}
@@ -494,12 +477,12 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
}
final ObjectAdapter argumentNO = getAdapterManager().adapterFor(argumentObj);
- if(wrapperPolicy == WrapperPolicy.ENFORCE_RULES) {
+ if(getExecutionMode().shouldEnforceRules()) {
final InteractionResult interactionResult = otma.isValidToAdd(targetAdapter, argumentNO).getInteractionResult();
notifyListenersAndVetoIfRequired(interactionResult);
}
- if (getExecutionMode() == ExecutionMode.EXECUTE) {
+ if (getExecutionMode().shouldExecute()) {
otma.addElement(targetAdapter, argumentNO);
}
@@ -508,12 +491,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
return null;
}
- private static WrapperPolicy determineAddToWrapperPolicy(final OneToManyAssociation otma) {
- final CollectionAddToFacet facet = otma.getFacet(CollectionAddToFacet.class);
- final PostsEventWithWrapperPolicy wrapperPolicyFacet = PostsEventWithWrapperPolicy.Util.getWrapperPolicyFacet(facet);
- return wrapperPolicyFacet != null ? wrapperPolicyFacet.getWrapperPolicy() : WrapperPolicy.ENFORCE_RULES;
- }
-
// /////////////////////////////////////////////////////////////////
// collection - remove from
@@ -524,8 +501,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
throw new IllegalArgumentException("Invoking a removeFrom should only have a single argument");
}
- final WrapperPolicy wrapperPolicy = determineRemoveFromWrapperPolicy(otma);
- if(wrapperPolicy == WrapperPolicy.ENFORCE_RULES) {
+ if(getExecutionMode().shouldEnforceRules()) {
checkVisibility(getAuthenticationSession(), targetAdapter, otma);
checkUsability(getAuthenticationSession(), targetAdapter, otma);
}
@@ -539,12 +515,12 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
}
final ObjectAdapter argumentAdapter = getAdapterManager().adapterFor(argumentObj);
- if(wrapperPolicy == WrapperPolicy.ENFORCE_RULES) {
+ if(getExecutionMode().shouldEnforceRules()) {
final InteractionResult interactionResult = otma.isValidToRemove(targetAdapter, argumentAdapter).getInteractionResult();
notifyListenersAndVetoIfRequired(interactionResult);
}
- if (getExecutionMode() == ExecutionMode.EXECUTE) {
+ if (getExecutionMode().shouldExecute()) {
otma.removeElement(targetAdapter, argumentAdapter);
}
@@ -553,13 +529,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
return null;
}
- private static WrapperPolicy determineRemoveFromWrapperPolicy(final OneToManyAssociation otma) {
- final CollectionRemoveFromFacet removeFromFacet = otma.getFacet(CollectionRemoveFromFacet.class);
-
- final PostsEventWithWrapperPolicy wrapperPolicyFacet = PostsEventWithWrapperPolicy.Util.getWrapperPolicyFacet(removeFromFacet);
- return wrapperPolicyFacet != null ? wrapperPolicyFacet.getWrapperPolicy() : WrapperPolicy.ENFORCE_RULES;
- }
-
// /////////////////////////////////////////////////////////////////
// action
// /////////////////////////////////////////////////////////////////
@@ -581,7 +550,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
final InteractionResult interactionResult = noa.isProposedArgumentSetValid(targetAdapter, argAdapters).getInteractionResult();
notifyListenersAndVetoIfRequired(interactionResult);
- if (getExecutionMode() == ExecutionMode.EXECUTE) {
+ if (getExecutionMode().shouldExecute()) {
final ObjectAdapter actionReturnNO = noa.execute(targetAdapter, argAdapters);
return AdapterUtils.unwrap(actionReturnNO);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2b250f0/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index 6f81049..2dae290 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -50,6 +50,7 @@ import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.applib.services.scratchpad.Scratchpad;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
import org.apache.isis.applib.util.ObjectContracts;
import org.apache.isis.applib.util.TitleBuffer;
import org.apache.isis.applib.value.Blob;
@@ -487,8 +488,8 @@ public class ToDoItem implements Comparable<ToDoItem> {
@javax.jdo.annotations.Element(column="dependentId")
private SortedSet<ToDoItem> dependencies = new TreeSet<ToDoItem>();
- @PostsCollectionAddedToEvent(wrapperPolicy=WrapperPolicy.SKIP_RULES)
- @PostsCollectionRemovedFromEvent(wrapperPolicy=WrapperPolicy.SKIP_RULES)
+ @PostsCollectionAddedToEvent
+ @PostsCollectionRemovedFromEvent
@SortedBy(DependenciesComparator.class)
public SortedSet<ToDoItem> getDependencies() {
return dependencies;
@@ -511,8 +512,8 @@ public class ToDoItem implements Comparable<ToDoItem> {
final ToDoItem toDoItem) {
// By wrapping the call, Isis will detect that the collection is modified
// and it will automatically send a CollectionAddedToEvent to the Event Bus.
- // See ToDoItemSubscriptions.
- wrapperFactory.wrap(this).addToDependencies(toDoItem);
+ // ToDoItemSubscriptions is a demo subscriber to this event
+ wrapperFactory.wrapSkipRules(this).addToDependencies(toDoItem);
return this;
}
public List<ToDoItem> autoComplete0Add(final @MinLength(2) String search) {
@@ -544,8 +545,8 @@ public class ToDoItem implements Comparable<ToDoItem> {
final ToDoItem toDoItem) {
// By wrapping the call, Isis will detect that the collection is modified
// and it will automatically send a CollectionRemovedFromEvent to the Event Bus.
- // See ToDoItemSubscriptions.
- wrapperFactory.wrap(this).removeFromDependencies(toDoItem);
+ // ToDoItemSubscriptions is a demo subscriber to this event
+ wrapperFactory.wrapSkipRules(this).removeFromDependencies(toDoItem);
return this;
}
// disable action dependent on state of object