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/05 19:59:51 UTC
[1/2] isis git commit: ISIS-1027: more stuff...
Repository: isis
Updated Branches:
refs/heads/ISIS-1027 128f23c20 -> b5f73ec3d
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 29069c2..347de04 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -20,8 +20,11 @@ package org.apache.isis.core.metamodel.facets.object.domainobject;
import org.apache.isis.applib.annotation.Audited;
+import org.apache.isis.applib.annotation.AutoComplete;
+import org.apache.isis.applib.annotation.Bounded;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Immutable;
+import org.apache.isis.applib.annotation.ObjectType;
import org.apache.isis.applib.annotation.PublishedObject;
import org.apache.isis.applib.services.HasTransactionId;
import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -34,14 +37,16 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
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.object.audit.AuditableFacet;
-import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
import org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetForAuditedAnnotation;
import org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForAutoCompleteAnnotation;
import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForDomainObjectAnnotation;
import org.apache.isis.core.metamodel.facets.object.domainobject.choices.ChoicesFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.domainobject.choices.ChoicesFacetFromBoundedAnnotation;
import org.apache.isis.core.metamodel.facets.object.domainobject.editing.ImmutableFacetForDomainObjectAnnotation;
import org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForDomainObjectAnnotation;
import org.apache.isis.core.metamodel.facets.object.domainobject.publishing.PublishedObjectFacetForDomainObjectAnnotation;
@@ -49,15 +54,25 @@ import org.apache.isis.core.metamodel.facets.object.domainobject.publishing.Publ
import org.apache.isis.core.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation;
import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetForImmutableAnnotation;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetFromObjectTypeAnnotation;
import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
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 DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, QuerySubmitterAware {
+public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, QuerySubmitterAware, MetaModelValidatorRefiner {
+
+ private final MetaModelValidatorForDeprecatedAnnotation auditedValidator = new MetaModelValidatorForDeprecatedAnnotation(Audited.class);
+ private final MetaModelValidatorForDeprecatedAnnotation publishedObjectValidator = new MetaModelValidatorForDeprecatedAnnotation(PublishedObject.class);
+ private final MetaModelValidatorForDeprecatedAnnotation autoCompleteValidator = new MetaModelValidatorForDeprecatedAnnotation(AutoComplete.class);
+ private final MetaModelValidatorForDeprecatedAnnotation boundedValidator = new MetaModelValidatorForDeprecatedAnnotation(Bounded.class);
+ private final MetaModelValidatorForDeprecatedAnnotation immutableValidator = new MetaModelValidatorForDeprecatedAnnotation(Immutable.class);
+ private final MetaModelValidatorForDeprecatedAnnotation objectTypeValidator = new MetaModelValidatorForDeprecatedAnnotation(ObjectType.class);
+
private IsisConfiguration configuration;
private AdapterManager adapterManager;
@@ -100,7 +115,8 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
// check for the deprecated annotation first
final Audited annotation = Annotations.getAnnotation(cls, Audited.class);
- auditableFacet = AuditableFacetForAuditedAnnotation.create(annotation, holder);
+ auditableFacet = auditedValidator.flagIfPresent(
+ AuditableFacetForAuditedAnnotation.create(annotation, holder));
// else check for @DomainObject(auditing=....)
if(auditableFacet == null) {
@@ -130,7 +146,8 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
// check for the deprecated @PublishedObject annotation first
final PublishedObject publishedObject = Annotations.getAnnotation(processClassContext.getCls(), PublishedObject.class);
- publishedObjectFacet = PublishedObjectFacetForPublishedObjectAnnotation.create(publishedObject, facetHolder);
+ publishedObjectFacet = publishedObjectValidator.flagIfPresent(
+ PublishedObjectFacetForPublishedObjectAnnotation.create(publishedObject, facetHolder));
// else check from @DomainObject(publishing=...)
if(publishedObjectFacet == null) {
@@ -147,9 +164,18 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
final FacetHolder facetHolder = processClassContext.getFacetHolder();
- final AutoCompleteFacet facet = AutoCompleteFacetForDomainObjectAnnotation.create(
- domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder);
+ // check for the deprecated @AutoComplete annotation first
+ final AutoComplete annotation = Annotations.getAnnotation(processClassContext.getCls(), AutoComplete.class);
+ Facet facet = autoCompleteValidator.flagIfPresent(
+ AutoCompleteFacetForAutoCompleteAnnotation.create(annotation, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder));
+
+ // else check from @DomainObject(auditing=...)
+ if(facet == null) {
+ facet = AutoCompleteFacetForDomainObjectAnnotation.create(
+ domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder);
+ }
+ // then add
FacetUtil.addFacet(facet);
}
@@ -158,8 +184,17 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
final FacetHolder facetHolder = processClassContext.getFacetHolder();
- final Facet facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, querySubmitter, facetHolder);
+ // check for the deprecated @Bounded annotation first
+ final Bounded annotation = Annotations.getAnnotation(processClassContext.getCls(), Bounded.class);
+ Facet facet = boundedValidator.flagIfPresent(
+ ChoicesFacetFromBoundedAnnotation.create(annotation, querySubmitter, processClassContext.getFacetHolder()));
+ // else check from @DomainObject(bounded=...)
+ if(facet == null) {
+ facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, querySubmitter, facetHolder);
+ }
+
+ // then add
FacetUtil.addFacet(facet);
}
@@ -170,7 +205,8 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
// check for the deprecated annotation first
final Immutable annotation = Annotations.getAnnotation(processClassContext.getCls(), Immutable.class);
- ImmutableFacet facet = ImmutableFacetForImmutableAnnotation.create(annotation, processClassContext.getFacetHolder());
+ ImmutableFacet facet = immutableValidator.flagIfPresent(
+ ImmutableFacetForImmutableAnnotation.create(annotation, processClassContext.getFacetHolder()));
// else check from @DomainObject(editing=...)
if(facet == null) {
@@ -186,8 +222,17 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
final FacetHolder facetHolder = processClassContext.getFacetHolder();
- final ObjectSpecIdFacet facet = ObjectSpecIdFacetForDomainObjectAnnotation.create(domainObject, facetHolder);
+ // check for the deprecated annotation first
+ final ObjectType annotation = Annotations.getAnnotation(processClassContext.getCls(), ObjectType.class);
+ Facet facet = objectTypeValidator.flagIfPresent(
+ ObjectSpecIdFacetFromObjectTypeAnnotation.create(annotation, processClassContext.getFacetHolder()));
+
+ // else check from @DomainObject(objectType=...)
+ if(facet == null) {
+ facet = ObjectSpecIdFacetForDomainObjectAnnotation.create(domainObject, facetHolder);
+ }
+ // then add
FacetUtil.addFacet(facet);
}
@@ -203,9 +248,30 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
}
+ // //////////////////////////////////////
+
+ @Override
+ public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(publishedObjectValidator);
+ metaModelValidator.add(auditedValidator);
+ metaModelValidator.add(autoCompleteValidator);
+ metaModelValidator.add(boundedValidator);
+ metaModelValidator.add(immutableValidator);
+ metaModelValidator.add(objectTypeValidator);
+ }
+
+ // //////////////////////////////////////
+
@Override
public void setConfiguration(IsisConfiguration configuration) {
this.configuration = configuration;
+
+ publishedObjectValidator.setConfiguration(configuration);
+ auditedValidator.setConfiguration(configuration);
+ autoCompleteValidator.setConfiguration(configuration);
+ boundedValidator.setConfiguration(configuration);
+ immutableValidator.setConfiguration(configuration);
+ objectTypeValidator.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/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java
new file mode 100644
index 0000000..80d832a
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.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.object.domainobject.autocomplete;
+
+import org.apache.isis.applib.annotation.AutoComplete;
+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.AutoCompleteFacet;
+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 AutoCompleteFacetForAutoCompleteAnnotation extends AutoCompleteFacetAbstract {
+
+ public static AutoCompleteFacet create(
+ final AutoComplete annotation,
+ final SpecificationLoader specificationLoader,
+ final AdapterManager adapterManager,
+ final ServicesInjector servicesInjector,
+ final FacetHolder holder) {
+
+ if(annotation == null) {
+ return null;
+ }
+
+ final Class<?> repositoryClass = annotation.repository();
+ final String actionName = annotation.action();
+
+ return new AutoCompleteFacetForAutoCompleteAnnotation(holder, repositoryClass, actionName, specificationLoader, adapterManager, servicesInjector);
+ }
+
+ private AutoCompleteFacetForAutoCompleteAnnotation(final FacetHolder holder, final Class<?> repositoryClass, final String actionName, final SpecificationLoader specificationLoader, final AdapterManager adapterManager, final 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/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
new file mode 100644
index 0000000..e6f89c5
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
@@ -0,0 +1,44 @@
+/*
+ * 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.domainobject.choices;
+
+import org.apache.isis.applib.annotation.Bounded;
+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;
+import org.apache.isis.core.metamodel.facets.propparam.choices.ChoicesFacet;
+
+public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAbstract {
+
+ private ChoicesFacetFromBoundedAnnotation(final FacetHolder holder, QuerySubmitter querySubmitter) {
+ super(holder, querySubmitter);
+ }
+
+ public static ChoicesFacet create(final Bounded annotation, final QuerySubmitter querySubmitter, final FacetHolder holder) {
+ if (annotation == null) {
+ return null;
+ }
+
+ return new ChoicesFacetFromBoundedAnnotation(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/domainobject/objectspecid/ObjectSpecIdFacetFromObjectTypeAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetFromObjectTypeAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetFromObjectTypeAnnotation.java
new file mode 100644
index 0000000..5f5281b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetFromObjectTypeAnnotation.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.object.domainobject.objectspecid;
+
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacetAbstract;
+
+/**
+ * @deprecated
+ */
+@Deprecated
+public class ObjectSpecIdFacetFromObjectTypeAnnotation extends ObjectSpecIdFacetAbstract {
+
+ public static ObjectSpecIdFacet create(final ObjectType annotation, final FacetHolder holder) {
+ return annotation != null ? new ObjectSpecIdFacetFromObjectTypeAnnotation(annotation.value(), holder) : null;
+ }
+
+ private ObjectSpecIdFacetFromObjectTypeAnnotation(final String value,
+ final FacetHolder holder) {
+ super(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/objectspecid/annotation/ObjectSpecIdFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotation.java
deleted file mode 100644
index 518bf75..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotation.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.object.objectspecid.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacetAbstract;
-
-public class ObjectSpecIdFacetAnnotation extends ObjectSpecIdFacetAbstract {
-
- public ObjectSpecIdFacetAnnotation(final String value,
- final FacetHolder holder) {
- super(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/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java
deleted file mode 100644
index b97a4cc..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java
+++ /dev/null
@@ -1,64 +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.objectspecid.annotation;
-
-import org.apache.isis.applib.annotation.ObjectType;
-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.object.objectspecid.ObjectSpecIdFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class ObjectSpecIdFacetForObjectTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(ObjectType.class);
-
-
- public ObjectSpecIdFacetForObjectTypeAnnotationFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- final ObjectType annotation = Annotations.getAnnotation(processClassContext.getCls(), ObjectType.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
- }
-
- private ObjectSpecIdFacet create(final ObjectType annotation, final FacetHolder holder) {
- return annotation != null ? new ObjectSpecIdFacetAnnotation(annotation.value(), 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/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
index 11e4c18..7ba304b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
@@ -64,7 +64,7 @@ public class MultiLineFacetOnParameterAnnotationFactory extends FacetFactoryAbst
private void process(ProcessParameterContext processParameterContext, MultiLine parameterAnnotation) {
final MultiLine annotation = (MultiLine) parameterAnnotation;
- final MultiLineFacet facet = validator.invalidIfPresent(create(annotation, processParameterContext.getFacetHolder()));
+ final MultiLineFacet facet = validator.flagIfPresent(create(annotation, processParameterContext.getFacetHolder()));
// no-op if null
FacetUtil.addFacet(facet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java
index fd2350a..84182f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java
@@ -62,7 +62,7 @@ public class MaskFacetOnParameterAnnotationFactory extends FacetFactoryAbstract
}
private boolean addMaskFacetAndCorrespondingTitleFacet(final FacetHolder holder, final Mask annotation, final Class<?> cls) {
- final MaskFacet maskFacet = validator.invalidIfPresent(createMaskFacet(annotation, holder));
+ final MaskFacet maskFacet = validator.flagIfPresent(createMaskFacet(annotation, holder));
if (maskFacet == null) {
return false;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetFacetOnParameterAnnotationFactory.java
index 1dd69e7..4dd4c22 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetFacetOnParameterAnnotationFactory.java
@@ -65,7 +65,7 @@ public class RegExFacetFacetOnParameterAnnotationFactory extends FacetFactoryAbs
}
private void addRegexFacetAndCorrespondingTitleFacet(final FacetHolder holder, final RegEx annotation) {
- final RegExFacet regexFacet = validator.invalidIfPresent(createRegexFacet(annotation, holder));
+ final RegExFacet regexFacet = validator.flagIfPresent(createRegexFacet(annotation, holder));
if (regexFacet == null) {
return;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
index 0d28cbc..4f5c756 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
@@ -47,7 +47,7 @@ public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implem
public void process(final ProcessMethodContext processMethodContext) {
MultiLineFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(facet == null) {
- facet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ facet = 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/properties/property/PropertyAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index 141bee4..68962d4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -25,10 +25,13 @@ import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyInteraction;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.applib.services.eventbus.PropertyDomainEvent;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.Facet;
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;
@@ -68,8 +71,13 @@ import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
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.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, ContributeeMemberFacetFactory {
+public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware {
+
+ private final MetaModelValidatorForDeprecatedAnnotation postsPropertyChangedEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsPropertyChangedEvent.class);
+ private final MetaModelValidatorForDeprecatedAnnotation propertyInteractionValidator = new MetaModelValidatorForDeprecatedAnnotation(PropertyInteraction.class);
private ServicesInjector servicesInjector;
@@ -116,14 +124,16 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
// event on a thread-local, such that it is then picked up later by the setter/clear facets
if(postsPropertyChangedEvent != null) {
propertyDomainEventType = postsPropertyChangedEvent.value();
- propertyDomainEventFacet = new PropertyDomainEventFacetForPostsPropertyChangedEventAnnotation(
- propertyDomainEventType, getterFacet, servicesInjector, getSpecificationLoader(), holder);
+ propertyDomainEventFacet = postsPropertyChangedEventValidator.flagIfPresent(
+ new PropertyDomainEventFacetForPostsPropertyChangedEventAnnotation(
+ propertyDomainEventType, getterFacet, servicesInjector, getSpecificationLoader(), holder));
} else
// search for @PropertyInteraction(value=...)
if(propertyInteraction != null) {
propertyDomainEventType = propertyInteraction.value();
- propertyDomainEventFacet = new PropertyDomainEventFacetForPropertyInteractionAnnotation(
- propertyDomainEventType, getterFacet, servicesInjector, getSpecificationLoader(), holder);
+ propertyDomainEventFacet = propertyInteractionValidator.flagIfPresent(
+ new PropertyDomainEventFacetForPropertyInteractionAnnotation(
+ propertyDomainEventType, getterFacet, servicesInjector, getSpecificationLoader(), holder));
} else
// search for @Property(domainEvent=...)
if(property != null && property.domainEvent() != null) {
@@ -280,7 +290,7 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
@Override
- public void process(ContributeeMemberFacetFactory.ProcessContributeeMemberContext processMemberContext) {
+ public void process(final ContributeeMemberFacetFactory.ProcessContributeeMemberContext processMemberContext) {
final ObjectMember objectMember = processMemberContext.getFacetHolder();
@@ -301,6 +311,23 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
}
+ // //////////////////////////////////////
+
+ @Override
+ public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(postsPropertyChangedEventValidator);
+ metaModelValidator.add(propertyInteractionValidator);
+ }
+
+ // //////////////////////////////////////
+
+
+ @Override
+ public void setConfiguration(final IsisConfiguration configuration) {
+ postsPropertyChangedEventValidator.setConfiguration(configuration);
+ propertyInteractionValidator.setConfiguration(configuration);
+ }
+
@Override
public void setServicesInjector(final ServicesInjector servicesInjector) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthOnPropertyFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthOnPropertyFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthOnPropertyFacetFactory.java
index f52386f..e4df95d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthOnPropertyFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/typicallen/annotation/TypicalLengthOnPropertyFacetFactory.java
@@ -46,7 +46,7 @@ public class TypicalLengthOnPropertyFacetFactory extends FacetFactoryAbstract im
public void process(final ProcessMethodContext processMethodContext) {
TypicalLengthFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(facet == null) {
- facet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ facet = 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/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java
index 2205beb..84f220e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java
@@ -85,7 +85,7 @@ public class MaskFacetOnPropertyAnnotationFactory extends FacetFactoryAbstract i
}
private boolean addMaskFacetAndCorrespondingTitleFacet(final FacetHolder holder, final Mask annotation, final Class<?> cls) {
- final MaskFacet maskFacet = validator.invalidIfPresent(createMaskFacet(annotation, holder));
+ final MaskFacet maskFacet = validator.flagIfPresent(createMaskFacet(annotation, holder));
if (maskFacet == null) {
return false;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetFacetOnPropertyAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetFacetOnPropertyAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetFacetOnPropertyAnnotationFactory.java
index 6216212..860f1ca 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetFacetOnPropertyAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetFacetOnPropertyAnnotationFactory.java
@@ -57,7 +57,7 @@ public class RegExFacetFacetOnPropertyAnnotationFactory extends FacetFactoryAbst
}
private void addRegexFacetAndCorrespondingTitleFacet(final FacetHolder holder, final RegEx annotation) {
- final RegExFacet regexFacet = validator.invalidIfPresent(RegExFacetOnPropertyAnnotation.createRegexFacet(annotation, holder));
+ final RegExFacet regexFacet = validator.flagIfPresent(RegExFacetOnPropertyAnnotation.createRegexFacet(annotation, holder));
FacetUtil.addFacet(regexFacet);
final TitleFacet titleFacet = createTitleFacet(regexFacet);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index f864ac6..18ae963 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -30,6 +30,7 @@ import org.apache.isis.applib.PersistFailedException;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.RepositoryException;
import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
@@ -59,7 +60,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
-@DomainService
+@DomainService(nature = NatureOfService.DOMAIN)
public class DomainObjectContainerDefault implements DomainObjectContainer, QuerySubmitterAware, ObjectDirtierAware, DomainObjectServicesAware, ObjectPersistorAware, SpecificationLoaderAware, AuthenticationSessionProviderAware, AdapterManagerAware, LocalizationProviderAware, ExceptionRecognizer {
//region > titleOf
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAbstract.java
index 4168cf9..879ae76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAbstract.java
@@ -32,7 +32,7 @@ public abstract class MetaModelValidatorForDeprecatedAbstract extends MetaModelV
private IsisConfiguration configuration;
- public <T extends Facet> T invalidIfPresent(final T facet) {
+ public <T extends Facet> T flagIfPresent(final T facet) {
if(facet != null) {
failures.add(failureMessageFor(facet));
}
@@ -42,7 +42,7 @@ public abstract class MetaModelValidatorForDeprecatedAbstract extends MetaModelV
protected abstract String failureMessageFor(final Facet facet);
public void addFacet(final Facet facet) {
- FacetUtil.addFacet(invalidIfPresent(facet));
+ FacetUtil.addFacet(flagIfPresent(facet));
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAnnotation.java
index cb782ca..297d412 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForDeprecatedAnnotation.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.core.metamodel.specloader.validator;
+import org.apache.isis.applib.Identifier;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
@@ -31,7 +32,11 @@ public class MetaModelValidatorForDeprecatedAnnotation extends MetaModelValidato
@Override
protected String failureMessageFor(final Facet facet) {
- return String.format("@%s is deprecated: %s", annotationType.getSimpleName(), ((IdentifiedHolder) facet.getFacetHolder()).getIdentifier().toFullIdentityString());
+ final String simpleName = annotationType.getSimpleName();
+ final IdentifiedHolder facetHolder = (IdentifiedHolder) facet.getFacetHolder();
+ final Identifier identifier = facetHolder.getIdentifier();
+ final String s = identifier.toFullIdentityString();
+ return String.format("@%s is deprecated: %s", simpleName, s);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index 4cbe165..867488d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -67,7 +67,6 @@ import org.apache.isis.core.metamodel.facets.members.render.annotprop.RenderFace
import org.apache.isis.core.metamodel.facets.object.ViewModelSemanticCheckingFacetFactory;
import org.apache.isis.core.metamodel.facets.object.actionorder.annotation.ActionOrderFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.audit.markerifc.AuditableFacetMarkerInterfaceFactory;
-import org.apache.isis.core.metamodel.facets.object.autocomplete.annotation.AutoCompleteFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable.BookmarkPolicyFacetViaBookmarkableAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.callbacks.create.CreatedCallbackFacetFactory;
import org.apache.isis.core.metamodel.facets.object.callbacks.load.LoadCallbackFacetFactory;
@@ -75,7 +74,6 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.persist.PersistCal
import org.apache.isis.core.metamodel.facets.object.callbacks.persist.PersistCallbackViaSaveMethodFacetFactory;
import org.apache.isis.core.metamodel.facets.object.callbacks.remove.RemoveCallbackFacetFactory;
import org.apache.isis.core.metamodel.facets.object.callbacks.update.UpdateCallbackFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.choices.boundedannot.ChoicesFacetFromBoundedAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.choices.boundedmarkerifc.ChoicesFacetFromBoundedMarkerInterfaceFactory;
import org.apache.isis.core.metamodel.facets.object.choices.enums.EnumFacetUsingValueFacetUsingSemanticsProviderFactory;
import org.apache.isis.core.metamodel.facets.object.cssclass.annotation.CssClassFacetOnTypeAnnotationFactory;
@@ -117,7 +115,6 @@ import org.apache.isis.core.metamodel.facets.object.multiline.annotation.MultiLi
import org.apache.isis.core.metamodel.facets.object.named.annotation.NamedFacetOnTypeAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistableannot.NotPersistableFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistablemarkerifc.NotPersistableFacetMarkerInterfaceFactory;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.annotation.ObjectSpecIdFacetForObjectTypeAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassNameFactory;
import org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImplFactory;
import org.apache.isis.core.metamodel.facets.object.paged.annotation.PagedFacetOnTypeAnnotationFactory;
@@ -306,7 +303,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(RenderFacetOrResolveFactory.class);
// objects
- addFactory(ObjectSpecIdFacetForObjectTypeAnnotationFactory.class);
addFactory(IconFacetMethodFactory.class);
addFactory(CssClassFacetMethodFactory.class);
@@ -333,7 +329,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(ParentedFacetSinceAggregatedAnnotationFactory.class);
addFactory(BookmarkPolicyFacetViaBookmarkableAnnotationFactory.class);
addFactory(HomePageFacetAnnotationFactory.class);
- addFactory(ChoicesFacetFromBoundedAnnotationFactory.class);
addFactory(ChoicesFacetFromBoundedMarkerInterfaceFactory.class);
addFactory(DebugFacetAnnotationFactory.class);
@@ -438,7 +433,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(PagedFacetOnCollectionFactory.class);
addFactory(PagedFacetOnActionFactory.class);
- addFactory(AutoCompleteFacetAnnotationFactory.class);
// must come after any facets that install titles
addFactory(MaskFacetOnTypeAnnotationFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
index f3c550a..5291b48 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
@@ -72,7 +72,7 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
public void setUpFacetedMethodAndParameter() throws Exception {
facetHolder = new FacetHolderImpl();
facetedMethod = FacetedMethod.createForProperty(AbstractFacetFactoryTest.Customer.class, "firstName");
- facetedMethodParameter = new FacetedMethodParameter(String.class);
+ facetedMethodParameter = new FacetedMethodParameter(facetedMethod.getOwningType(), facetedMethod.getMethod(), String.class);
}
@After
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
index 5e901c0..cfb9bed 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
@@ -19,11 +19,10 @@
package org.apache.isis.core.metamodel.facets;
-import java.lang.reflect.Method;
-import java.util.List;
-
import junit.framework.TestCase;
+import java.lang.reflect.Method;
+import java.util.List;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -56,7 +55,7 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
programmableReflector = new ProgrammableReflector();
facetHolder = new FacetHolderImpl();
facetedMethod = FacetedMethod.createForProperty(Customer.class, "firstName");
- facetedMethodParameter = new FacetedMethodParameter(String.class);
+ facetedMethodParameter = new FacetedMethodParameter(facetedMethod.getOwningType(), facetedMethod.getMethod(), String.class);
methodRemover = new ProgrammableMethodRemover();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bounded/ChoicesFacetFromBoundedAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bounded/ChoicesFacetFromBoundedAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bounded/ChoicesFacetFromBoundedAnnotationFactoryTest.java
deleted file mode 100644
index fade913..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bounded/ChoicesFacetFromBoundedAnnotationFactoryTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.bounded;
-
-import org.apache.isis.applib.annotation.Bounded;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.object.choices.boundedannot.ChoicesFacetFromBoundedAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.choices.ChoicesFacet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-
-public class ChoicesFacetFromBoundedAnnotationFactoryTest extends AbstractFacetFactoryTest {
-
- private ChoicesFacetFromBoundedAnnotationFactory facetFactory;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- facetFactory = new ChoicesFacetFromBoundedAnnotationFactory();
- }
-
- @Override
- protected void tearDown() throws Exception {
- facetFactory = null;
- super.tearDown();
- }
-
- public void testBoundedAnnotationPickedUpOnClass() {
- @Bounded
- class Customer {
- }
-
- facetFactory.process(new ProcessClassContext(Customer.class, null, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(ChoicesFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof ChoicesFacetFromBoundedAbstract);
-
- assertNoMethodsRemoved();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ChoicesFacetFromBoundedAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ChoicesFacetFromBoundedAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ChoicesFacetFromBoundedAnnotationFactoryTest.java
new file mode 100644
index 0000000..f59d202
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ChoicesFacetFromBoundedAnnotationFactoryTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.domainobject;
+
+import org.apache.isis.applib.annotation.Bounded;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
+import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
+import org.apache.isis.core.metamodel.facets.propparam.choices.ChoicesFacet;
+
+public class ChoicesFacetFromBoundedAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+ private DomainObjectAnnotationFacetFactory facetFactory;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ facetFactory = new DomainObjectAnnotationFacetFactory();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ facetFactory = null;
+ super.tearDown();
+ }
+
+ public void testBoundedAnnotationPickedUpOnClass() {
+ @Bounded
+ class Customer {
+ }
+
+ facetFactory.processBounded(new ProcessClassContext(Customer.class, null, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(ChoicesFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof ChoicesFacetFromBoundedAbstract);
+
+ assertNoMethodsRemoved();
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ObjectTypeAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ObjectTypeAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ObjectTypeAnnotationFacetFactoryTest.java
new file mode 100644
index 0000000..8bf3101
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/ObjectTypeAnnotationFacetFactoryTest.java
@@ -0,0 +1,64 @@
+/*
+ * 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.domainobject;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
+import org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetFromObjectTypeAnnotation;
+import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+
+public class ObjectTypeAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
+
+ private DomainObjectAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ facetFactory = new DomainObjectAnnotationFacetFactory();
+ }
+
+ @Test
+ public void objectTypeAnnotationPickedUpOnClass() {
+
+ @ObjectType("CUS")
+ class Customer {
+ }
+
+ expectNoMethodsRemoved();
+
+ facetFactory.processObjectType(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final ObjectSpecIdFacet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
+
+ assertThat(facet, is(not(nullValue())));
+ assertThat(facet instanceof ObjectSpecIdFacetFromObjectTypeAnnotation, is(true));
+ assertThat(facet.value(), is(ObjectSpecId.of("CUS")));
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
deleted file mode 100644
index 0ddb2df..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,65 +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.objectspecid;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertThat;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.isis.applib.annotation.ObjectType;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.annotation.ObjectSpecIdFacetForObjectTypeAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.annotation.ObjectSpecIdFacetAnnotation;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
-
-public class ObjectTypeAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
-
- private ObjectSpecIdFacetForObjectTypeAnnotationFactory facetFactory;
-
- @Before
- public void setUp() throws Exception {
- facetFactory = new ObjectSpecIdFacetForObjectTypeAnnotationFactory();
- }
-
- @Test
- public void objectTypeAnnotationPickedUpOnClass() {
-
- @ObjectType("CUS")
- class Customer {
- }
-
- expectNoMethodsRemoved();
-
- facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
-
- final ObjectSpecIdFacet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
-
- assertThat(facet, is(not(nullValue())));
- assertThat(facet instanceof ObjectSpecIdFacetAnnotation, is(true));
- assertThat(facet.value(), is(ObjectSpecId.of("CUS")));
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
index 9570515..dc942ad 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
@@ -22,6 +22,7 @@ import com.google.common.eventbus.SubscriberExceptionContext;
import com.google.common.eventbus.SubscriberExceptionHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.eventbus.AbstractDomainEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.commons.exceptions.IsisApplicationException;
@@ -53,6 +54,7 @@ public class EventBusServiceDefault extends EventBusService {
* registrations are in effect ignored.
* </p>
*/
+ @Programmatic
@Override
public void register(final Object domainService) {
if(domainService instanceof RequestScopedService) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/eventbus/EventBusServiceJdo.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/eventbus/EventBusServiceJdo.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/eventbus/EventBusServiceJdo.java
index a7f4c64..48c3a2e 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/eventbus/EventBusServiceJdo.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/eventbus/EventBusServiceJdo.java
@@ -17,6 +17,8 @@
package org.apache.isis.objectstore.jdo.datanucleus.service.eventbus;
import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.core.runtime.services.eventbus.EventBusServiceDefault;
import org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis;
import org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis.Hint;
@@ -35,7 +37,7 @@ import org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis.Hint;
* with {@link org.apache.isis.applib.annotation.DomainService}. Because it is implemented in the core, this means
* that it is automatically registered and available for use; no further configuration is required.
*/
-@DomainService
+@DomainService(nature = NatureOfService.DOMAIN)
public class EventBusServiceJdo extends EventBusServiceDefault {
/**
@@ -45,6 +47,7 @@ public class EventBusServiceJdo extends EventBusServiceDefault {
* The {@link JDOStateManagerForIsis} sets a {@link JDOStateManagerForIsis#hint threadlocal}
* if it has been called.
*/
+ @Programmatic
@Override
protected boolean skip(Object event) {
return JDOStateManagerForIsis.hint.get() != Hint.NONE;
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
index c2bec85..c748e15 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
@@ -34,7 +34,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.isis.applib.FatalException;
import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -54,8 +54,7 @@ import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore;
* with {@link org.apache.isis.applib.annotation.DomainService}. Because it is implemented in the core, this means
* that it is automatically registered and available for use; no further configuration is required.
*/
-@DomainService
-@Hidden
+@DomainService(nature = NatureOfService.DOMAIN)
public class IsisJdoSupportImpl implements IsisJdoSupport {
@Programmatic
@@ -206,9 +205,4 @@ public class IsisJdoSupportImpl implements IsisJdoSupport {
public PersistenceManager getJdoPersistenceManager() {
return getObjectStore().getPersistenceManager();
}
-
-
-
-
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
index 041083e..f265aae 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.wrapper;
import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
/**
* This service provides the ability to "wrap" of a domain object such that it can
@@ -33,7 +34,7 @@ import org.apache.isis.applib.annotation.DomainService;
* <tt>o.a.i.core:isis-core-wrapper</tt> on the classpath, the service is automatically registered; no further
* configuration is required.
*/
-@DomainService
+@DomainService(nature = NatureOfService.DOMAIN)
public class WrapperFactoryDefault extends WrapperFactoryJavassist {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
index 3698130..85da8c8 100644
--- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
+++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
@@ -33,10 +33,10 @@ import org.apache.isis.applib.AbstractFactoryAndRepository;
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.Disabled;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.annotation.Where;
@@ -56,7 +56,10 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
describedAs = "The relative priority of this item compared to others not yet complete (using 'due by' date)",
contributed = Contributed.AS_ASSOCIATION
)
- @Disabled(reason="Relative priority, derived from due date")
+// @Property(
+// editingDisabledReason = "Relative priority, derived from due date"
+// )
+// @Disabled(reason="Relative priority, derived from due date")
public Integer relativePriority(final ToDoItem toDoItem) {
return queryResultsCache.execute(new Callable<Integer>(){
@Override
@@ -202,7 +205,7 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
public Categorized updateCategory(
final Categorized item,
final @ParameterLayout(named="Category") Category category,
- final @Optional @ParameterLayout(named="Subcategory") Subcategory subcategory) {
+ final @Parameter(optional = Optionality.TRUE) @ParameterLayout(named="Subcategory") Subcategory subcategory) {
item.setCategory(category);
item.setSubcategory(subcategory);
return item;
http://git-wip-us.apache.org/repos/asf/isis/blob/b5f73ec3/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
index 1d8cd9f..ec5195a 100644
--- a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -94,7 +94,7 @@ isis.authorization=shiro
#
# Whether deprecated annotations or method prefixes should raise metamodel validation errors. Default is false.
#
-#isis.reflector.validator.allowDeprecated=false
+isis.reflector.validator.allowDeprecated=false
[2/2] isis git commit: ISIS-1027: more stuff...
Posted by da...@apache.org.
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/ISIS-1027
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;
- }
-
-}