ISIS-1027: moving the handling of deprecated annotations to
{Property|Collection|Action|Parameter}AnnotationFacetFactory.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/31816a69
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/31816a69
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/31816a69
Branch: refs/heads/master
Commit: 31816a69b0a7e12b14b775e9cc4e3beabd4b3f99
Parents: b5f73ec
Author: Dan Haywood <[email protected]>
Authored: Fri Feb 6 09:58:18 2015 +0000
Committer: Dan Haywood <[email protected]>
Committed: Fri Feb 6 09:58:18 2015 +0000
----------------------------------------------------------------------
.../isis/applib/annotation/Collection.java | 9 ++
.../action/ActionAnnotationFacetFactory.java | 56 ++++++-
.../PrototypeFacetForPrototypeAnnotation.java | 37 +++++
.../annotation/DebugFacetAnnotationFactory.java | 2 +-
.../ExplorationFacetAnnotationFactory.java | 2 +-
...ActionNamedDebugExplorationFacetFactory.java | 4 +-
.../NotContributedFacetAnnotationFactory.java | 2 +-
.../NotInServiceMenuFacetAnnotationFactory.java | 2 +-
.../NotInServiceMenuFacetViaMethodFactory.java | 2 +-
.../annotation/PrototypeFacetAnnotation.java | 32 ----
.../PrototypeFacetAnnotationFactory.java | 62 --------
...MaxLengthFacetOnActionAnnotationFactory.java | 2 +-
.../CollectionAnnotationFacetFactory.java | 77 ++++++++--
...otPersistedFacetForCollectionAnnotation.java | 49 ++++++
...etForNotPersistedAnnotationOnCollection.java | 41 +++++
...NotPersistedFacetOnCollectionAnnotation.java | 31 ----
...istedFacetOnCollectionAnnotationFactory.java | 62 --------
.../SortedByFacetAnnotationFactory.java | 2 +-
.../DescribedAsFacetStaticMethodFactory.java | 2 +-
.../annotprop/DisabledFacetAnnotation.java | 7 +
.../annotprop/DisabledFacetFactory.java | 90 -----------
...abledFacetOnMemberFromPropertiesFactory.java | 56 +++++++
.../DisabledFacetStaticMethodFacetFactory.java | 2 +-
.../HiddenFacetOnMemberAnnotation.java | 12 +-
.../annotprop/HiddenFacetOnMemberFactory.java | 90 -----------
...iddenFacetOnMemberFromPropertiesFactory.java | 57 +++++++
.../HiddenFacetStaticMethodFactory.java | 2 +-
.../NamedFacetStaticMethodFactory.java | 2 +-
.../ActionOrderFacetAnnotationFactory.java | 2 +-
.../CssClassFacetOnTypeAnnotationFactory.java | 3 +-
.../CssClassFaFacetOnTypeAnnotationFactory.java | 2 +-
...DescribedAsFacetOnTypeAnnotationFactory.java | 2 +-
.../FieldOrderFacetAnnotationFactory.java | 3 +-
.../HiddenFacetOnTypeAnnotationFactory.java | 3 +-
.../MaskFacetOnTypeAnnotationFactory.java | 2 +-
.../MaxLengthFacetOnTypeAnnotationFactory.java | 2 +-
.../MultiLineFacetOnTypeAnnotationFactory.java | 2 +-
.../NamedFacetOnTypeAnnotationFactory.java | 2 +-
.../NamedFacetStaticMethodFactory.java | 2 +-
.../PagedFacetOnTypeAnnotationFactory.java | 2 +-
.../PluralAnnotationFacetFactory.java | 2 +-
.../PluralFacetStaticMethodFactory.java | 2 +-
.../RegExFacetOnTypeAnnotationFactory.java | 2 +-
...picalLengthFacetOnTypeAnnotationFactory.java | 2 +-
...tSatisfySpecificationOnTypeFacetFactory.java | 2 +-
...OnParameterInvertedByOptionalAnnotation.java | 39 -----
...eterInvertedByOptionalAnnotationFactory.java | 70 ---------
.../NamedFacetOnParameterAnnotationFactory.java | 2 +-
.../MandatoryFacetForParameterAnnotation.java | 79 ----------
.../MaxLengthFacetForParameterAnnotation.java | 47 ------
...pecificationFacetForParameterAnnotation.java | 54 -------
.../ParameterAnnotationFacetFactory.java | 152 +++++++++++++++++--
.../RegExFacetForParameterAnnotation.java | 74 ---------
.../MandatoryFacetForParameterAnnotation.java | 79 ++++++++++
...InvertedByOptionalAnnotationOnParameter.java | 53 +++++++
.../MaxLengthFacetForParameterAnnotation.java | 47 ++++++
...engthFacetOnParamForMaxLengthAnnotation.java | 37 +++++
...acetForMustSatisfyAnnotationOnParameter.java | 52 +++++++
...pecificationFacetForParameterAnnotation.java | 54 +++++++
.../regex/RegExFacetForParameterAnnotation.java | 78 ++++++++++
...egExFacetFromRegExAnnotationOnParameter.java | 77 ++++++++++
...BeforeFacetOnParameterAnnotationFactory.java | 3 +-
...LengthFacetOnParameterAnnotationFactory.java | 2 +-
.../MaxLengthFacetOnParameterAnnotation.java | 31 ----
...LengthFacetOnParameterAnnotationFactory.java | 71 ---------
...acetForMustSatisfyAnnotationOnParameter.java | 52 -------
...sfySpecificationOnParameterFacetFactory.java | 65 --------
...xFacetFacetOnParameterAnnotationFactory.java | 105 -------------
.../RegExFacetOnParameterAnnotation.java | 59 -------
...atoryFacetOnPropertyMandatoryAnnotation.java | 43 ------
...cetOnPropertyMandatoryAnnotationFactory.java | 59 -------
...tOnPropertyInvertedByOptionalAnnotation.java | 48 ------
...ertyInvertedByOptionalAnnotationFactory.java | 66 --------
...atoryFacetOnPropertyStaticMethodFactory.java | 2 +-
.../MultiLineFacetOnPropertyFactory.java | 16 +-
.../NotPersistedFacetOnPropertyAnnotation.java | 36 -----
...rsistedFacetOnPropertyAnnotationFactory.java | 58 -------
.../PropertyAnnotationFacetFactory.java | 136 ++++++++++++++---
...ryFacetForMandatoryAnnotationOnProperty.java | 48 ++++++
...tInvertedByOptionalAnnotationOnProperty.java | 48 ++++++
...thFacetForMaxLengthAnnotationOnProperty.java | 36 +++++
...FacetForMustSatisfyAnnotationOnProperty.java | 52 +++++++
...acetForNotPersistedAnnotationOnProperty.java | 36 +++++
.../regex/RegExFacetForPropertyAnnotation.java | 14 +-
...RegExFacetFromRegExAnnotationOnProperty.java | 74 +++++++++
...yBeforeAnnotationOnPropertyFacetFactory.java | 2 +-
.../MaxLengthFacetOnPropertyAnnotation.java | 31 ----
...xLengthFacetOnPropertyAnnotationFactory.java | 63 --------
...FacetForMustSatisfyAnnotationOnProperty.java | 52 -------
...isfySpecificationOnPropertyFacetFactory.java | 63 --------
...ExFacetFacetOnPropertyAnnotationFactory.java | 82 ----------
.../RegExFacetOnPropertyAnnotation.java | 69 ---------
.../validator/MetaModelValidatorComposite.java | 13 +-
...MetaModelValidatorForDeprecatedAbstract.java | 3 +-
...itableAnnotationInJdoApplibFacetFactory.java | 2 +-
...toryFromJdoColumnAnnotationFacetFactory.java | 4 +-
...ivedFromJdoColumnAnnotationFacetFactory.java | 4 +-
.../dflt/ProgrammingModelFacetsJava5.java | 34 +----
.../ActionAnnotationFacetFactoryTest.java | 8 +-
...tationFacetFactoryTest_actionInvocation.java | 12 +-
.../PrototypeFacetAnnotationFactoryTest.java | 65 ++++++++
.../PrototypeFacetAnnotationFactoryTest.java | 65 --------
.../CollectionAnnotationFacetFactoryTest.java | 8 +-
...dAnnotationOnCollectionFacetFactoryTest.java | 62 ++++++++
.../DisabledAnnotationFacetFactoryTest.java | 6 +-
.../HiddenAnnotationFacetFactoryTest.java | 6 +-
...icationFacetFactoryProcessParameterTest.java | 84 ++++++++++
...alAnnotationOnParameterFacetFactoryTest.java | 68 +++++++++
.../ParameterAnnotationFacetFactoryTest.java | 4 +
...ExAnnotationOnParameterFacetFactoryTest.java | 74 +++++++++
.../NotPersistedAnnotationFacetFactoryTest.java | 80 ----------
.../MandatoryAnnotationFacetFactoryTest.java | 59 +++++++
...ficationFacetFactoryProcessPropertyTest.java | 86 +++++++++++
...tedAnnotationOnPropertyFacetFactoryTest.java | 60 ++++++++
...nalAnnotationOnPropertyFacetFactoryTest.java | 72 +++++++++
.../PropertyAnnotationFacetFactoryTest.java | 8 +-
...gExAnnotationOnPropertyFacetFactoryTest.java | 79 ++++++++++
...icationFacetFactoryProcessParameterTest.java | 87 -----------
...ficationFacetFactoryProcessPropertyTest.java | 90 -----------
.../MandatoryAnnotationFacetFactoryTest.java | 53 -------
.../OptionalAnnotationFacetFactoryTest.java | 104 -------------
.../regex/RegExAnnotationFacetFactoryTest.java | 130 ----------------
.../RegExAnnotationOnTypeFacetFactoryTest.java | 48 ++++++
.../legacy/MemberInvalidTest.java | 8 +-
124 files changed, 2278 insertions(+), 2555 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
----------------------------------------------------------------------
diff --git
a/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
b/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
index cfa0f46..7649a21 100644
---
a/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
+++
b/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
@@ -90,6 +90,15 @@ public @interface Collection {
// //////////////////////////////////////
+
+ /**
+ * Indicates that the property should not be persisted.
+ */
+ boolean notPersisted() default false;
+
+
+ // //////////////////////////////////////
+
/**
* The type-of the elements held within the collection.
* @return
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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 2d83c2b..3f9b318 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
@@ -29,8 +29,11 @@ import org.apache.isis.applib.annotation.ActionInteraction;
import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.Command;
+import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.Idempotent;
import org.apache.isis.applib.annotation.PostsActionInvokedEvent;
+import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.applib.annotation.PublishedAction;
import org.apache.isis.applib.annotation.QueryOnly;
import org.apache.isis.applib.annotation.TypeOf;
@@ -78,9 +81,14 @@ import
org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetFo
import
org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetOnActionForTypeOfAnnotation;
import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import
org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForPrototypeAnnotation;
import
org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
import
org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import
org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetAnnotation;
+import
org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberAnnotation;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -101,6 +109,9 @@ public class ActionAnnotationFacetFactory extends
FacetFactoryAbstract implement
private final MetaModelValidatorForDeprecatedAnnotation
idempotentValidator = new
MetaModelValidatorForDeprecatedAnnotation(Idempotent.class);
private final MetaModelValidatorForDeprecatedAnnotation
publishedActionValidator = new
MetaModelValidatorForDeprecatedAnnotation(PublishedAction.class);
private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator =
new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
+ private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator =
new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
+ private final MetaModelValidatorForDeprecatedAnnotation disabledValidator
= new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
+ private final MetaModelValidatorForDeprecatedAnnotation prototypeValidator
= new MetaModelValidatorForDeprecatedAnnotation(Prototype.class);
private ServicesInjector servicesInjector;
@@ -117,8 +128,9 @@ public class ActionAnnotationFacetFactory extends
FacetFactoryAbstract implement
@Override
public void process(final ProcessMethodContext processMethodContext) {
- processInvocation(processMethodContext);
+ processDomainEvent(processMethodContext);
processHidden(processMethodContext);
+ processDisabled(processMethodContext);
processRestrictTo(processMethodContext);
processSemantics(processMethodContext);
processBulk(processMethodContext);
@@ -132,7 +144,7 @@ public class ActionAnnotationFacetFactory extends
FacetFactoryAbstract implement
processTypeOf(processMethodContext);
}
- void processInvocation(final ProcessMethodContext processMethodContext) {
+ void processDomainEvent(final ProcessMethodContext processMethodContext) {
final Method actionMethod = processMethodContext.getMethod();
@@ -224,19 +236,47 @@ public class ActionAnnotationFacetFactory extends
FacetFactoryAbstract implement
void processHidden(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ // check for deprecated @Hidden
+ final Hidden hiddenAnnotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
+ HiddenFacet facet =
hiddenValidator.flagIfPresent(HiddenFacetOnMemberAnnotation.create(hiddenAnnotation,
holder));
+
+ // else search for @Action(hidden=...)
final Action action = Annotations.getAnnotation(method, Action.class);
+ if(facet == null) {
+ facet = HiddenFacetForActionAnnotation.create(action, holder);
+ }
+ FacetUtil.addFacet(facet);
+ }
+
+ void processDisabled(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
final FacetHolder holder = processMethodContext.getFacetHolder();
- HiddenFacet facet = HiddenFacetForActionAnnotation.create(action,
holder);
+ // check for deprecated @Disabled
+ final Disabled annotation = Annotations.getAnnotation(method,
Disabled.class);
+ DisabledFacet facet =
disabledValidator.flagIfPresent(DisabledFacetAnnotation.create(annotation,
holder));
+
+ // there is no equivalent in @Action(...)
+
FacetUtil.addFacet(facet);
}
void processRestrictTo(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Action action = Annotations.getAnnotation(method, Action.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(PrototypeFacetForActionAnnotation.create(action,
holder));
+ // check for deprecated @Prototype
+ final Prototype annotation = Annotations.getAnnotation(method,
Prototype.class);
+ PrototypeFacet facet =
prototypeValidator.addFacetFlagIfPresent(PrototypeFacetForPrototypeAnnotation.create(annotation,
holder));
+
+ // else search for @Action(restrictTo=...)
+ final Action action = Annotations.getAnnotation(method, Action.class);
+ if(facet == null) {
+ facet = PrototypeFacetForActionAnnotation.create(action, holder);
+ }
+ FacetUtil.addFacet(facet);
}
void processSemantics(final ProcessMethodContext processMethodContext) {
@@ -467,6 +507,9 @@ public class ActionAnnotationFacetFactory extends
FacetFactoryAbstract implement
metaModelValidator.add(idempotentValidator);
metaModelValidator.add(publishedActionValidator);
metaModelValidator.add(typeOfValidator);
+ metaModelValidator.add(hiddenValidator);
+ metaModelValidator.add(disabledValidator);
+ metaModelValidator.add(prototypeValidator);
}
// ///////////////////////////////////////////////////////////////
@@ -489,6 +532,9 @@ public class ActionAnnotationFacetFactory extends
FacetFactoryAbstract implement
idempotentValidator.setConfiguration(configuration);
publishedActionValidator.setConfiguration(configuration);
typeOfValidator.setConfiguration(configuration);
+ hiddenValidator.setConfiguration(configuration);
+ disabledValidator.setConfiguration(configuration);
+ prototypeValidator.setConfiguration(configuration);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
new file mode 100644
index 0000000..49f5d8a
--- /dev/null
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
@@ -0,0 +1,37 @@
+/*
+ * 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.actions.action.prototype;
+
+import org.apache.isis.applib.annotation.Prototype;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import
org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
+
+public class PrototypeFacetForPrototypeAnnotation extends
PrototypeFacetAbstract {
+
+ public PrototypeFacetForPrototypeAnnotation(final FacetHolder holder) {
+ super(holder);
+ }
+
+
+ public static PrototypeFacet create(final Prototype annotation, final
FacetHolder holder) {
+ return annotation == null ? null : new
PrototypeFacetForPrototypeAnnotation(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
index ee2322a..864eab5 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
@@ -47,7 +47,7 @@ public class DebugFacetAnnotationFactory extends
FacetFactoryAbstract implements
public void process(final ProcessMethodContext processMethodContext) {
final Debug annotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Debug.class);
final DebugFacet facet = create(annotation,
processMethodContext.getFacetHolder());
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
private DebugFacet create(final Debug annotation, final FacetHolder
holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
index cf391f7..4daf0e9 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
@@ -47,7 +47,7 @@ public class ExplorationFacetAnnotationFactory extends
FacetFactoryAbstract impl
public void process(final ProcessMethodContext processMethodContext) {
final Exploration annotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Exploration.class);
final ExplorationFacet facet = create(annotation,
processMethodContext.getFacetHolder());
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
private ExplorationFacet create(final Exploration annotation, final
FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
index 02ca06c..cf588d1 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
@@ -84,7 +84,7 @@ public class ActionNamedDebugExplorationFacetFactory extends
MethodPrefixBasedFa
}
final FacetHolder facetedMethod =
processMethodContext.getFacetHolder();
final Facet facet = new DebugFacetViaNamingConvention(facetedMethod);
- debugValidator.addFacet(facet);
+ debugValidator.addFacetFlagIfPresent(facet);
}
private void attachExplorationFacetIfActionMethodNamePrefixed(final
ProcessMethodContext processMethodContext) {
@@ -96,7 +96,7 @@ public class ActionNamedDebugExplorationFacetFactory extends
MethodPrefixBasedFa
}
final FacetHolder facetedMethod =
processMethodContext.getFacetHolder();
final Facet facet = new
ExplorationFacetViaNamingConvention(facetedMethod);
- explorationValidator.addFacet(facet);
+ explorationValidator.addFacetFlagIfPresent(facet);
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
index b7f3b1e..e320ade 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
@@ -42,7 +42,7 @@ public class NotContributedFacetAnnotationFactory extends
FacetFactoryAbstract i
@Override
public void process(final ProcessMethodContext processMethodContext) {
final NotContributed annotation =
Annotations.getAnnotation(processMethodContext.getMethod(),
NotContributed.class);
- validator.addFacet(create(annotation,
processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation,
processMethodContext.getFacetHolder()));
}
private NotContributedFacet create(final NotContributed annotation, final
FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
index b531248..343673d 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
@@ -42,7 +42,7 @@ public class NotInServiceMenuFacetAnnotationFactory extends
FacetFactoryAbstract
@Override
public void process(final ProcessMethodContext processMethodContext) {
final NotInServiceMenu annotation =
Annotations.getAnnotation(processMethodContext.getMethod(),
NotInServiceMenu.class);
- validator.addFacet(create(annotation,
processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation,
processMethodContext.getFacetHolder()));
}
private NotInServiceMenuFacet create(final NotInServiceMenu annotation,
final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
index 25a3da9..fb7cb94 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
@@ -58,7 +58,7 @@ public class NotInServiceMenuFacetViaMethodFactory extends
MethodPrefixBasedFace
final FacetHolder facetedMethod =
processMethodContext.getFacetHolder();
final NotInServiceMenuFacetViaMethod facet = new
NotInServiceMenuFacetViaMethod(notInServiceMenuMethod, facetedMethod);
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
deleted file mode 100644
index fc9f560..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
+++ /dev/null
@@ -1,32 +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.actions.prototype.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import
org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
-
-public class PrototypeFacetAnnotation extends PrototypeFacetAbstract {
-
- public PrototypeFacetAnnotation(final FacetHolder holder) {
- super(holder);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
deleted file mode 100644
index 4cc6a48..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
+++ /dev/null
@@ -1,62 +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.actions.prototype.annotation;
-
-import org.apache.isis.applib.annotation.Prototype;
-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.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.actions.prototype.PrototypeFacet;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class PrototypeFacetAnnotationFactory extends FacetFactoryAbstract
implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new
MetaModelValidatorForDeprecatedAnnotation(Prototype.class);
-
- public PrototypeFacetAnnotationFactory() {
- super(FeatureType.ACTIONS_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Prototype annotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Prototype.class);
- validator.addFacet(create(annotation,
processMethodContext.getFacetHolder()));
- }
-
- private PrototypeFacet create(final Prototype annotation, final
FacetHolder holder) {
- return annotation == null ? null : new
PrototypeFacetAnnotation(holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite
metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
index 9cb1195..9e7375c 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
@@ -45,7 +45,7 @@ public class MaxLengthFacetOnActionAnnotationFactory extends
FacetFactoryAbstrac
@Override
public void process(final ProcessMethodContext processMethodContext) {
final MaxLength annotation =
Annotations.getAnnotation(processMethodContext.getMethod(), MaxLength.class);
- validator.addFacet(create(annotation,
processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation,
processMethodContext.getFacetHolder()));
}
private MaxLengthFacet create(final MaxLength annotation, final
FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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 e4fcd65..debf7fb 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
@@ -25,6 +25,9 @@ import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.CollectionInteraction;
+import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.NotPersisted;
import org.apache.isis.applib.annotation.PostsCollectionAddedToEvent;
import org.apache.isis.applib.annotation.PostsCollectionRemovedFromEvent;
import org.apache.isis.applib.annotation.TypeOf;
@@ -42,6 +45,7 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
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.all.hide.HiddenFacet;
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;
@@ -60,11 +64,17 @@ 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.notpersisted.NotPersistedFacetForCollectionAnnotation;
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.notpersisted.NotPersistedFacetForNotPersistedAnnotationOnCollection;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import
org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetAnnotation;
+import
org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberAnnotation;
import
org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
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;
@@ -77,6 +87,9 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
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 hiddenValidator =
new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
+ private final MetaModelValidatorForDeprecatedAnnotation disabledValidator
= new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
+ private final MetaModelValidatorForDeprecatedAnnotation
notPersistedValidator = new
MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator =
new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
private final CollectionTypeRegistry collectionTypeRegistry = new
CollectionTypeRegistry();
@@ -90,13 +103,14 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
@Override
public void process(final ProcessMethodContext processMethodContext) {
- processModify(processMethodContext);
+ processDomainEvent(processMethodContext);
processHidden(processMethodContext);
processEditing(processMethodContext);
+ processNotPersisted(processMethodContext);
processTypeOf(processMethodContext);
}
- void processModify(final ProcessMethodContext processMethodContext) {
+ void processDomainEvent(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
final FacetHolder holder = processMethodContext.getFacetHolder();
@@ -226,22 +240,56 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
void processHidden(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Collection collection = Annotations.getAnnotation(method,
Collection.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(
- HiddenFacetForCollectionAnnotation.create(collection, holder));
+ // check for deprecated @Hidden
+ final Hidden hiddenAnnotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
+ HiddenFacet facet =
hiddenValidator.flagIfPresent(HiddenFacetOnMemberAnnotation.create(hiddenAnnotation,
holder));
+
+ // else check for @Collection(hidden=...)
+ final Collection collection = Annotations.getAnnotation(method,
Collection.class);
+ if(facet == null) {
+ facet = HiddenFacetForCollectionAnnotation.create(collection,
holder);
+ }
+
+ FacetUtil.addFacet(facet);
}
void processEditing(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ // check for deprecated @Disabled
+ final Disabled annotation = Annotations.getAnnotation(method,
Disabled.class);
+ DisabledFacet facet =
disabledValidator.flagIfPresent(DisabledFacetAnnotation.create(annotation,
holder));
+
+ // else check for @Collection(editing=...)
final Collection collection = Annotations.getAnnotation(method,
Collection.class);
+ if(facet == null) {
+ facet = DisabledFacetForCollectionAnnotation.create(collection,
holder);
+ }
+
+ FacetUtil.addFacet(facet);
+ }
+
+ void processNotPersisted(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(
- DisabledFacetForCollectionAnnotation.create(collection,
holder));
+ // check for deprecated @NotPersisted first
+ final NotPersisted annotation = Annotations.getAnnotation(method,
NotPersisted.class);
+ NotPersistedFacet facet =
notPersistedValidator.addFacetFlagIfPresent(NotPersistedFacetForNotPersistedAnnotationOnCollection.create(annotation,
holder));
+
+ // else search for @Collection(notPersisted=...)
+ final Collection collection = Annotations.getAnnotation(method,
Collection.class);
+ if(facet == null) {
+ facet =
NotPersistedFacetForCollectionAnnotation.create(collection, holder);
+ }
+
+ FacetUtil.addFacet(facet);
}
+
void processTypeOf(final ProcessMethodContext processMethodContext) {
final FacetedMethod facetHolder =
processMethodContext.getFacetHolder();
@@ -259,13 +307,13 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
facet = typeOfValidator.flagIfPresent(
TypeOfFacetOnCollectionFromTypeOfAnnotation.create(annotation,
facetHolder, getSpecificationLoader()));
- // check for @Collection(typeOf=...)
+ // else check for @Collection(typeOf=...)
+ final Collection collection = Annotations.getAnnotation(method,
Collection.class);
if(facet == null) {
- final Collection collection = Annotations.getAnnotation(method,
Collection.class);
facet =
TypeOfFacetOnCollectionFromCollectionAnnotation.create(collection, facetHolder,
getSpecificationLoader());
}
- // infer from return type
+ // else infer from return type
if(facet == null) {
final Class<?> returnType = method.getReturnType();
if (returnType.isArray()) {
@@ -274,12 +322,11 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
}
}
- // infer from generic return type
+ // else infer from generic return type
if(facet == null) {
facet = inferFromGenericReturnType(processMethodContext);
}
-
FacetUtil.addFacet(facet);
}
@@ -337,7 +384,10 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
metaModelValidator.add(postsCollectionAddedToEventValidator);
metaModelValidator.add(postsCollectionRemovedFromEventValidator);
metaModelValidator.add(collectionInteractionValidator);
+ metaModelValidator.add(notPersistedValidator);
metaModelValidator.add(typeOfValidator);
+ metaModelValidator.add(hiddenValidator);
+ metaModelValidator.add(disabledValidator);
}
// //////////////////////////////////////
@@ -349,6 +399,9 @@ public class CollectionAnnotationFacetFactory extends
FacetFactoryAbstract imple
postsCollectionRemovedFromEventValidator.setConfiguration(configuration);
collectionInteractionValidator.setConfiguration(configuration);
typeOfValidator.setConfiguration(configuration);
+ notPersistedValidator.setConfiguration(configuration);
+ hiddenValidator.setConfiguration(configuration);
+ disabledValidator.setConfiguration(configuration);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
new file mode 100644
index 0000000..ce4e888
--- /dev/null
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
@@ -0,0 +1,49 @@
+/*
+ * 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.collections.collection.notpersisted;
+
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+
+public class NotPersistedFacetForCollectionAnnotation extends
NotPersistedFacetAbstract {
+
+ public NotPersistedFacetForCollectionAnnotation(final FacetHolder holder) {
+ super(holder);
+ }
+
+ public static NotPersistedFacet create(
+ final Collection collection,
+ final FacetHolder holder) {
+
+ if (collection == null) {
+ return null;
+ }
+
+ final boolean notPersisted = collection.notPersisted();
+ final boolean persisted = !notPersisted;
+ if(persisted) {
+ return null;
+ }
+ return new NotPersistedFacetForCollectionAnnotation(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
new file mode 100644
index 0000000..f43ea7b
--- /dev/null
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.collections.collection.notpersisted;
+
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+
+
+/**
+ * @deprecated
+ */
+@Deprecated
+public class NotPersistedFacetForNotPersistedAnnotationOnCollection extends
NotPersistedFacetAbstract {
+
+ public NotPersistedFacetForNotPersistedAnnotationOnCollection(final
FacetHolder holder) {
+ super(holder);
+ }
+
+ public static NotPersistedFacet create(final NotPersisted annotation,
final FacetHolder holder) {
+ return annotation == null ? null : new
NotPersistedFacetForNotPersistedAnnotationOnCollection(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
deleted file mode 100644
index fa7110c..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
+++ /dev/null
@@ -1,31 +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.collections.notpersisted.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
-
-public class NotPersistedFacetOnCollectionAnnotation extends
NotPersistedFacetAbstract {
-
- public NotPersistedFacetOnCollectionAnnotation(final FacetHolder holder) {
- super(holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
deleted file mode 100644
index 6ced282..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
+++ /dev/null
@@ -1,62 +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.collections.notpersisted.annotation;
-
-import org.apache.isis.applib.annotation.NotPersisted;
-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.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.propcoll.notpersisted.NotPersistedFacet;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class NotPersistedFacetOnCollectionAnnotationFactory extends
FacetFactoryAbstract implements MetaModelValidatorRefiner,
IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new
MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
-
- public NotPersistedFacetOnCollectionAnnotationFactory() {
- super(FeatureType.COLLECTIONS_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final NotPersisted annotation =
Annotations.getAnnotation(processMethodContext.getMethod(), NotPersisted.class);
- validator.addFacet(create(annotation,
processMethodContext.getFacetHolder()));
- }
-
- private NotPersistedFacet create(final NotPersisted annotation, final
FacetHolder holder) {
- return annotation == null ? null : new
NotPersistedFacetOnCollectionAnnotation(holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite
metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
index 4fef72c..7b6b62b 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
@@ -54,7 +54,7 @@ public class SortedByFacetAnnotationFactory extends
FacetFactoryAbstract impleme
@Override
public void process(final ProcessMethodContext processMethodContext) {
final SortedBy renderAnnotation =
Annotations.getAnnotation(processMethodContext.getMethod(), SortedBy.class);
- validator.addFacet(create(renderAnnotation,
processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(renderAnnotation,
processMethodContext.getFacetHolder()));
}
private SortedByFacet create(final SortedBy annotation, final FacetHolder
holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
index 7aff8a6..f0e50ff 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
@@ -79,7 +79,7 @@ public class DescribedAsFacetStaticMethodFactory extends
MethodPrefixBasedFacetF
final String description = invokeDescriptionMethod(descriptionMethod);
final FacetHolder facetedMethod =
processMethodContext.getFacetHolder();
- validator.addFacet(new DescribedAsFacetStaticMethod(description,
descriptionMethod, facetedMethod));
+ validator.addFacetFlagIfPresent(new
DescribedAsFacetStaticMethod(description, descriptionMethod, facetedMethod));
}
private static String invokeDescriptionMethod(final Method
descriptionMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
index 2ea6b6f..2b454fc 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
@@ -19,9 +19,11 @@
package org.apache.isis.core.metamodel.facets.members.disabled.annotprop;
+import org.apache.isis.applib.annotation.Disabled;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import
org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstractImpl;
public class DisabledFacetAnnotation extends DisabledFacetAbstractImpl {
@@ -30,4 +32,9 @@ public class DisabledFacetAnnotation extends
DisabledFacetAbstractImpl {
super(when, where, reason, holder);
}
+ public static DisabledFacet create(final Disabled annotation, final
FacetHolder facetHolder) {
+ return annotation != null
+ ? new DisabledFacetAnnotation(annotation.when(),
annotation.where(), annotation.reason(), facetHolder)
+ : null;
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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
deleted file mode 100644
index b1ab3f2..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
+++ /dev/null
@@ -1,90 +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.members.disabled.annotprop;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.Disabled;
-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;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class DisabledFacetFactory extends FacetFactoryAbstract
- implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner,
IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new
MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
-
- public DisabledFacetFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- DisabledFacet disabledFacet =
createFromMetadataPropertiesIfPossible(processMethodContext);
- if(disabledFacet == null) {
- disabledFacet =
validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
- }
- // no-op if null
- FacetUtil.addFacet(disabledFacet);
- }
-
- @Override
- public void process(ProcessContributeeMemberContext processMemberContext) {
- DisabledFacet disabledFacet =
createFromMetadataPropertiesIfPossible(processMemberContext);
- // no-op if null
- FacetUtil.addFacet(disabledFacet);
- }
-
- private static DisabledFacet createFromAnnotationIfPossible(final
ProcessMethodContext processMethodContext) {
- final Disabled annotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Disabled.class);
- return annotation != null
- ? new DisabledFacetAnnotation(annotation.when(),
annotation.where(), annotation.reason(), processMethodContext.getFacetHolder())
- : null;
- }
-
- private static DisabledFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder>
pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("disabled");
- return properties != null ? new
DisabledFacetFromProperties(properties, holder) : null;
- }
-
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite
metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
new file mode 100644
index 0000000..efc2cb9
--- /dev/null
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
@@ -0,0 +1,56 @@
+/*
+ * 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.members.disabled.annotprop;
+
+import java.util.Properties;
+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.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+
+public class DisabledFacetOnMemberFromPropertiesFactory extends
FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+
+ public DisabledFacetOnMemberFromPropertiesFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
FacetUtil.addFacet(createFromMetadataPropertiesIfPossible(processMethodContext));
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ DisabledFacet disabledFacet =
createFromMetadataPropertiesIfPossible(processMemberContext);
+ FacetUtil.addFacet(disabledFacet);
+ }
+
+ private static DisabledFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder>
pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("disabled");
+ return properties != null ? new
DisabledFacetFromProperties(properties, holder) : null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
index c824929..b59fdb8 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
@@ -81,7 +81,7 @@ public class DisabledFacetStaticMethodFacetFactory extends
MethodPrefixBasedFace
}
final FacetHolder facetedMethod =
processMethodContext.getFacetHolder();
- validator.addFacet(new DisabledFacetForStaticMethod(facetedMethod));
+ validator.addFacetFlagIfPresent(new
DisabledFacetForStaticMethod(facetedMethod));
}
private static Boolean invokeProtectMethod(final Method protectMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
index c51c59a..ad64990 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
@@ -19,15 +19,25 @@
package org.apache.isis.core.metamodel.facets.members.hidden.annotprop;
+import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import
org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
public class HiddenFacetOnMemberAnnotation extends HiddenFacetAbstractImpl {
- public HiddenFacetOnMemberAnnotation(final When when, Where where, final
FacetHolder holder) {
+ public static HiddenFacet create(final Hidden hiddenAnnotation, final
FacetHolder facetHolder) {
+ if (hiddenAnnotation == null) {
+ return null;
+ }
+ return new HiddenFacetOnMemberAnnotation(hiddenAnnotation.when(),
hiddenAnnotation.where(), facetHolder);
+ }
+
+ private HiddenFacetOnMemberAnnotation(final When when, Where where, final
FacetHolder holder) {
super(HiddenFacetOnMemberAnnotation.class, when, where, holder);
}
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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
deleted file mode 100644
index 795fcc3..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
+++ /dev/null
@@ -1,90 +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.members.hidden.annotprop;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.Hidden;
-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;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import
org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class HiddenFacetOnMemberFactory extends FacetFactoryAbstract
- implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner,
IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new
MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
-
- public HiddenFacetOnMemberFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- HiddenFacet hiddenFacet =
createFromMetadataPropertiesIfPossible(processMethodContext);
- if(hiddenFacet == null) {
- hiddenFacet =
validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
- }
- // no-op if null
- FacetUtil.addFacet(hiddenFacet);
- }
-
- @Override
- public void process(final ProcessContributeeMemberContext
processMemberContext) {
- HiddenFacet hiddenFacet =
createFromMetadataPropertiesIfPossible(processMemberContext);
- // no-op if null
- FacetUtil.addFacet(hiddenFacet);
- }
-
- private static HiddenFacet createFromAnnotationIfPossible(final
ProcessMethodContext processMethodContext) {
- final Hidden hiddenAnnotation =
Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
- return hiddenAnnotation != null
- ? new HiddenFacetOnMemberAnnotation(hiddenAnnotation.when(),
hiddenAnnotation.where(), processMethodContext.getFacetHolder())
- : null;
- }
-
- private static HiddenFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder>
pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("hidden");
- return properties != null ? new
HiddenFacetOnMemberFromProperties(properties, holder) : null;
- }
-
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite
metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
new file mode 100644
index 0000000..74c514e
--- /dev/null
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
@@ -0,0 +1,57 @@
+/*
+ * 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.members.hidden.annotprop;
+
+import java.util.Properties;
+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.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+
+public class HiddenFacetOnMemberFromPropertiesFactory extends
FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+
+ public HiddenFacetOnMemberFromPropertiesFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
FacetUtil.addFacet(createFromMetadataPropertiesIfPossible(processMethodContext));
+ }
+
+ @Override
+ public void process(final ProcessContributeeMemberContext
processMemberContext) {
+ HiddenFacet hiddenFacet =
createFromMetadataPropertiesIfPossible(processMemberContext);
+ // no-op if null
+ FacetUtil.addFacet(hiddenFacet);
+ }
+
+ private static HiddenFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder>
pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("hidden");
+ return properties != null ? new
HiddenFacetOnMemberFromProperties(properties, holder) : null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
index 3ee29c3..0450794 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
@@ -80,7 +80,7 @@ public class HiddenFacetStaticMethodFactory extends
MethodPrefixBasedFacetFactor
}
final FacetHolder facetedMethod =
processMethodContext.getFacetHolder();
- validator.addFacet(new HiddenFacetOnStaticMethod(facetedMethod));
+ validator.addFacetFlagIfPresent(new
HiddenFacetOnStaticMethod(facetedMethod));
}
private static Boolean invokeAlwaysHideMethod(final Method
alwaysHideMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
index 6d5a8de..e5a4fd3 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
@@ -82,7 +82,7 @@ public class NamedFacetStaticMethodFactory extends
MethodPrefixBasedFacetFactory
final String name = invokeNameMethod(nameMethod);
final FacetHolder facetHolder = processMethodContext.getFacetHolder();
- validator.addFacet(new NamedFacetStaticMethod(name, nameMethod,
facetHolder));
+ validator.addFacetFlagIfPresent(new NamedFacetStaticMethod(name,
nameMethod, facetHolder));
}
private static String invokeNameMethod(final Method nameMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
index 3fe4642..8c266d1 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
@@ -42,7 +42,7 @@ public class ActionOrderFacetAnnotationFactory extends
FacetFactoryAbstract impl
@Override
public void process(final ProcessClassContext processClassContext) {
final ActionOrder annotation =
Annotations.getAnnotation(processClassContext.getCls(), ActionOrder.class);
- validator.addFacet(create(annotation,
processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation,
processClassContext.getFacetHolder()));
}
private ActionOrderFacet create(final ActionOrder annotation, final
FacetHolder facetHolder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
index d075550..db131f7 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
@@ -23,7 +23,6 @@ import org.apache.isis.applib.annotation.CssClass;
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;
@@ -43,7 +42,7 @@ public class CssClassFacetOnTypeAnnotationFactory extends
FacetFactoryAbstract i
@Override
public void process(final ProcessClassContext processClassContext) {
final CssClass annotation =
Annotations.getAnnotation(processClassContext.getCls(), CssClass.class);
- validator.addFacet(create(annotation,
processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation,
processClassContext.getFacetHolder()));
}
private static CssClassFacet create(final CssClass annotation, final
FacetHolder holder) {