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 2015/02/06 19:12:47 UTC
[06/26] isis git commit: ISIS-1027: more stuff...
ISIS-1027: more stuff...
... undeprecating Isis' own services (eg EventBusServiceJdo)
... adding in validators for XxxAnnotationFacetFactory
... moving Bounded and ObjectType annotation processing into DomainObjectAnnotationFacetFactory
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b5f73ec3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b5f73ec3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b5f73ec3
Branch: refs/heads/master
Commit: b5f73ec3dcae8015d11004915c15dd81c2945238
Parents: 128f23c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Feb 5 18:59:38 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Feb 5 18:59:38 2015 +0000
----------------------------------------------------------------------
.../applib/WicketDeveloperUtilitiesService.java | 15 ++--
.../isis/applib/AbstractContainedObject.java | 12 +--
.../org/apache/isis/applib/AbstractService.java | 4 +-
.../applib/fixturescripts/FixtureResult.java | 2 +-
.../applib/fixturescripts/FixtureScript.java | 13 +--
.../applib/fixturescripts/FixtureScripts.java | 6 +-
.../BookmarkHolderActionContributions.java | 10 ++-
.../services/eventbus/EventBusService.java | 2 -
.../exceprecog/ExceptionRecognizerAbstract.java | 9 +-
.../ExceptionRecognizerComposite.java | 5 --
.../exceprecog/ExceptionRecognizerForType.java | 2 -
.../AbstractHomePageDashboardService.java | 12 +--
.../applib/services/wrapper/WrapperFactory.java | 1 -
...ionRecognizerCompositeForJdoObjectStore.java | 5 +-
.../core/metamodel/facets/FacetedMethod.java | 6 +-
.../facets/FacetedMethodParameter.java | 16 +++-
.../action/ActionAnnotationFacetFactory.java | 72 ++++++++++++----
.../action/bulk/BulkFacetForBulkAnnotation.java | 4 +
...cetForPostsActionInvokedEventAnnotation.java | 4 +
...nSemanticsFacetFromIdempotentAnnotation.java | 4 +
...onSemanticsFacetFromQueryOnlyAnnotation.java | 4 +
.../annotation/PagedFacetOnActionFactory.java | 2 +-
.../CollectionAnnotationFacetFactory.java | 56 ++++++++++---
.../PagedFacetOnCollectionFactory.java | 2 +-
.../annotprop/CssClassFacetOnMemberFactory.java | 2 +-
.../CssClassFaFacetOnMemberFactory.java | 2 +-
.../DescribedAsFacetOnMemberFactory.java | 2 +-
.../annotprop/DisabledFacetFactory.java | 2 +-
.../annotprop/HiddenFacetOnMemberFactory.java | 2 +-
.../annotprop/NamedFacetOnMemberFactory.java | 2 +-
.../annotprop/RenderFacetOrResolveFactory.java | 4 +-
.../annotation/AutoCompleteFacetAnnotation.java | 37 ---------
.../AutoCompleteFacetAnnotationFactory.java | 87 --------------------
...cyFacetViaBookmarkableAnnotationFactory.java | 7 +-
.../ChoicesFacetFromBoundedAnnotation.java | 33 --------
...hoicesFacetFromBoundedAnnotationFactory.java | 55 -------------
.../DomainObjectAnnotationFacetFactory.java | 86 ++++++++++++++++---
...oCompleteFacetForAutoCompleteAnnotation.java | 56 +++++++++++++
.../ChoicesFacetFromBoundedAnnotation.java | 44 ++++++++++
...jectSpecIdFacetFromObjectTypeAnnotation.java | 41 +++++++++
.../annotation/ObjectSpecIdFacetAnnotation.java | 31 -------
...ecIdFacetForObjectTypeAnnotationFactory.java | 64 --------------
...tiLineFacetOnParameterAnnotationFactory.java | 2 +-
.../MaskFacetOnParameterAnnotationFactory.java | 2 +-
...xFacetFacetOnParameterAnnotationFactory.java | 2 +-
.../MultiLineFacetOnPropertyFactory.java | 2 +-
.../PropertyAnnotationFacetFactory.java | 39 +++++++--
.../TypicalLengthOnPropertyFacetFactory.java | 2 +-
.../MaskFacetOnPropertyAnnotationFactory.java | 2 +-
...ExFacetFacetOnPropertyAnnotationFactory.java | 2 +-
.../container/DomainObjectContainerDefault.java | 3 +-
...MetaModelValidatorForDeprecatedAbstract.java | 4 +-
...taModelValidatorForDeprecatedAnnotation.java | 7 +-
.../dflt/ProgrammingModelFacetsJava5.java | 6 --
.../AbstractFacetFactoryJUnit4TestCase.java | 2 +-
.../facets/AbstractFacetFactoryTest.java | 7 +-
...esFacetFromBoundedAnnotationFactoryTest.java | 61 --------------
...esFacetFromBoundedAnnotationFactoryTest.java | 59 +++++++++++++
.../ObjectTypeAnnotationFacetFactoryTest.java | 64 ++++++++++++++
.../ObjectTypeAnnotationFacetFactoryTest.java | 65 ---------------
.../eventbus/EventBusServiceDefault.java | 2 +
.../service/eventbus/EventBusServiceJdo.java | 5 +-
.../service/support/IsisJdoSupportImpl.java | 10 +--
.../core/wrapper/WrapperFactoryDefault.java | 3 +-
.../java/dom/todo/ToDoItemContributions.java | 11 ++-
.../src/main/webapp/WEB-INF/isis.properties | 2 +-
66 files changed, 603 insertions(+), 586 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/component/viewer/wicket/applib/src/main/java/org/apache/isis/viewer/wicket/viewer/applib/WicketDeveloperUtilitiesService.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/applib/src/main/java/org/apache/isis/viewer/wicket/viewer/applib/WicketDeveloperUtilitiesService.java b/component/viewer/wicket/applib/src/main/java/org/apache/isis/viewer/wicket/viewer/applib/WicketDeveloperUtilitiesService.java
index d2d1929..83d03cc 100644
--- a/component/viewer/wicket/applib/src/main/java/org/apache/isis/viewer/wicket/viewer/applib/WicketDeveloperUtilitiesService.java
+++ b/component/viewer/wicket/applib/src/main/java/org/apache/isis/viewer/wicket/viewer/applib/WicketDeveloperUtilitiesService.java
@@ -20,9 +20,10 @@
package org.apache.isis.viewer.wicket.viewer.applib;
import org.apache.wicket.Application;
-import org.apache.isis.applib.annotation.ActionSemantics;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Prototype;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.Where;
public class WicketDeveloperUtilitiesService {
@@ -34,9 +35,11 @@ public class WicketDeveloperUtilitiesService {
* the resource cache anyway if running in development/prototype mode.
* </p>
*/
- @Hidden
- @Prototype
- @ActionSemantics(ActionSemantics.Of.IDEMPOTENT)
+ @Action(
+ restrictTo = RestrictTo.PROTOTYPING,
+ hidden = Where.EVERYWHERE,
+ semantics = SemanticsOf.IDEMPOTENT
+ )
public void resetI18nCache() {
Application.get()
.getResourceSettings()
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java b/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
index 644f828..d71ad11 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/AbstractContainedObject.java
@@ -20,11 +20,9 @@
package org.apache.isis.applib;
import java.util.List;
-
import com.google.common.base.Predicate;
-
import org.apache.isis.applib.annotation.Aggregated;
-import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.security.UserMemento;
@@ -69,7 +67,6 @@ public abstract class AbstractContainedObject {
*
* @see #newAggregatedInstance(Object, Class)
*/
- @Hidden
protected <T> T newTransientInstance(final Class<T> ofType) {
return getContainer().newTransientInstance(ofType);
}
@@ -94,7 +91,6 @@ public abstract class AbstractContainedObject {
*
* @see #newAggregatedInstance(Object, Class)
*/
- @Hidden
protected <T> T newAggregatedInstance(final Class<T> ofType) {
return newAggregatedInstance(this, ofType);
}
@@ -108,7 +104,6 @@ public abstract class AbstractContainedObject {
*
* @see #newAggregatedInstance(Class)
*/
- @Hidden
protected <T> T newAggregatedInstance(final Object parent, final Class<T> ofType) {
return getContainer().newAggregatedInstance(parent, ofType);
}
@@ -302,7 +297,6 @@ public abstract class AbstractContainedObject {
* Determines if the specified object is persistent (that it is stored
* permanently outside of the virtual machine).
*/
- @Hidden
protected boolean isPersistent(final Object domainObject) {
return getContainer().isPersistent(domainObject);
}
@@ -324,7 +318,6 @@ public abstract class AbstractContainedObject {
* @see #isPersistent(Object)
* @see #persistIfNotAlready(Object)
*/
- @Hidden
protected <T> T persist(final T transientDomainObject) {
getContainer().persist(transientDomainObject);
return transientDomainObject;
@@ -343,7 +336,6 @@ public abstract class AbstractContainedObject {
* @see #isPersistent(Object)
* @see #persist(Object)
*/
- @Hidden
protected <T> T persistIfNotAlready(final T domainObject) {
getContainer().persistIfNotAlready(domainObject);
return domainObject;
@@ -403,7 +395,6 @@ public abstract class AbstractContainedObject {
/**
* This field is not persisted, nor displayed to the user.
*/
- @Hidden
protected DomainObjectContainer getContainer() {
return this.container;
}
@@ -411,6 +402,7 @@ public abstract class AbstractContainedObject {
/**
* Injected by the application container itself.
*/
+ @Programmatic
public void setContainer(final DomainObjectContainer container) {
this.container = container;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/AbstractService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AbstractService.java b/core/applib/src/main/java/org/apache/isis/applib/AbstractService.java
index fa65b82..91b2f3f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/AbstractService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/AbstractService.java
@@ -19,11 +19,11 @@
package org.apache.isis.applib;
-import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Programmatic;
public abstract class AbstractService extends AbstractContainedObject {
- @Hidden
+ @Programmatic
public String getId() {
return getClassName();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
index 5b1dfc6..7c3fd89 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
@@ -30,7 +30,7 @@ public class FixtureResult {
private String fixtureScriptClassName;
@PropertyLayout(named="Fixture script")
- @Optional
+ @Property(optional = Optionality.TRUE)
@MemberOrder(sequence="1")
public String getFixtureScriptClassName() {
return fixtureScriptClassName;
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
index c1d7561..33a5e1f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
@@ -31,10 +31,11 @@ import com.google.common.collect.Maps;
import com.google.common.io.CharSource;
import org.apache.isis.applib.AbstractViewModel;
import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Title;
import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.fixtures.FixtureType;
import org.apache.isis.applib.fixtures.InstallableFixture;
@@ -139,7 +140,7 @@ public abstract class FixtureScript
//region > qualifiedName
- @Hidden
+ @Programmatic
public String getQualifiedName() {
return getParentPath() + getLocalName();
}
@@ -151,7 +152,7 @@ public abstract class FixtureScript
private String friendlyName;
@Title
- @Hidden
+ @PropertyLayout(hidden = Where.EVERYWHERE)
public String getFriendlyName() {
return friendlyName;
}
@@ -168,7 +169,7 @@ public abstract class FixtureScript
* Will always be populated, initially by the default name, but can be
* {@link #setLocalName(String) overridden}.
*/
- @Hidden
+ @PropertyLayout(hidden = Where.EVERYWHERE)
public String getLocalName() {
return localName;
}
@@ -185,7 +186,7 @@ public abstract class FixtureScript
/**
* Path of the parent of this script (if any), with trailing {@value #PATH_SEPARATOR}.
*/
- @Hidden
+ @PropertyLayout(hidden = Where.EVERYWHERE)
public String getParentPath() {
return parentPath;
}
@@ -226,7 +227,7 @@ public abstract class FixtureScript
* {@link FixtureScript}s are {@link Discoverability#NON_DISCOVERABLE not}. This can be overridden in the
* constructor, however or by calling the {@link #withDiscoverability(org.apache.isis.applib.fixturescripts.FixtureScript.Discoverability) setter}.
*/
- @Hidden
+ @PropertyLayout(hidden = Where.EVERYWHERE)
public boolean isDiscoverable() {
return discoverability == Discoverability.DISCOVERABLE;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
index 8044277..302f1a4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
@@ -39,7 +39,6 @@ import org.apache.isis.applib.util.ObjectContracts;
public abstract class FixtureScripts extends AbstractService {
-
//region > nonPersistedObjectsStrategy, multipleExecutionStrategy enums
/**
@@ -186,7 +185,8 @@ public abstract class FixtureScripts extends AbstractService {
//region > init
private final List<FixtureScript> fixtureScriptList = Lists.newArrayList();
-
+
+ @Programmatic
@PostConstruct
public void init() {
findAndInstantiateFixtureScripts(fixtureScriptList);
@@ -255,7 +255,7 @@ public abstract class FixtureScripts extends AbstractService {
describedAs="Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)",
multiLine = 10
)
- @Optional
+ @Parameter(optional = Optionality.TRUE)
final String parameters) {
// if this method is called programmatically, the caller may have simply new'd up the fixture script
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolderActionContributions.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolderActionContributions.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolderActionContributions.java
index 461c5fc..7f967e0 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolderActionContributions.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolderActionContributions.java
@@ -20,9 +20,11 @@ package org.apache.isis.applib.services.bookmark;
import java.util.Map;
import javax.annotation.PostConstruct;
-import org.apache.isis.applib.annotation.NotContributed;
-import org.apache.isis.applib.annotation.NotInServiceMenu;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Contributed;
import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.SemanticsOf;
/**
* Domain service that contributes an action (named '<tt>lookup</tt>') to
@@ -53,8 +55,8 @@ public class BookmarkHolderActionContributions {
//endregion
- @NotInServiceMenu
- @NotContributed(NotContributed.As.ASSOCIATION)
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(contributed = Contributed.AS_ACTION, cssClassFa = "fa-bookmark")
public Object lookup(final BookmarkHolder bookmarkHolder) {
return bookmarkService.lookup(bookmarkHolder);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusService.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusService.java
index 8a994a1..52d1c4e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusService.java
@@ -22,7 +22,6 @@ import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import com.google.common.collect.Sets;
import com.google.common.eventbus.EventBus;
-import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.Programmatic;
/**
@@ -41,7 +40,6 @@ import org.apache.isis.applib.annotation.Programmatic;
* (keeps things nice and symmetrical).
* </p>
*/
-@Hidden
public abstract class EventBusService {
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
index 8c9c98c..a4658b1 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
@@ -20,19 +20,15 @@ package org.apache.isis.applib.services.exceprecog;
import java.util.List;
import java.util.Map;
-
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
-
import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.base.Predicate;
import com.google.common.base.Throwables;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Programmatic;
/**
* Abstract implementation of {@link ExceptionRecognizer} that looks
@@ -44,7 +40,6 @@ import org.apache.isis.applib.annotation.Hidden;
* If a messaging-parsing {@link Function} is provided through the constructor,
* then the message can be altered. Otherwise the exception's {@link Throwable#getMessage() message} is returned as-is.
*/
-@Hidden
public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer2 {
public static final Logger LOG = LoggerFactory.getLogger(ExceptionRecognizerAbstract.class);
@@ -127,6 +122,7 @@ public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer
// //////////////////////////////////////
+ @Programmatic
public String recognize(Throwable ex) {
List<Throwable> causalChain = Throwables.getCausalChain(ex);
for (Throwable throwable : causalChain) {
@@ -143,6 +139,7 @@ public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer
return null;
}
+ @Programmatic
@Override
public Recognition recognize2(Throwable ex) {
return Recognition.of(category, recognize(ex));
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
index f3b6a63..fda96b6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
@@ -21,13 +21,9 @@ package org.apache.isis.applib.services.exceprecog;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
-
import com.google.common.collect.Lists;
-
-import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.Programmatic;
/**
@@ -43,7 +39,6 @@ import org.apache.isis.applib.annotation.Programmatic;
* recognize various types of constraint violations. These are grouped together as a single
* set through the use of this class.
*/
-@Hidden
public class ExceptionRecognizerComposite implements ExceptionRecognizer2 {
private final List<ExceptionRecognizer> services = Lists.newArrayList();
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
index 3bb34ba..fa5b652 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
@@ -24,7 +24,6 @@ import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.base.Throwables;
-import org.apache.isis.applib.annotation.Hidden;
/**
* An specific implementation of {@link ExceptionRecognizer} that looks for an
@@ -36,7 +35,6 @@ import org.apache.isis.applib.annotation.Hidden;
* If a messaging-parsing {@link Function} is provided through the constructor,
* then the message can be altered. Otherwise the exception's {@link Throwable#getMessage() message} is returned as-is.
*/
-@Hidden
public class ExceptionRecognizerForType extends ExceptionRecognizerAbstract {
protected final static Predicate<Throwable> ofTypeExcluding(final Class<? extends Throwable> exceptionType, final String... messages) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java b/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
index ac06563..e10835f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/homepage/AbstractHomePageDashboardService.java
@@ -20,10 +20,10 @@ package org.apache.isis.applib.services.homepage;
import org.apache.isis.applib.AbstractService;
import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.ActionSemantics;
-import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.HomePage;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.Where;
/**
* Convenience domain service to create a view model (eg a dashboard) to be rendered automatically
@@ -46,7 +46,6 @@ import org.apache.isis.applib.annotation.HomePage;
* for different users), then do <i>not</i> subclass from this service; instead write your own service
* with a no-arg action with the {@link HomePage} annotation.
*/
-@Hidden
public abstract class AbstractHomePageDashboardService<T extends ViewModel> extends AbstractService {
/**
@@ -84,7 +83,10 @@ public abstract class AbstractHomePageDashboardService<T extends ViewModel> exte
// //////////////////////////////////////
- @ActionSemantics(Of.SAFE)
+ @Action(
+ semantics = SemanticsOf.SAFE,
+ hidden = Where.EVERYWHERE
+ )
@HomePage
public T lookup() {
return newViewModelInstance(viewModel, id);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/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 9a2f187..b153931 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
@@ -65,7 +65,6 @@ import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
* <tt>o.a.i.core:isis-core-wrapper</tt> on the classpath; no further configuration is required.
* </p>
*/
-@Hidden
public interface WrapperFactory {
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
index 3abe518..9ef69e6 100644
--- a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
+++ b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
@@ -18,7 +18,6 @@
*/
package org.apache.isis.objectstore.jdo.applib.service.exceprecog;
-import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
@@ -31,10 +30,8 @@ import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
* If using the JDO Object store, either register in <tt>isis.properties</tt>, or
* compose your own, out of the underlying more fine-grained {@link ExceptionRecognizer} implementations.
*/
-@Hidden
public class ExceptionRecognizerCompositeForJdoObjectStore extends ExceptionRecognizerComposite {
-
-
+
public ExceptionRecognizerCompositeForJdoObjectStore() {
// most specific ones first
add(new ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException());
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
index 906b732..920867d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
@@ -87,14 +87,14 @@ public class FacetedMethod extends TypedHolderDefault implements IdentifiedHolde
}
public static FacetedMethod createForAction(final Class<?> declaringType, final Method method) {
- return new FacetedMethod(FeatureType.ACTION, declaringType, method, method.getReturnType(), getParameters(method));
+ return new FacetedMethod(FeatureType.ACTION, declaringType, method, method.getReturnType(), getParameters(declaringType, method));
}
- private static List<FacetedMethodParameter> getParameters(final Method actionMethod) {
+ private static List<FacetedMethodParameter> getParameters(final Class<?> declaringType, final Method actionMethod) {
final Class<?>[] parameterTypes = actionMethod.getParameterTypes();
final List<FacetedMethodParameter> actionParams = Lists.newArrayList();
for (final Class<?> parameterType : parameterTypes) {
- actionParams.add(new FacetedMethodParameter(parameterType));
+ actionParams.add(new FacetedMethodParameter(declaringType, actionMethod, parameterType));
}
return Collections.unmodifiableList(actionParams);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
index bd9327b..077e990 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
@@ -16,12 +16,24 @@
*/
package org.apache.isis.core.metamodel.facets;
+import java.lang.reflect.Method;
+import org.apache.isis.applib.Identifier;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-public class FacetedMethodParameter extends TypedHolderDefault {
+public class FacetedMethodParameter extends TypedHolderDefault implements IdentifiedHolder {
- public FacetedMethodParameter(final Class<?> type) {
+ private final Identifier identifier;
+
+ public FacetedMethodParameter(final Class<?> declaringType, final Method method, final Class<?> type) {
super(FeatureType.ACTION_PARAMETER, type);
+
+ // best we can do...
+ this.identifier = FeatureType.ACTION.identifierFor(declaringType, method);
}
+ @Override
+ public Identifier getIdentifier() {
+ return identifier;
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 29a6e5a..2d83c2b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -44,6 +44,7 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
@@ -86,8 +87,21 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
+
+public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, IsisConfigurationAware, AdapterManagerAware, RuntimeContextAware, MetaModelValidatorRefiner {
+
+ private final MetaModelValidatorForDeprecatedAnnotation actionSemanticsValidator = new MetaModelValidatorForDeprecatedAnnotation(ActionSemantics.class);
+ private final MetaModelValidatorForDeprecatedAnnotation actionInteractionValidator = new MetaModelValidatorForDeprecatedAnnotation(ActionInteraction.class);
+ private final MetaModelValidatorForDeprecatedAnnotation postsActionInvokedEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsActionInvokedEvent.class);
+ private final MetaModelValidatorForDeprecatedAnnotation bulkValidator = new MetaModelValidatorForDeprecatedAnnotation(Bulk.class);
+ private final MetaModelValidatorForDeprecatedAnnotation commandValidator = new MetaModelValidatorForDeprecatedAnnotation(Command.class);
+ private final MetaModelValidatorForDeprecatedAnnotation queryOnlyValidator = new MetaModelValidatorForDeprecatedAnnotation(QueryOnly.class);
+ private final MetaModelValidatorForDeprecatedAnnotation idempotentValidator = new MetaModelValidatorForDeprecatedAnnotation(Idempotent.class);
+ private final MetaModelValidatorForDeprecatedAnnotation publishedActionValidator = new MetaModelValidatorForDeprecatedAnnotation(PublishedAction.class);
+ private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator = new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
-public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, IsisConfigurationAware, AdapterManagerAware, RuntimeContextAware {
private ServicesInjector servicesInjector;
private IsisConfiguration configuration;
@@ -177,15 +191,17 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
// deprecated
if (postsActionInvokedEvent != null) {
final Class<? extends ActionInvokedEvent<?>> actionInvokedEventType = postsActionInvokedEvent.value();
- actionInvocationFacet = new ActionInvocationFacetForPostsActionInvokedEventAnnotation(
- actionInvokedEventType, actionMethod, typeSpec, returnSpec, actionDomainEventFacet, holder,
- getRuntimeContext(), getAdapterManager(), getServicesInjector());
+ actionInvocationFacet = actionInteractionValidator.flagIfPresent(
+ new ActionInvocationFacetForPostsActionInvokedEventAnnotation(
+ actionInvokedEventType, actionMethod, typeSpec, returnSpec, actionDomainEventFacet, holder,
+ getRuntimeContext(), getAdapterManager(), getServicesInjector()));
} else
// deprecated (but more recently)
if (actionInteraction != null) {
- actionInvocationFacet = new ActionInvocationFacetForDomainEventFromActionInteractionAnnotation(
- actionDomainEventType, actionMethod, typeSpec, returnSpec, actionDomainEventFacet, holder,
- getRuntimeContext(), getAdapterManager(), getServicesInjector());
+ actionInvocationFacet = actionInteractionValidator.flagIfPresent(
+ new ActionInvocationFacetForDomainEventFromActionInteractionAnnotation(
+ actionDomainEventType, actionMethod, typeSpec, returnSpec, actionDomainEventFacet, holder,
+ getRuntimeContext(), getAdapterManager(), getServicesInjector()));
} else
// current
if (action != null) {
@@ -231,18 +247,18 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
// check for the deprecated @QueryOnly...
final QueryOnly queryOnly = Annotations.getAnnotation(processMethodContext.getMethod(), QueryOnly.class);
- facet = ActionSemanticsFacetFromQueryOnlyAnnotation.create(queryOnly, holder);
+ facet = queryOnlyValidator.flagIfPresent(ActionSemanticsFacetFromQueryOnlyAnnotation.create(queryOnly, holder));
// else check for the deprecated @Idempotent...
if(facet == null) {
final Idempotent idempotent = Annotations.getAnnotation(processMethodContext.getMethod(), Idempotent.class);
- facet = ActionSemanticsFacetFromIdempotentAnnotation.create(idempotent, holder);
+ facet = idempotentValidator.flagIfPresent(ActionSemanticsFacetFromIdempotentAnnotation.create(idempotent, holder));
}
// else check for the deprecated @ActionSemantics ...
if(facet == null) {
final ActionSemantics actionSemantics = Annotations.getAnnotation(method, ActionSemantics.class);
- facet = ActionSemanticsFacetForActionSemanticsAnnotation.create(actionSemantics, holder);
+ facet = actionSemanticsValidator.flagIfPresent(ActionSemanticsFacetForActionSemanticsAnnotation.create(actionSemantics, holder));
}
// else check for @Action(semantics=...)
@@ -268,7 +284,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
// check for the deprecated @Bulk annotation first
final Bulk annotation = Annotations.getAnnotation(method, Bulk.class);
- facet = BulkFacetForBulkAnnotation.create(annotation, holder);
+ facet = bulkValidator.flagIfPresent(BulkFacetForBulkAnnotation.create(annotation, holder));
// else check for @Action(invokeOn=...)
if(facet == null) {
@@ -300,7 +316,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
// check for deprecated @Command annotation first
final Command annotation = Annotations.getAnnotation(method, Command.class);
- commandFacet = CommandFacetForCommandAnnotation.create(annotation, processMethodContext.getFacetHolder());
+ commandFacet = commandValidator.flagIfPresent(
+ CommandFacetForCommandAnnotation.create(annotation, processMethodContext.getFacetHolder()));
// else check for @Action(command=...)
if(commandFacet == null) {
@@ -330,7 +347,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
// check for deprecated @PublishedAction annotation first
final PublishedAction annotation = Annotations.getAnnotation(processMethodContext.getMethod(), PublishedAction.class);
- facet = PublishedActionFacetForPublishedActionAnnotation.create(annotation, holder);
+ facet = publishedActionValidator.flagIfPresent(
+ PublishedActionFacetForPublishedActionAnnotation.create(annotation, holder));
// else check for @Action(publishing=...)
if(facet == null) {
@@ -354,7 +372,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
// check for deprecated @TypeOf
final TypeOf annotation = Annotations.getAnnotation(method, TypeOf.class);
- facet = TypeOfFacetOnActionForTypeOfAnnotation.create(annotation, getSpecificationLoader(), holder);
+ facet = typeOfValidator.flagIfPresent(
+ TypeOfFacetOnActionForTypeOfAnnotation.create(annotation, getSpecificationLoader(), holder));
// check for @Action(typeOf=...)
if(facet == null) {
@@ -436,7 +455,20 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
}
// ///////////////////////////////////////////////////////////////
- // Dependencies
+
+ @Override
+ public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(actionSemanticsValidator);
+ metaModelValidator.add(actionInteractionValidator);
+ metaModelValidator.add(postsActionInvokedEventValidator);
+ metaModelValidator.add(bulkValidator);
+ metaModelValidator.add(commandValidator);
+ metaModelValidator.add(queryOnlyValidator);
+ metaModelValidator.add(idempotentValidator);
+ metaModelValidator.add(publishedActionValidator);
+ metaModelValidator.add(typeOfValidator);
+ }
+
// ///////////////////////////////////////////////////////////////
@Override
@@ -447,6 +479,16 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
@Override
public void setConfiguration(final IsisConfiguration configuration) {
this.configuration = configuration;
+
+ actionSemanticsValidator.setConfiguration(configuration);
+ actionInteractionValidator.setConfiguration(configuration);
+ postsActionInvokedEventValidator.setConfiguration(configuration);
+ bulkValidator.setConfiguration(configuration);
+ commandValidator.setConfiguration(configuration);
+ queryOnlyValidator.setConfiguration(configuration);
+ idempotentValidator.setConfiguration(configuration);
+ publishedActionValidator.setConfiguration(configuration);
+ typeOfValidator.setConfiguration(configuration);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
index 3ea6ff2..618a9ad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
@@ -24,6 +24,10 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacetAbstract;
+/**
+ * @deprecated
+ */
+@Deprecated
public class BulkFacetForBulkAnnotation extends BulkFacetAbstract {
public static BulkFacet create(
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
index 20c1ed7..95f815f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
@@ -27,6 +27,10 @@ import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+/**
+ * @deprecated
+ */
+@Deprecated
public class ActionInvocationFacetForPostsActionInvokedEventAnnotation
extends ActionInvocationFacetForDomainEventAbstract {
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromIdempotentAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromIdempotentAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromIdempotentAnnotation.java
index 188f1c4..375374d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromIdempotentAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromIdempotentAnnotation.java
@@ -25,6 +25,10 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
+/**
+ * @deprecated
+ */
+@Deprecated
public class ActionSemanticsFacetFromIdempotentAnnotation extends ActionSemanticsFacetAbstract {
private ActionSemanticsFacetFromIdempotentAnnotation(final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromQueryOnlyAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromQueryOnlyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromQueryOnlyAnnotation.java
index d015885..f52f3be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromQueryOnlyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFromQueryOnlyAnnotation.java
@@ -25,6 +25,10 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
+/**
+ * @deprecated
+ */
+@Deprecated
public class ActionSemanticsFacetFromQueryOnlyAnnotation extends ActionSemanticsFacetAbstract {
private ActionSemanticsFacetFromQueryOnlyAnnotation(final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/paged/annotation/PagedFacetOnActionFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/paged/annotation/PagedFacetOnActionFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/paged/annotation/PagedFacetOnActionFactory.java
index eef8f70..421049c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/paged/annotation/PagedFacetOnActionFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/paged/annotation/PagedFacetOnActionFactory.java
@@ -54,7 +54,7 @@ public class PagedFacetOnActionFactory extends FacetFactoryAbstract
PagedFacet pagedFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(pagedFacet == null) {
- pagedFacet = validator.invalidIfPresent(createFromPagedAnnotationIfPossible(processMethodContext));
+ pagedFacet = validator.flagIfPresent(createFromPagedAnnotationIfPossible(processMethodContext));
}
// no-op if null
FacetUtil.addFacet(pagedFacet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index 0e3b4f5..e4fcd65 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -29,9 +29,12 @@ import org.apache.isis.applib.annotation.PostsCollectionAddedToEvent;
import org.apache.isis.applib.annotation.PostsCollectionRemovedFromEvent;
import org.apache.isis.applib.annotation.TypeOf;
import org.apache.isis.applib.services.eventbus.CollectionDomainEvent;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
@@ -40,6 +43,7 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromArray;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
import org.apache.isis.core.metamodel.facets.collections.collection.disabled.DisabledFacetForCollectionAnnotation;
+import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromAbstract;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromCollectionInteractionAnnotation;
@@ -56,18 +60,24 @@ import org.apache.isis.core.metamodel.facets.collections.collection.modify.Colle
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromCollectionInteractionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromDefault;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForPostsCollectionRemovedFromEventAnnotation;
-import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.typeof.TypeOfFacetOnCollectionFromCollectionAnnotation;
+import org.apache.isis.core.metamodel.facets.collections.collection.typeof.TypeOfFacetOnCollectionFromTypeOfAnnotation;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
-import org.apache.isis.core.metamodel.facets.collections.collection.typeof.TypeOfFacetOnCollectionFromTypeOfAnnotation;
import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
+
+public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware {
-public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, ContributeeMemberFacetFactory {
+ private final MetaModelValidatorForDeprecatedAnnotation postsCollectionAddedToEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsCollectionAddedToEvent.class);
+ private final MetaModelValidatorForDeprecatedAnnotation postsCollectionRemovedFromEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsCollectionRemovedFromEvent.class);
+ private final MetaModelValidatorForDeprecatedAnnotation collectionInteractionValidator = new MetaModelValidatorForDeprecatedAnnotation(CollectionInteraction.class);
+ private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator = new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
@@ -117,21 +127,24 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
// search for @PostsCollectionAddedToEvent(value=...)
if(postsCollectionAddedToEvent != null) {
collectionDomainEventType = postsCollectionAddedToEvent.value();
- collectionDomainEventFacet = new CollectionDomainEventFacetForPostsCollectionAddedToEventAnnotation(
- collectionDomainEventType, servicesInjector, getSpecificationLoader(), holder);
+ collectionDomainEventFacet = postsCollectionAddedToEventValidator.flagIfPresent(
+ new CollectionDomainEventFacetForPostsCollectionAddedToEventAnnotation(
+ collectionDomainEventType, servicesInjector, getSpecificationLoader(), holder));
} else
// search for @PostsCollectionRemovedFromEvent(value=...)
if(postsCollectionRemovedFromEvent != null) {
collectionDomainEventType = postsCollectionRemovedFromEvent.value();
- collectionDomainEventFacet = new CollectionDomainEventFacetForPostsCollectionRemovedFromEventAnnotation(
- collectionDomainEventType, servicesInjector, getSpecificationLoader(), holder);
+ collectionDomainEventFacet = postsCollectionRemovedFromEventValidator.flagIfPresent(
+ new CollectionDomainEventFacetForPostsCollectionRemovedFromEventAnnotation(
+ collectionDomainEventType, servicesInjector, getSpecificationLoader(), holder));
} else
// search for @CollectionInteraction(value=...)
if(collectionInteraction != null) {
collectionDomainEventType = collectionInteraction.value();
- collectionDomainEventFacet = new CollectionDomainEventFacetForCollectionInteractionAnnotation(
- collectionDomainEventType, servicesInjector, getSpecificationLoader(), holder);
+ collectionDomainEventFacet = collectionInteractionValidator.flagIfPresent(
+ new CollectionDomainEventFacetForCollectionInteractionAnnotation(
+ collectionDomainEventType, servicesInjector, getSpecificationLoader(), holder));
} else
// search for @Collection(domainEvent=...)
if(collection != null && collection.domainEvent() != null) {
@@ -243,7 +256,8 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
// check for deprecated @TypeOf
final TypeOf annotation = Annotations.getAnnotation(method, TypeOf.class);
- facet = TypeOfFacetOnCollectionFromTypeOfAnnotation.create(annotation, facetHolder, getSpecificationLoader());
+ facet = typeOfValidator.flagIfPresent(
+ TypeOfFacetOnCollectionFromTypeOfAnnotation.create(annotation, facetHolder, getSpecificationLoader()));
// check for @Collection(typeOf=...)
if(facet == null) {
@@ -315,6 +329,28 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
}
+
+ // //////////////////////////////////////
+
+ @Override
+ public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(postsCollectionAddedToEventValidator);
+ metaModelValidator.add(postsCollectionRemovedFromEventValidator);
+ metaModelValidator.add(collectionInteractionValidator);
+ metaModelValidator.add(typeOfValidator);
+ }
+
+ // //////////////////////////////////////
+
+
+ @Override
+ public void setConfiguration(final IsisConfiguration configuration) {
+ postsCollectionAddedToEventValidator.setConfiguration(configuration);
+ postsCollectionRemovedFromEventValidator.setConfiguration(configuration);
+ collectionInteractionValidator.setConfiguration(configuration);
+ typeOfValidator.setConfiguration(configuration);
+ }
+
@Override
public void setServicesInjector(final ServicesInjector servicesInjector) {
this.servicesInjector = servicesInjector;
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/annotation/PagedFacetOnCollectionFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/annotation/PagedFacetOnCollectionFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/annotation/PagedFacetOnCollectionFactory.java
index 2d7f28f..4e8a844 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/annotation/PagedFacetOnCollectionFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/annotation/PagedFacetOnCollectionFactory.java
@@ -51,7 +51,7 @@ public class PagedFacetOnCollectionFactory extends FacetFactoryAbstract
PagedFacet pagedFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(pagedFacet == null) {
- pagedFacet = validator.invalidIfPresent(createFromPagedAnnotationIfPossible(processMethodContext));
+ pagedFacet = validator.flagIfPresent(createFromPagedAnnotationIfPossible(processMethodContext));
}
// no-op if null
FacetUtil.addFacet(pagedFacet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
index 33478a4..bfed8f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
@@ -46,7 +46,7 @@ public class CssClassFacetOnMemberFactory extends FacetFactoryAbstract implement
public void process(final ProcessMethodContext processMethodContext) {
CssClassFacet cssClassFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(cssClassFacet == null) {
- cssClassFacet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ cssClassFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
// no-op if null
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
index fb184bb..2bda368 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -56,7 +56,7 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
public void process(final ProcessMethodContext processMethodContext) {
CssClassFaFacet cssClassFaFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(cssClassFaFacet == null) {
- cssClassFaFacet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ cssClassFaFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
if(cssClassFaFacet == null) {
cssClassFaFacet = createFromConfiguredRegexIfPossible(processMethodContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/annotprop/DescribedAsFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/annotprop/DescribedAsFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/annotprop/DescribedAsFacetOnMemberFactory.java
index edaf759..19b1646 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/annotprop/DescribedAsFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/annotprop/DescribedAsFacetOnMemberFactory.java
@@ -49,7 +49,7 @@ public class DescribedAsFacetOnMemberFactory extends FacetFactoryAbstract implem
DescribedAsFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(facet == null) {
- facet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ facet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
if (facet == null) {
facet = createFromAnnotationOnReturnTypeIfPossible(processMethodContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
index 24c0fb4..b1ab3f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
@@ -47,7 +47,7 @@ public class DisabledFacetFactory extends FacetFactoryAbstract
public void process(final ProcessMethodContext processMethodContext) {
DisabledFacet disabledFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(disabledFacet == null) {
- disabledFacet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ disabledFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
// no-op if null
FacetUtil.addFacet(disabledFacet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
index 2eefa6a..795fcc3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
@@ -47,7 +47,7 @@ public class HiddenFacetOnMemberFactory extends FacetFactoryAbstract
public void process(final ProcessMethodContext processMethodContext) {
HiddenFacet hiddenFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(hiddenFacet == null) {
- hiddenFacet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ hiddenFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
// no-op if null
FacetUtil.addFacet(hiddenFacet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java
index 8d27f74..a5aad10 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java
@@ -47,7 +47,7 @@ public class NamedFacetOnMemberFactory extends FacetFactoryAbstract implements C
public void process(final ProcessMethodContext processMethodContext) {
NamedFacet namedFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(namedFacet == null) {
- namedFacet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ namedFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
// no-op if null
FacetUtil.addFacet(namedFacet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java
index 9164319..6ab0b42 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java
@@ -50,10 +50,10 @@ public class RenderFacetOrResolveFactory extends FacetFactoryAbstract
RenderFacet renderFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(renderFacet == null) {
- renderFacet = renderValidator.invalidIfPresent(createFromRenderAnnotationIfPossible(processMethodContext));
+ renderFacet = renderValidator.flagIfPresent(createFromRenderAnnotationIfPossible(processMethodContext));
}
if(renderFacet == null) {
- renderFacet = resolveValidator.invalidIfPresent(createFromResolveAnnotationIfPossible(processMethodContext));
+ renderFacet = resolveValidator.flagIfPresent(createFromResolveAnnotationIfPossible(processMethodContext));
}
// no-op if null
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotation.java
deleted file mode 100644
index 15d7f77..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotation.java
+++ /dev/null
@@ -1,37 +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.autocomplete.annotation;
-
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-
-public class AutoCompleteFacetAnnotation extends AutoCompleteFacetAbstract {
-
- public AutoCompleteFacetAnnotation(FacetHolder holder, Class<?> repositoryClass, String actionName, SpecificationLoader specificationLoader, AdapterManager adapterManager, ServicesInjector servicesInjector) {
- super(holder, repositoryClass, actionName, specificationLoader, adapterManager, servicesInjector);
- }
-
-
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java
deleted file mode 100644
index 128968d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java
+++ /dev/null
@@ -1,87 +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.autocomplete.annotation;
-
-import org.apache.isis.applib.annotation.AutoComplete;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class AutoCompleteFacetAnnotationFactory extends FacetFactoryAbstract implements AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(AutoComplete.class);
-
- private AdapterManager adapterManager;
- private ServicesInjector servicesInjector;
-
- public AutoCompleteFacetAnnotationFactory() {
- super(FeatureType.OBJECTS_POST_PROCESSING_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- final AutoComplete annotation = Annotations.getAnnotation(processClassContext.getCls(), AutoComplete.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
- }
-
- private AutoCompleteFacet create(final AutoComplete annotation, final FacetHolder holder) {
- if(annotation == null) { return null; }
-
- Class<?> repositoryClass = annotation.repository();
- String actionName = annotation.action();
-
- return new AutoCompleteFacetAnnotation(holder, repositoryClass, actionName, getSpecificationLoader(), adapterManager, servicesInjector);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- // //////////////////////////////////////
-
- @Override
- public void setAdapterManager(AdapterManager adapterManager) {
- this.adapterManager = adapterManager;
- }
-
- @Override
- public void setServicesInjector(ServicesInjector servicesInjector) {
- this.servicesInjector = servicesInjector;
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java
index be9ab8a..b301c00 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.Bookmarkable;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
@@ -52,17 +53,17 @@ public class BookmarkPolicyFacetViaBookmarkableAnnotationFactory extends FacetFa
@Override
public void process(final ProcessClassContext processClassContext) {
final Bookmarkable annotation = Annotations.getAnnotation(processClassContext.getCls(), Bookmarkable.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
+ FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder()));
}
@Override
public void process(final ProcessMethodContext processMethodContext) {
final Bookmarkable annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Bookmarkable.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
+ FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder()));
}
private BookmarkPolicyFacet create(final Bookmarkable annotation, final FacetHolder holder) {
- return annotation == null ? new BookmarkPolicyFacetFallback(holder) : new BookmarkPolicyFacetViaBookmarkableAnnotation(annotation.value(), holder);
+ return annotation == null ? new BookmarkPolicyFacetFallback(holder) : validator.flagIfPresent(new BookmarkPolicyFacetViaBookmarkableAnnotation(annotation.value(), holder));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotation.java
deleted file mode 100644
index 0181d13..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotation.java
+++ /dev/null
@@ -1,33 +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.choices.boundedannot;
-
-import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
-
-public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAbstract {
-
- public ChoicesFacetFromBoundedAnnotation(final FacetHolder holder, QuerySubmitter querySubmitter) {
- super(holder, querySubmitter);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotationFactory.java
deleted file mode 100644
index 784b6b7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedannot/ChoicesFacetFromBoundedAnnotationFactory.java
+++ /dev/null
@@ -1,55 +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.choices.boundedannot;
-
-import org.apache.isis.applib.annotation.Bounded;
-import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.QuerySubmitterAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.choices.ChoicesFacet;
-
-public class ChoicesFacetFromBoundedAnnotationFactory extends FacetFactoryAbstract implements QuerySubmitterAware {
-
- private QuerySubmitter querySubmitter;
-
- public ChoicesFacetFromBoundedAnnotationFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- final Bounded annotation = Annotations.getAnnotation(processClassContext.getCls(), Bounded.class);
- FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder()));
- }
-
- private ChoicesFacet create(final Bounded annotation, final FacetHolder holder) {
- return annotation == null ? null : new ChoicesFacetFromBoundedAnnotation(holder, querySubmitter);
- }
-
- @Override
- public void setQuerySubmitter(final QuerySubmitter querySubmitter) {
- this.querySubmitter = querySubmitter;
- }
-
-}