You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/02/06 10:58:25 UTC
[1/5] isis git commit: ISIS-1027: moving the handling of deprecated
annotations to {Property|Collection|Action|Parameter}AnnotationFacetFactory.
Repository: isis
Updated Branches:
refs/heads/ISIS-1027 b5f73ec3d -> 31816a69b
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/OptionalAnnotationOnPropertyFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/OptionalAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/OptionalAnnotationOnPropertyFacetFactoryTest.java
new file mode 100644
index 0000000..ef38092
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/OptionalAnnotationOnPropertyFacetFactoryTest.java
@@ -0,0 +1,72 @@
+/*
+ * 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.properties.property;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetInvertedByOptionalAnnotationOnProperty;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
+
+public class OptionalAnnotationOnPropertyFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private PropertyAnnotationFacetFactory facetFactory;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new PropertyAnnotationFacetFactory();
+ }
+
+ public void testOptionalAnnotationPickedUpOnProperty() {
+
+ class Customer {
+ @Optional
+ public String getFirstName() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getFirstName");
+
+ facetFactory.processOptional(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(MandatoryFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof MandatoryFacetInvertedByOptionalAnnotationOnProperty);
+ }
+
+ public void testOptionalAnnotationIgnoredForPrimitiveOnProperty() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ @Optional
+ public int getNumberOfOrders() {
+ return 0;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getNumberOfOrders");
+
+ facetFactory.processOptional(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ assertNull(facetedMethod.getFacet(MandatoryFacet.class));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
index 5927790..e6455dd 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
@@ -159,7 +159,7 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, propertyMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(PropertyDomainEventFacet.class);
@@ -214,7 +214,7 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, propertyMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(PropertyDomainEventFacet.class);
@@ -268,7 +268,7 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, propertyMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(PropertyDomainEventFacet.class);
@@ -316,7 +316,7 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, propertyMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(PropertyDomainEventFacet.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java
new file mode 100644
index 0000000..1763b56
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java
@@ -0,0 +1,79 @@
+/*
+ * 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.properties.property;
+
+import java.lang.reflect.Method;
+import org.junit.Before;
+import org.apache.isis.applib.annotation.RegEx;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.properties.property.regex.RegExFacetFromRegExAnnotationOnProperty;
+
+public class RegExAnnotationOnPropertyFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private PropertyAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new PropertyAnnotationFacetFactory();
+ }
+
+ public void testRegExAnnotationPickedUpOnProperty() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ @RegEx(validation = "^A.*", caseSensitive = false)
+ public String getFirstName() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getFirstName");
+
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(RegExFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof RegExFacetFromRegExAnnotationOnProperty);
+ final RegExFacetFromRegExAnnotationOnProperty regExFacet = (RegExFacetFromRegExAnnotationOnProperty) facet;
+ assertEquals("^A.*", regExFacet.validation());
+ assertEquals(false, regExFacet.caseSensitive());
+ }
+
+ public void testRegExAnnotationIgnoredForNonStringsProperty() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ @RegEx(validation = "^A.*", caseSensitive = false)
+ public int getNumberOfOrders() {
+ return 0;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getNumberOfOrders");
+
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ assertNull(facetedMethod.getFacet(RegExFacet.class));
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessParameterTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
deleted file mode 100644
index 771e9aa..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessParameterTest.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.propparam.specification;
-
-import java.lang.reflect.Method;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
-import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
-import org.apache.isis.core.metamodel.facets.param.validating.mustsatisfyspec.MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter;
-import org.apache.isis.core.metamodel.facets.param.validating.mustsatisfyspec.MustSatisfySpecificationOnParameterFacetFactory;
-import org.apache.isis.core.unittestsupport.jmocking.JavassistImposteriser;
-
-import static org.apache.isis.core.commons.matchers.IsisMatchers.anInstanceOf;
-
-@RunWith(JMock.class)
-public class MustSatisfySpecificationFacetFactoryProcessParameterTest {
-
- private final Mockery mockery = new JUnit4Mockery() {
- {
- setImposteriser(JavassistImposteriser.INSTANCE);
- }
- };
-
- private FacetedMethodParameter mockFacetedMethodParameter;
-
- private Class<DomainObjectWithoutMustSatisfyAnnotations> domainObjectClassWithoutAnnotation;
- private Class<DomainObjectWithMustSatisfyAnnotations> domainObjectClassWithAnnotation;
- private Method changeLastNameMethodWithout;
- private Method changeLastNameMethodWith;
-
- @Before
- public void setUp() throws Exception {
- mockFacetedMethodParameter = mockery.mock(FacetedMethodParameter.class);
- domainObjectClassWithoutAnnotation = DomainObjectWithoutMustSatisfyAnnotations.class;
- domainObjectClassWithAnnotation = DomainObjectWithMustSatisfyAnnotations.class;
- changeLastNameMethodWithout = domainObjectClassWithoutAnnotation.getMethod("changeLastName", String.class);
- changeLastNameMethodWith = domainObjectClassWithAnnotation.getMethod("changeLastName", String.class);
- }
-
- @Test
- public void addsAMustSatisfySpecificationFacetIfAnnotated() {
- final MustSatisfySpecificationOnParameterFacetFactory facetFactory = new MustSatisfySpecificationOnParameterFacetFactory();
-
- mockery.checking(new Expectations() {
- {
- one(mockFacetedMethodParameter).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.class)));
- }
- });
- facetFactory.processParams(new ProcessParameterContext(changeLastNameMethodWith, 0, mockFacetedMethodParameter));
- }
-
- @Test
- public void doesNotAddsAMustSatisfySpecificationFacetIfNotAnnotated() {
- final MustSatisfySpecificationOnParameterFacetFactory facetFactory = new MustSatisfySpecificationOnParameterFacetFactory();
-
- mockery.checking(new Expectations() {
- {
- never(mockFacetedMethodParameter).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.class)));
- }
- });
- facetFactory.processParams(new ProcessParameterContext(changeLastNameMethodWithout, 0, mockFacetedMethodParameter));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java
deleted file mode 100644
index ee15092..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.propparam.specification;
-
-import java.lang.reflect.Method;
-import org.jmock.Expectations;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.properties.validating.mustsatisfyspec.MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty;
-import org.apache.isis.core.metamodel.facets.properties.validating.mustsatisfyspec.MustSatisfySpecificationOnPropertyFacetFactory;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import static org.apache.isis.core.commons.matchers.IsisMatchers.anInstanceOf;
-
-public class MustSatisfySpecificationFacetFactoryProcessPropertyTest {
-
- @Rule
- public JUnitRuleMockery2 mockery = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
-
- private MethodRemover mockMethodRemover;
- private FacetedMethod mockFacetHolder;
-
- private Class<DomainObjectWithoutMustSatisfyAnnotations> domainObjectClassWithoutAnnotation;
- private Class<DomainObjectWithMustSatisfyAnnotations> domainObjectClassWithAnnotation;
- private Method firstNameMethodWithout;
- private Method firstNameMethodWith;
-
- @Before
- public void setUp() throws Exception {
- mockMethodRemover = mockery.mock(MethodRemover.class);
- mockFacetHolder = mockery.mock(FacetedMethod.class);
- domainObjectClassWithoutAnnotation = DomainObjectWithoutMustSatisfyAnnotations.class;
- domainObjectClassWithAnnotation = DomainObjectWithMustSatisfyAnnotations.class;
- firstNameMethodWithout = domainObjectClassWithoutAnnotation.getMethod("getFirstName");
- firstNameMethodWith = domainObjectClassWithAnnotation.getMethod("getFirstName");
- }
-
- @After
- public void tearDown() throws Exception {
- mockMethodRemover = null;
- mockFacetHolder = null;
- }
-
- @Test
- public void addsAMustSatisfySpecificationFacetIfAnnotated() {
- final MustSatisfySpecificationOnPropertyFacetFactory facetFactory = new MustSatisfySpecificationOnPropertyFacetFactory();
-
- mockery.checking(new Expectations() {
- {
- one(mockFacetHolder).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.class)));
- }
- });
- facetFactory.process(new ProcessMethodContext(domainObjectClassWithAnnotation.getClass(), null, null, firstNameMethodWith, mockMethodRemover, mockFacetHolder));
- }
-
- @Test
- public void doesNotAddsAMustSatisfySpecificationFacetIfNotAnnotated() {
- final MustSatisfySpecificationOnPropertyFacetFactory facetFactory = new MustSatisfySpecificationOnPropertyFacetFactory();
-
- mockery.checking(new Expectations() {
- {
- never(mockFacetHolder).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.class)));
- }
- });
- facetFactory.process(new ProcessMethodContext(domainObjectClassWithAnnotation.getClass(), null, null, firstNameMethodWithout, mockMethodRemover, mockFacetHolder));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/MandatoryAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/MandatoryAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/MandatoryAnnotationFacetFactoryTest.java
deleted file mode 100644
index 00d4cbe..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/MandatoryAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,53 +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.propparam.validate.mandatory;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Mandatory;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.mandatory.MandatoryFacetOnPropertyMandatoryAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.mandatory.MandatoryFacetOnPropertyMandatoryAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-
-public class MandatoryAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
-
- public void testMandatoryAnnotationPickedUpOnProperty() {
- final MandatoryFacetOnPropertyMandatoryAnnotationFactory facetFactory = new MandatoryFacetOnPropertyMandatoryAnnotationFactory();
-
- class Customer {
- @Mandatory
- public String getFirstName() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getFirstName");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(MandatoryFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof MandatoryFacetOnPropertyMandatoryAnnotation);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactoryTest.java
deleted file mode 100644
index b4f61b2..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,104 +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.propparam.validate.mandatory;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
-import org.apache.isis.core.metamodel.facets.param.mandatory.annotation.MandatoryFacetOnParameterInvertedByOptionalAnnotation;
-import org.apache.isis.core.metamodel.facets.param.mandatory.annotation.MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.optional.MandatoryFacetOnPropertyInvertedByOptionalAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.optional.MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-
-public class OptionalAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
-
- public void testOptionalAnnotationPickedUpOnProperty() {
- final MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory facetFactory = new MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory();
-
- class Customer {
- @Optional
- public String getFirstName() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getFirstName");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(MandatoryFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof MandatoryFacetOnPropertyInvertedByOptionalAnnotation);
- }
-
- public void testOptionalAnnotationPickedUpOnActionParameter() {
- final MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory facetFactory = new MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction(@Optional final String foo) {
- }
- }
- final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
-
- facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
-
- final Facet facet = facetedMethodParameter.getFacet(MandatoryFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof MandatoryFacetOnParameterInvertedByOptionalAnnotation);
- }
-
- public void testOptionalAnnotationIgnoredForPrimitiveOnProperty() {
- final MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory facetFactory = new MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- @Optional
- public int getNumberOfOrders() {
- return 0;
- }
- }
- final Method method = findMethod(Customer.class, "getNumberOfOrders");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- assertNull(facetedMethod.getFacet(MandatoryFacet.class));
- }
-
- public void testOptionalAnnotationIgnoredForPrimitiveOnActionParameter() {
- final MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory facetFactory = new MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction(@Optional final int foo) {
- }
- }
- final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
-
- facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
-
- assertNull(facetedMethod.getFacet(MandatoryFacet.class));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationFacetFactoryTest.java
deleted file mode 100644
index 50c32ce..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,130 +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.propparam.validate.regex;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.RegEx;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
-import org.apache.isis.core.metamodel.facets.object.regex.annotation.RegExFacetOnTypeAnnotation;
-import org.apache.isis.core.metamodel.facets.object.regex.annotation.RegExFacetOnTypeAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.regexannot.RegExFacetFacetOnParameterAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.regexannot.RegExFacetOnParameterAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.validating.regexannot.RegExFacetFacetOnPropertyAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.validating.regexannot.RegExFacetOnPropertyAnnotation;
-
-public class RegExAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
-
- public void testRegExAnnotationPickedUpOnClass() {
- final RegExFacetOnTypeAnnotationFactory facetFactory = new RegExFacetOnTypeAnnotationFactory();
-
- @RegEx(validation = "^A.*", caseSensitive = false)
- class Customer {
- }
- facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(RegExFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof RegExFacetOnTypeAnnotation);
- final RegExFacetOnTypeAnnotation regExFacet = (RegExFacetOnTypeAnnotation) facet;
- assertEquals("^A.*", regExFacet.validation());
- assertEquals(false, regExFacet.caseSensitive());
- }
-
- public void testRegExAnnotationPickedUpOnProperty() {
- final RegExFacetFacetOnPropertyAnnotationFactory facetFactory = new RegExFacetFacetOnPropertyAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- @RegEx(validation = "^A.*", caseSensitive = false)
- public String getFirstName() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getFirstName");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(RegExFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof RegExFacetOnPropertyAnnotation);
- final RegExFacetOnPropertyAnnotation regExFacet = (RegExFacetOnPropertyAnnotation) facet;
- assertEquals("^A.*", regExFacet.validation());
- assertEquals(false, regExFacet.caseSensitive());
- }
-
- public void testRegExAnnotationPickedUpOnActionParameter() {
- final RegExFacetFacetOnParameterAnnotationFactory facetFactory = new RegExFacetFacetOnParameterAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction(@RegEx(validation = "^A.*", caseSensitive = false) final String foo) {
- }
- }
- final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
-
- facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
-
- final Facet facet = facetedMethodParameter.getFacet(RegExFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof RegExFacetOnParameterAnnotation);
- final RegExFacetOnParameterAnnotation regExFacet = (RegExFacetOnParameterAnnotation) facet;
- assertEquals("^A.*", regExFacet.validation());
- assertEquals(false, regExFacet.caseSensitive());
- }
-
- public void testRegExAnnotationIgnoredForNonStringsProperty() {
- final RegExFacetFacetOnParameterAnnotationFactory facetFactory = new RegExFacetFacetOnParameterAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- @RegEx(validation = "^A.*", caseSensitive = false)
- public int getNumberOfOrders() {
- return 0;
- }
- }
- final Method method = findMethod(Customer.class, "getNumberOfOrders");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- assertNull(facetedMethod.getFacet(RegExFacet.class));
- }
-
- public void testRegExAnnotationIgnoredForPrimitiveOnActionParameter() {
- final RegExFacetFacetOnParameterAnnotationFactory facetFactory = new RegExFacetFacetOnParameterAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction(@RegEx(validation = "^A.*", caseSensitive = false) final int foo) {
- }
- }
- final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
-
- facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
-
- assertNull(facetedMethod.getFacet(RegExFacet.class));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationOnTypeFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationOnTypeFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationOnTypeFacetFactoryTest.java
new file mode 100644
index 0000000..2ebe771
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/regex/RegExAnnotationOnTypeFacetFactoryTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.propparam.validate.regex;
+
+import org.apache.isis.applib.annotation.RegEx;
+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.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.object.regex.annotation.RegExFacetOnTypeAnnotation;
+import org.apache.isis.core.metamodel.facets.object.regex.annotation.RegExFacetOnTypeAnnotationFactory;
+
+public class RegExAnnotationOnTypeFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ public void testRegExAnnotationPickedUpOnClass() {
+ final RegExFacetOnTypeAnnotationFactory facetFactory = new RegExFacetOnTypeAnnotationFactory();
+
+ @RegEx(validation = "^A.*", caseSensitive = false)
+ class Customer {
+ }
+ facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(RegExFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof RegExFacetOnTypeAnnotation);
+ final RegExFacetOnTypeAnnotation regExFacet = (RegExFacetOnTypeAnnotation) facet;
+ assertEquals("^A.*", regExFacet.validation());
+ assertEquals(false, regExFacet.caseSensitive());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/tck/tck-integtests/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberInvalidTest.java
----------------------------------------------------------------------
diff --git a/tck/tck-integtests/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberInvalidTest.java b/tck/tck-integtests/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberInvalidTest.java
index 78c0c78..215cee8 100644
--- a/tck/tck-integtests/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberInvalidTest.java
+++ b/tck/tck-integtests/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberInvalidTest.java
@@ -30,8 +30,8 @@ import org.junit.Test;
import org.apache.isis.applib.services.wrapper.InvalidException;
import org.apache.isis.core.integtestsupport.legacy.sample.domain.Country;
-import org.apache.isis.core.metamodel.facets.properties.validating.maxlenannot.MaxLengthFacetOnPropertyAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.validating.regexannot.RegExFacetOnPropertyAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.property.maxlength.MaxLengthFacetForMaxLengthAnnotationOnProperty;
+import org.apache.isis.core.metamodel.facets.properties.property.regex.RegExFacetFromRegExAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetDefault;
import org.apache.isis.core.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethod;
import org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateAddToFacetViaMethod;
@@ -215,7 +215,7 @@ public class MemberInvalidTest extends AbstractTest {
custJsWO.setMaxLengthField("This is far too long");
fail("Should have thrown exception");
} catch (final InvalidException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(MaxLengthFacetOnPropertyAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(MaxLengthFacetForMaxLengthAnnotationOnProperty.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Max Length Field"));
}
}
@@ -242,7 +242,7 @@ public class MemberInvalidTest extends AbstractTest {
custJsWO.setRegExCaseInsensitiveField("abXfoobar");
fail("Should have thrown exception");
} catch (final InvalidException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(RegExFacetOnPropertyAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(RegExFacetFromRegExAnnotationOnProperty.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Reg Ex Case Insensitive Field"));
}
}
[4/5] isis git commit: ISIS-1027: moving the handling of deprecated
annotations to {Property|Collection|Action|Parameter}AnnotationFacetFactory.
Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
index 4ed7218..549b8e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
@@ -42,7 +42,7 @@ public class CssClassFaFacetOnTypeAnnotationFactory extends FacetFactoryAbstract
@Override
public void process(final ProcessClassContext processClassContext) {
final CssClassFa annotation = Annotations.getAnnotation(processClassContext.getCls(), CssClassFa.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContext.getFacetHolder()));
}
private static CssClassFaFacet create(final CssClassFa annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java
index f85c3bc..9d8bee8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java
@@ -42,7 +42,7 @@ public class DescribedAsFacetOnTypeAnnotationFactory extends FacetFactoryAbstrac
@Override
public void process(final ProcessClassContext processClassContaxt) {
final DescribedAs annotation = Annotations.getAnnotation(processClassContaxt.getCls(), DescribedAs.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private DescribedAsFacet create(final DescribedAs annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java
index 28bf9e5..db905a2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java
@@ -23,7 +23,6 @@ import org.apache.isis.applib.annotation.FieldOrder;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
@@ -43,7 +42,7 @@ public class FieldOrderFacetAnnotationFactory extends FacetFactoryAbstract imple
@Override
public void process(final ProcessClassContext processClassContaxt) {
final FieldOrder annotation = Annotations.getAnnotation(processClassContaxt.getCls(), FieldOrder.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private FieldOrderFacet create(final FieldOrder annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
index 262c40c..9b949df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
@@ -23,7 +23,6 @@ import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
@@ -43,7 +42,7 @@ public class HiddenFacetOnTypeAnnotationFactory extends FacetFactoryAbstract imp
@Override
public void process(final ProcessClassContext processClassContext) {
final Hidden annotation = Annotations.getAnnotation(processClassContext.getCls(), Hidden.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContext.getFacetHolder()));
}
private static HiddenFacet create(final Hidden annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java
index e7ebc42..ac1a23f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java
@@ -46,7 +46,7 @@ public class MaskFacetOnTypeAnnotationFactory extends FacetFactoryAbstract imple
@Override
public void process(final ProcessClassContext processClassContaxt) {
final Mask annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Mask.class);
- validator.addFacet(createMaskFacet(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(createMaskFacet(annotation, processClassContaxt.getFacetHolder()));
}
private MaskFacet createMaskFacet(final Mask annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java
index 0ad616f..14dea94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java
@@ -45,7 +45,7 @@ public class MaxLengthFacetOnTypeAnnotationFactory extends FacetFactoryAbstract
@Override
public void process(final ProcessClassContext processClassContaxt) {
final MaxLength annotation = Annotations.getAnnotation(processClassContaxt.getCls(), MaxLength.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java
index 2480c6f..7912c48 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java
@@ -46,7 +46,7 @@ public class MultiLineFacetOnTypeAnnotationFactory extends FacetFactoryAbstract
@Override
public void process(final ProcessClassContext processClassContaxt) {
final MultiLine annotation = Annotations.getAnnotation(processClassContaxt.getCls(), MultiLine.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private MultiLineFacet create(final MultiLine annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java
index e06a702..3d6a9cb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java
@@ -44,7 +44,7 @@ public class NamedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract impl
@Override
public void process(final ProcessClassContext processClassContaxt) {
final Named annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Named.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private NamedFacet create(final Named annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java
index a91ae5e..d96ee48 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java
@@ -52,7 +52,7 @@ public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactory
if (method != null) {
final String name = (String) MethodExtensions.invokeStatic(method);
processClassContext.removeMethod(method);
- validator.addFacet(new NamedFacetStaticMethod(name, facetHolder));
+ validator.addFacetFlagIfPresent(new NamedFacetStaticMethod(name, facetHolder));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java
index 980878b..75311c3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java
@@ -48,7 +48,7 @@ public class PagedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract impl
@Override
public void process(final ProcessClassContext processClassContext) {
final Paged annotation = Annotations.getAnnotation(processClassContext.getCls(), Paged.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContext.getFacetHolder()));
}
private static PagedFacet create(final Paged annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java
index dfdd76e..86a41db 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java
@@ -42,7 +42,7 @@ public class PluralAnnotationFacetFactory extends FacetFactoryAbstract implement
@Override
public void process(final ProcessClassContext processClassContaxt) {
final Plural annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Plural.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private PluralFacet create(final Plural annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java
index 1d053ff..10ad2ac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java
@@ -53,7 +53,7 @@ public class PluralFacetStaticMethodFactory extends MethodPrefixBasedFacetFactor
if (method != null) {
final String name = (String) MethodExtensions.invokeStatic(method);
processClassContext.removeMethod(method);
- validator.addFacet(new PluralFacetMethod(name, facetHolder));
+ validator.addFacetFlagIfPresent(new PluralFacetMethod(name, facetHolder));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/regex/annotation/RegExFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/regex/annotation/RegExFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/regex/annotation/RegExFacetOnTypeAnnotationFactory.java
index 10d2673..541efb5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/regex/annotation/RegExFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/regex/annotation/RegExFacetOnTypeAnnotationFactory.java
@@ -42,7 +42,7 @@ public class RegExFacetOnTypeAnnotationFactory extends FacetFactoryAbstract impl
@Override
public void process(final ProcessClassContext processClassContaxt) {
final RegEx annotation = Annotations.getAnnotation(processClassContaxt.getCls(), RegEx.class);
- validator.addFacet(createRegexFacet(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(createRegexFacet(annotation, processClassContaxt.getFacetHolder()));
}
private RegExFacet createRegexFacet(final RegEx annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/typicallen/annotation/TypicalLengthFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/typicallen/annotation/TypicalLengthFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/typicallen/annotation/TypicalLengthFacetOnTypeAnnotationFactory.java
index 501c29f..4771821 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/typicallen/annotation/TypicalLengthFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/typicallen/annotation/TypicalLengthFacetOnTypeAnnotationFactory.java
@@ -42,7 +42,7 @@ public class TypicalLengthFacetOnTypeAnnotationFactory extends FacetFactoryAbstr
@Override
public void process(final ProcessClassContext processClassContaxt) {
final TypicalLength annotation = Annotations.getAnnotation(processClassContaxt.getCls(), TypicalLength.class);
- validator.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
}
private TypicalLengthFacet create(final TypicalLength annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/mustsatisfyspec/MustSatisfySpecificationOnTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/mustsatisfyspec/MustSatisfySpecificationOnTypeFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/mustsatisfyspec/MustSatisfySpecificationOnTypeFacetFactory.java
index 6fa3037..b84f730 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/mustsatisfyspec/MustSatisfySpecificationOnTypeFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/mustsatisfyspec/MustSatisfySpecificationOnTypeFacetFactory.java
@@ -44,7 +44,7 @@ public class MustSatisfySpecificationOnTypeFacetFactory extends FacetFactoryAbst
@Override
public void process(final ProcessClassContext processClassContaxt) {
- validator.addFacet(create(processClassContaxt.getCls(), processClassContaxt.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(processClassContaxt.getCls(), processClassContaxt.getFacetHolder()));
}
private Facet create(final Class<?> clazz, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotation.java
deleted file mode 100644
index 0bdc9d3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotation.java
+++ /dev/null
@@ -1,39 +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.param.mandatory.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
-
-/**
- * Derived by presence of an <tt>@Optional</tt> method.
- *
- * <p>
- * This implementation indicates that the {@link FacetHolder} is <i>not</i>
- * mandatory, as per {@link #isInvertedSemantics()}.
- */
-public class MandatoryFacetOnParameterInvertedByOptionalAnnotation extends MandatoryFacetAbstract {
-
- public MandatoryFacetOnParameterInvertedByOptionalAnnotation(final FacetHolder holder) {
- super(holder, Semantics.OPTIONAL);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory.java
deleted file mode 100644
index 61138b7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/annotation/MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory.java
+++ /dev/null
@@ -1,70 +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.param.mandatory.annotation;
-
-import java.lang.annotation.Annotation;
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-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.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Optional.class);
-
- public MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory() {
- super(FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void processParams(final ProcessParameterContext processParameterContext) {
- final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
- if (processParameterContext.getParamNum() >= parameterTypes.length) {
- // ignore
- return;
- }
- if (parameterTypes[processParameterContext.getParamNum()].isPrimitive()) {
- return;
- }
- final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
- for (final Annotation parameterAnnotation : parameterAnnotations) {
- if (parameterAnnotation instanceof Optional) {
- validator.addFacet(new MandatoryFacetOnParameterInvertedByOptionalAnnotation(processParameterContext.getFacetHolder()));
- return;
- }
- }
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/annotation/NamedFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/annotation/NamedFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/annotation/NamedFacetOnParameterAnnotationFactory.java
index 58697f0..6c70316 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/annotation/NamedFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/annotation/NamedFacetOnParameterAnnotationFactory.java
@@ -47,7 +47,7 @@ public class NamedFacetOnParameterAnnotationFactory extends FacetFactoryAbstract
for (final Annotation parameterAnnotation : parameterAnnotations) {
if (parameterAnnotation instanceof Named) {
final Named annotation = (Named) parameterAnnotation;
- validator.addFacet(create(annotation, processParameterContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processParameterContext.getFacetHolder()));
return;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MandatoryFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MandatoryFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MandatoryFacetForParameterAnnotation.java
deleted file mode 100644
index f6cc6b9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MandatoryFacetForParameterAnnotation.java
+++ /dev/null
@@ -1,79 +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.param.parameter;
-
-import org.apache.isis.applib.annotation.Optionality;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
-
-public abstract class MandatoryFacetForParameterAnnotation extends MandatoryFacetAbstract {
-
- public MandatoryFacetForParameterAnnotation(final FacetHolder holder, final Semantics semantics) {
- super(holder, semantics);
- }
-
- static MandatoryFacet create(
- final Parameter parameter,
- final Class<?> parameterType,
- final FacetHolder holder) {
-
- if (parameter == null) {
- return null;
- }
-
- if (parameterType.isPrimitive()) {
- return new MandatoryFacetForParameterAnnotation.Primitive(holder);
- }
-
- final Optionality optionality = parameter.optional();
- switch (optionality) {
- case DEFAULT:
- // do nothing here; instead will rely on MandatoryFromJdoColumnAnnotationFacetFactory to perform
- // the remaining processing
- return null;
- case FALSE:
- return new MandatoryFacetForParameterAnnotation.Required(holder);
- case TRUE:
- return new MandatoryFacetForParameterAnnotation.Optional(holder);
- }
- return null;
- }
-
- public static class Primitive extends MandatoryFacetForParameterAnnotation {
- public Primitive(final FacetHolder holder) {
- super(holder, Semantics.REQUIRED);
- }
- }
-
- public static class Required extends MandatoryFacetForParameterAnnotation {
- public Required(final FacetHolder holder) {
- super(holder, Semantics.REQUIRED);
- }
- }
-
- public static class Optional extends MandatoryFacetForParameterAnnotation {
- public Optional(final FacetHolder holder) {
- super(holder, Semantics.OPTIONAL);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MaxLengthFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MaxLengthFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MaxLengthFacetForParameterAnnotation.java
deleted file mode 100644
index b065684..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MaxLengthFacetForParameterAnnotation.java
+++ /dev/null
@@ -1,47 +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.param.parameter;
-
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
-import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacetAbstract;
-
-public class MaxLengthFacetForParameterAnnotation extends MaxLengthFacetAbstract {
-
- public static MaxLengthFacet create(
- final Parameter parameter,
- final FacetHolder holder) {
-
- if (parameter == null) {
- return null;
- }
-
- final int maxLength = parameter.maxLength();
- return maxLength != -1
- ? new MaxLengthFacetForParameterAnnotation(maxLength, holder)
- : null;
- }
-
- private MaxLengthFacetForParameterAnnotation(final int value, final FacetHolder holder) {
- super(value, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetForParameterAnnotation.java
deleted file mode 100644
index 25beaf3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetForParameterAnnotation.java
+++ /dev/null
@@ -1,54 +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.param.parameter;
-
-import java.util.List;
-import com.google.common.collect.Lists;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.spec.Specification;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacetAbstract;
-
-public class MustSatisfySpecificationFacetForParameterAnnotation extends MustSatisfySpecificationFacetAbstract {
-
- static Facet create(final Parameter parameter, final FacetHolder holder) {
-
- if (parameter == null) {
- return null;
- }
-
- final Class<?>[] values = parameter.mustSatisfy();
- final List<Specification> specifications = Lists.newArrayList();
- for (final Class<?> value : values) {
- final Specification specification = newSpecificationElseNull(value);
- if (specification != null) {
- specifications.add(specification);
- }
- }
- return specifications.size() > 0 ? new MustSatisfySpecificationFacetForParameterAnnotation(specifications, holder) : null;
- }
-
-
- private MustSatisfySpecificationFacetForParameterAnnotation(final List<Specification> specifications, final FacetHolder holder) {
- super(specifications, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
index 3b7c9cc..1b48bd5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
@@ -21,14 +21,38 @@ package org.apache.isis.core.metamodel.facets.param.parameter;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.MaxLength;
+import org.apache.isis.applib.annotation.MustSatisfy;
+import org.apache.isis.applib.annotation.Optional;
import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.RegEx;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationAware;
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.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.object.regex.TitleFacetFormattedByRegex;
+import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetInvertedByOptionalAnnotationOnParameter;
+import org.apache.isis.core.metamodel.facets.param.parameter.maxlen.MaxLengthFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.maxlen.MaxLengthFacetOnParamForMaxLengthAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter;
+import org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.regex.RegExFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.regex.RegExFacetFromRegExAnnotationOnParameter;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-public class ParameterAnnotationFacetFactory extends FacetFactoryAbstract {
+public class ParameterAnnotationFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
+
+ private final MetaModelValidatorForDeprecatedAnnotation maxLengthValidator = new MetaModelValidatorForDeprecatedAnnotation(MaxLength.class);
+ private final MetaModelValidatorForDeprecatedAnnotation mustSatisfyValidator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
+ private final MetaModelValidatorForDeprecatedAnnotation regexValidator = new MetaModelValidatorForDeprecatedAnnotation(RegEx.class);
+ private final MetaModelValidatorForDeprecatedAnnotation optionalValidator = new MetaModelValidatorForDeprecatedAnnotation(Optional.class);
public ParameterAnnotationFacetFactory() {
super(FeatureType.PARAMETERS_ONLY);
@@ -39,36 +63,146 @@ public class ParameterAnnotationFacetFactory extends FacetFactoryAbstract {
final Method method = processParameterContext.getMethod();
final int paramNum = processParameterContext.getParamNum();
- final FacetedMethodParameter holder = processParameterContext.getFacetHolder();
final Class<?>[] parameterTypes = method.getParameterTypes();
if (paramNum >= parameterTypes.length) {
return; // ignore
}
+ processParamsMaxLength(processParameterContext);
+ processParamsMustSatisfy(processParameterContext);
+ processParamsRegEx(processParameterContext);
+ processParamsOptional(processParameterContext);
+
+ }
+
+ void processParamsMaxLength(final ProcessParameterContext processParameterContext) {
+
+ final Method method = processParameterContext.getMethod();
+ final int paramNum = processParameterContext.getParamNum();
+ final FacetedMethodParameter holder = processParameterContext.getFacetHolder();
final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(method)[paramNum];
+
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ if (parameterAnnotation instanceof MaxLength) {
+ final MaxLength annotation = (MaxLength) parameterAnnotation;
+ maxLengthValidator.addFacetFlagIfPresent(MaxLengthFacetOnParamForMaxLengthAnnotation.create(annotation, processParameterContext.getFacetHolder()));
+ return;
+ }
+ }
+
for (final Annotation parameterAnnotation : parameterAnnotations) {
if (parameterAnnotation instanceof Parameter) {
final Parameter parameter = (Parameter) parameterAnnotation;
- Class<?> parameterType = parameterTypes[paramNum];
-
FacetUtil.addFacet(
MaxLengthFacetForParameterAnnotation.create(parameter, holder));
+ return;
+ }
+ }
+ }
+
+ void processParamsMustSatisfy(final ProcessParameterContext processParameterContext) {
+ final Method method = processParameterContext.getMethod();
+ final int paramNum = processParameterContext.getParamNum();
+ final FacetedMethodParameter holder = processParameterContext.getFacetHolder();
+ final Class<?>[] parameterTypes = method.getParameterTypes();
+ final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(method)[paramNum];
+
+ boolean mustSatisfyAnnotationFound = false;
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ if (parameterAnnotation instanceof MustSatisfy) {
+ final MustSatisfy annotation = (MustSatisfy) parameterAnnotation;
+ mustSatisfyValidator.addFacetFlagIfPresent(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.create(annotation, processParameterContext.getFacetHolder()));
+ return;
+ }
+ }
+
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ if (parameterAnnotation instanceof Parameter) {
+ final Parameter parameter = (Parameter) parameterAnnotation;
FacetUtil.addFacet(
MustSatisfySpecificationFacetForParameterAnnotation.create(parameter, holder));
+ return;
+ }
+ }
+ }
- FacetUtil.addFacet(
- MandatoryFacetForParameterAnnotation.create(parameter, parameterType, holder));
+ void processParamsRegEx(final ProcessParameterContext processParameterContext) {
+
+ final Method method = processParameterContext.getMethod();
+ final int paramNum = processParameterContext.getParamNum();
+ final FacetedMethodParameter holder = processParameterContext.getFacetHolder();
+ final Class<?>[] parameterTypes = method.getParameterTypes();
+ final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(method)[paramNum];
- if (Annotations.isString(parameterType)) {
- FacetUtil.addFacet(
- RegExFacetForParameterAnnotation.create(parameter, holder));
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ final Class<?> parameterType = parameterTypes[paramNum];
+ if (parameterAnnotation instanceof RegEx) {
+ final RegEx annotation = (RegEx) parameterAnnotation;
+ final RegExFacet regExFacet = regexValidator.addFacetFlagIfPresent(RegExFacetFromRegExAnnotationOnParameter.create(annotation, parameterType, holder));
+
+ // regex also adds a title facet
+ if(regExFacet != null) {
+ FacetUtil.addFacet(new TitleFacetFormattedByRegex(regExFacet));
}
+ return;
+ }
+ }
+
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ if (parameterAnnotation instanceof Parameter) {
+ final Parameter parameter = (Parameter) parameterAnnotation;
+ final Class<?> parameterType = parameterTypes[paramNum];
+ FacetUtil.addFacet(
+ RegExFacetForParameterAnnotation.create(parameter, parameterType, holder));
+ return;
+ }
+ }
+ }
+
+ void processParamsOptional(final ProcessParameterContext processParameterContext) {
+
+ final Method method = processParameterContext.getMethod();
+ final int paramNum = processParameterContext.getParamNum();
+ final FacetedMethodParameter holder = processParameterContext.getFacetHolder();
+ final Class<?>[] parameterTypes = method.getParameterTypes();
+ final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(method)[paramNum];
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ final Class<?> parameterType = parameterTypes[paramNum];
+ if (parameterAnnotation instanceof Optional) {
+ final Optional annotation = (Optional) parameterAnnotation;
+ optionalValidator.addFacetFlagIfPresent(MandatoryFacetInvertedByOptionalAnnotationOnParameter.create(annotation, parameterType, holder));
return;
}
}
+
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ if (parameterAnnotation instanceof Parameter) {
+ final Parameter parameter = (Parameter) parameterAnnotation;
+ final Class<?> parameterType = parameterTypes[paramNum];
+ FacetUtil.addFacet(
+ MandatoryFacetForParameterAnnotation.create(parameter, parameterType, holder));
+ return;
+ }
+ }
+ }
+
+ @Override
+ public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
+ metaModelValidator.add(maxLengthValidator);
+ metaModelValidator.add(mustSatisfyValidator);
+ metaModelValidator.add(regexValidator);
+ metaModelValidator.add(optionalValidator);
+ }
+
+ @Override
+ public void setConfiguration(final IsisConfiguration configuration) {
+ maxLengthValidator.setConfiguration(configuration);
+ mustSatisfyValidator.setConfiguration(configuration);
+ regexValidator.setConfiguration(configuration);
+ optionalValidator.setConfiguration(configuration);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExFacetForParameterAnnotation.java
deleted file mode 100644
index 532972c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExFacetForParameterAnnotation.java
+++ /dev/null
@@ -1,74 +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.param.parameter;
-
-import java.util.regex.Pattern;
-import com.google.common.base.Strings;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
-
-public class RegExFacetForParameterAnnotation extends RegExFacetAbstract {
-
- private final Pattern pattern;
-
- static RegExFacet create(
- final Parameter parameter,
- final FacetHolder holder) {
-
- if (parameter == null) {
- return null;
- }
-
-
- final String pattern = parameter.regexPattern();
- if(Strings.isNullOrEmpty(pattern)) {
- return null;
- }
-
- final int patternFlags = parameter.regexPatternFlags();
-
- return new RegExFacetForParameterAnnotation(pattern, patternFlags, holder);
- }
-
- private RegExFacetForParameterAnnotation(final String pattern, final int patternFlags, final FacetHolder holder) {
- super(pattern, "", false, holder);
- this.pattern = Pattern.compile(pattern, patternFlags);
- }
-
- /**
- * Unused (for the TitledFacet)
- */
- @Override
- public String format(String text) {
- return text;
- }
-
- @Override
- public boolean doesNotMatch(final String text) {
- if (text == null) {
- return true;
- }
- return !pattern.matcher(text).matches();
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetForParameterAnnotation.java
new file mode 100644
index 0000000..b40a260
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetForParameterAnnotation.java
@@ -0,0 +1,79 @@
+/*
+ * 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.param.parameter.mandatory;
+
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
+
+public abstract class MandatoryFacetForParameterAnnotation extends MandatoryFacetAbstract {
+
+ public MandatoryFacetForParameterAnnotation(final FacetHolder holder, final Semantics semantics) {
+ super(holder, semantics);
+ }
+
+ public static MandatoryFacet create(
+ final Parameter parameter,
+ final Class<?> parameterType,
+ final FacetHolder holder) {
+
+ if (parameter == null) {
+ return null;
+ }
+
+ if (parameterType.isPrimitive()) {
+ return new MandatoryFacetForParameterAnnotation.Primitive(holder);
+ }
+
+ final Optionality optionality = parameter.optional();
+ switch (optionality) {
+ case DEFAULT:
+ // do nothing here; instead will rely on MandatoryFromJdoColumnAnnotationFacetFactory to perform
+ // the remaining processing
+ return null;
+ case FALSE:
+ return new MandatoryFacetForParameterAnnotation.Required(holder);
+ case TRUE:
+ return new MandatoryFacetForParameterAnnotation.Optional(holder);
+ }
+ return null;
+ }
+
+ public static class Primitive extends MandatoryFacetForParameterAnnotation {
+ public Primitive(final FacetHolder holder) {
+ super(holder, Semantics.REQUIRED);
+ }
+ }
+
+ public static class Required extends MandatoryFacetForParameterAnnotation {
+ public Required(final FacetHolder holder) {
+ super(holder, Semantics.REQUIRED);
+ }
+ }
+
+ public static class Optional extends MandatoryFacetForParameterAnnotation {
+ public Optional(final FacetHolder holder) {
+ super(holder, Semantics.OPTIONAL);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnParameter.java
new file mode 100644
index 0000000..07725ce
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnParameter.java
@@ -0,0 +1,53 @@
+/*
+ * 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.param.parameter.mandatory;
+
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
+
+/**
+ * Derived by presence of an <tt>@Optional</tt> method.
+ *
+ * <p>
+ * This implementation indicates that the {@link FacetHolder} is <i>not</i>
+ * mandatory, as per {@link #isInvertedSemantics()}.
+ */
+public class MandatoryFacetInvertedByOptionalAnnotationOnParameter extends MandatoryFacetAbstract {
+
+
+ public static Facet create(final Optional annotation, final Class<?> parameterType, final FacetedMethodParameter holder) {
+ if(annotation == null) {
+ return null;
+ }
+ if(parameterType.isPrimitive()) {
+ return null;
+ }
+ return new MandatoryFacetInvertedByOptionalAnnotationOnParameter(holder);
+ }
+
+ private MandatoryFacetInvertedByOptionalAnnotationOnParameter(final FacetHolder holder) {
+ super(holder, Semantics.OPTIONAL);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetForParameterAnnotation.java
new file mode 100644
index 0000000..9e6b800
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetForParameterAnnotation.java
@@ -0,0 +1,47 @@
+/*
+ * 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.param.parameter.maxlen;
+
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
+import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacetAbstract;
+
+public class MaxLengthFacetForParameterAnnotation extends MaxLengthFacetAbstract {
+
+ public static MaxLengthFacet create(
+ final Parameter parameter,
+ final FacetHolder holder) {
+
+ if (parameter == null) {
+ return null;
+ }
+
+ final int maxLength = parameter.maxLength();
+ return maxLength != -1
+ ? new MaxLengthFacetForParameterAnnotation(maxLength, holder)
+ : null;
+ }
+
+ private MaxLengthFacetForParameterAnnotation(final int value, final FacetHolder holder) {
+ super(value, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetOnParamForMaxLengthAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetOnParamForMaxLengthAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetOnParamForMaxLengthAnnotation.java
new file mode 100644
index 0000000..2409c11
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/maxlen/MaxLengthFacetOnParamForMaxLengthAnnotation.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.param.parameter.maxlen;
+
+import org.apache.isis.applib.annotation.MaxLength;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
+import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacetAbstract;
+
+public class MaxLengthFacetOnParamForMaxLengthAnnotation extends MaxLengthFacetAbstract {
+
+ public static MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) {
+ return annotation == null ? null : new MaxLengthFacetOnParamForMaxLengthAnnotation(annotation.value(), holder);
+ }
+
+ private MaxLengthFacetOnParamForMaxLengthAnnotation(final int value, final FacetHolder holder) {
+ super(value, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java
new file mode 100644
index 0000000..1d24490
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java
@@ -0,0 +1,52 @@
+/*
+ * 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.param.parameter.mustsatisfy;
+
+import java.util.List;
+import com.google.common.collect.Lists;
+import org.apache.isis.applib.annotation.MustSatisfy;
+import org.apache.isis.applib.spec.Specification;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacetAbstract;
+
+public class MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter extends MustSatisfySpecificationFacetAbstract {
+
+
+ public static Facet create(final MustSatisfy annotation, final FacetHolder holder) {
+ if (annotation == null) {
+ return null;
+ }
+ final Class<?>[] values = annotation.value();
+ final List<Specification> specifications = Lists.newArrayList();
+ for (final Class<?> value : values) {
+ final Specification specification = newSpecificationElseNull(value);
+ if (specification != null) {
+ specifications.add(specification);
+ }
+ }
+ return specifications.size() > 0 ? new MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter(specifications, holder) : null;
+ }
+
+ private MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter(final List<Specification> specifications, final FacetHolder holder) {
+ super(specifications, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForParameterAnnotation.java
new file mode 100644
index 0000000..bf08288
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/mustsatisfy/MustSatisfySpecificationFacetForParameterAnnotation.java
@@ -0,0 +1,54 @@
+/*
+ * 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.param.parameter.mustsatisfy;
+
+import java.util.List;
+import com.google.common.collect.Lists;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.spec.Specification;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacetAbstract;
+
+public class MustSatisfySpecificationFacetForParameterAnnotation extends MustSatisfySpecificationFacetAbstract {
+
+ public static Facet create(final Parameter parameter, final FacetHolder holder) {
+
+ if (parameter == null) {
+ return null;
+ }
+
+ final Class<?>[] values = parameter.mustSatisfy();
+ final List<Specification> specifications = Lists.newArrayList();
+ for (final Class<?> value : values) {
+ final Specification specification = newSpecificationElseNull(value);
+ if (specification != null) {
+ specifications.add(specification);
+ }
+ }
+ return specifications.size() > 0 ? new MustSatisfySpecificationFacetForParameterAnnotation(specifications, holder) : null;
+ }
+
+
+ private MustSatisfySpecificationFacetForParameterAnnotation(final List<Specification> specifications, final FacetHolder holder) {
+ super(specifications, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java
new file mode 100644
index 0000000..97e6b71
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java
@@ -0,0 +1,78 @@
+/*
+ * 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.param.parameter.regex;
+
+import java.util.regex.Pattern;
+import com.google.common.base.Strings;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
+
+public class RegExFacetForParameterAnnotation extends RegExFacetAbstract {
+
+ private final Pattern pattern;
+
+ public static RegExFacet create(
+ final Parameter parameter,
+ final Class<?> parameterType,
+ final FacetHolder holder) {
+
+ if (parameter == null) {
+ return null;
+ }
+ if(!Annotations.isString(parameterType)) {
+ return null;
+ }
+
+ final String pattern = parameter.regexPattern();
+ if(Strings.isNullOrEmpty(pattern)) {
+ return null;
+ }
+
+ final int patternFlags = parameter.regexPatternFlags();
+
+ return new RegExFacetForParameterAnnotation(pattern, patternFlags, holder);
+ }
+
+ private RegExFacetForParameterAnnotation(final String pattern, final int patternFlags, final FacetHolder holder) {
+ super(pattern, "", false, holder);
+ this.pattern = Pattern.compile(pattern, patternFlags);
+ }
+
+ /**
+ * Unused (for the TitledFacet)
+ */
+ @Override
+ public String format(String text) {
+ return text;
+ }
+
+ @Override
+ public boolean doesNotMatch(final String text) {
+ if (text == null) {
+ return true;
+ }
+ return !pattern.matcher(text).matches();
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetFromRegExAnnotationOnParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetFromRegExAnnotationOnParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetFromRegExAnnotationOnParameter.java
new file mode 100644
index 0000000..6147239
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetFromRegExAnnotationOnParameter.java
@@ -0,0 +1,77 @@
+/*
+ * 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.param.parameter.regex;
+
+import java.util.regex.Pattern;
+
+import org.apache.isis.applib.annotation.RegEx;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
+
+public class RegExFacetFromRegExAnnotationOnParameter extends RegExFacetAbstract {
+
+ private final Pattern pattern;
+
+ public static RegExFacet create(final RegEx annotation, final Class<?> parameterType, final FacetHolder holder) {
+ if (annotation == null) {
+ return null;
+ }
+ if(!Annotations.isString(parameterType)) {
+ return null;
+ }
+
+ final String validationExpression = annotation.validation();
+ final boolean caseSensitive = annotation.caseSensitive();
+ final String formatExpression = annotation.format();
+
+ return new RegExFacetFromRegExAnnotationOnParameter(validationExpression, formatExpression, caseSensitive, holder);
+ }
+
+ private RegExFacetFromRegExAnnotationOnParameter(final String validation, final String format, final boolean caseSensitive, final FacetHolder holder) {
+ super(validation, format, caseSensitive, holder);
+ pattern = Pattern.compile(validation(), patternFlags());
+ }
+
+ @Override
+ public String format(final String text) {
+ if (text == null) {
+ return "<not a string>";
+ }
+ if (format() == null || format().length() == 0) {
+ return text;
+ }
+ return pattern.matcher(text).replaceAll(format());
+ }
+
+ @Override
+ public boolean doesNotMatch(final String text) {
+ if (text == null) {
+ return true;
+ }
+ return !pattern.matcher(text).matches();
+ }
+
+ private int patternFlags() {
+ return !caseSensitive() ? Pattern.CASE_INSENSITIVE : 0;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetOnParameterAnnotationFactory.java
index 3c99fbb..f24b263 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/renderedasdaybefore/annotation/RenderedAsDayBeforeFacetOnParameterAnnotationFactory.java
@@ -24,7 +24,6 @@ import org.apache.isis.applib.annotation.RenderedAsDayBefore;
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;
@@ -47,7 +46,7 @@ public class RenderedAsDayBeforeFacetOnParameterAnnotationFactory extends FacetF
for (final Annotation parameterAnnotation : parameterAnnotations) {
if (parameterAnnotation instanceof RenderedAsDayBefore) {
final RenderedAsDayBefore annotation = (RenderedAsDayBefore) parameterAnnotation;
- validator.addFacet(create(annotation, processParameterContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processParameterContext.getFacetHolder()));
return;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotationFactory.java
index d6aeea9..c1b2abe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/typicallen/annotation/TypicalLengthFacetOnParameterAnnotationFactory.java
@@ -47,7 +47,7 @@ public class TypicalLengthFacetOnParameterAnnotationFactory extends FacetFactory
for (final Annotation parameterAnnotation : parameterAnnotations) {
if (parameterAnnotation instanceof TypicalLength) {
final TypicalLength annotation = (TypicalLength) parameterAnnotation;
- validator.addFacet(create(annotation, processParameterContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processParameterContext.getFacetHolder()));
return;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotation.java
deleted file mode 100644
index 2bbee5b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotation.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.param.validating.maxlenannot;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacetAbstract;
-
-public class MaxLengthFacetOnParameterAnnotation extends MaxLengthFacetAbstract {
-
- public MaxLengthFacetOnParameterAnnotation(final int value, final FacetHolder holder) {
- super(value, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotationFactory.java
deleted file mode 100644
index 2b03fb0..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maxlenannot/MaxLengthFacetOnParameterAnnotationFactory.java
+++ /dev/null
@@ -1,71 +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.param.validating.maxlenannot;
-
-import java.lang.annotation.Annotation;
-import org.apache.isis.applib.annotation.MaxLength;
-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.propparam.maxlen.MaxLengthFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MaxLengthFacetOnParameterAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MaxLength.class);
-
- public MaxLengthFacetOnParameterAnnotationFactory() {
- super(FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void processParams(final ProcessParameterContext processParameterContext) {
- final java.lang.annotation.Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-
- for (final Annotation parameterAnnotation : parameterAnnotations) {
- if (parameterAnnotation instanceof MaxLength) {
- final MaxLength annotation = (MaxLength) parameterAnnotation;
- validator.addFacet(create(annotation, processParameterContext.getFacetHolder()));
- return;
- }
- }
- }
-
- private MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) {
- return annotation == null ? null : new MaxLengthFacetOnParameterAnnotation(annotation.value(), holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-
-}
[2/5] isis git commit: ISIS-1027: moving the handling of deprecated
annotations to {Property|Collection|Action|Parameter}AnnotationFacetFactory.
Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationOnPropertyFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationOnPropertyFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationOnPropertyFacetFactory.java
deleted file mode 100644
index 2d95a43..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationOnPropertyFacetFactory.java
+++ /dev/null
@@ -1,63 +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.properties.validating.mustsatisfyspec;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.MustSatisfy;
-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.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.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MustSatisfySpecificationOnPropertyFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
-
-
- public MustSatisfySpecificationOnPropertyFacetFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- validator.addFacet(create(processMethodContext.getMethod(), processMethodContext.getFacetHolder()));
- }
-
- private Facet create(final Method method, final FacetHolder holder) {
- return MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.create(Annotations.getAnnotation(method, MustSatisfy.class), holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/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
deleted file mode 100644
index 860f1ca..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetFacetOnPropertyAnnotationFactory.java
+++ /dev/null
@@ -1,82 +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.properties.validating.regexannot;
-
-import org.apache.isis.applib.annotation.RegEx;
-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.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
-import org.apache.isis.core.metamodel.facets.object.regex.TitleFacetFormattedByRegex;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class RegExFacetFacetOnPropertyAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(RegEx.class);
-
-
- public RegExFacetFacetOnPropertyAnnotationFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Class<?> returnType = processMethodContext.getMethod().getReturnType();
- if (!Annotations.isString(returnType)) {
- return;
- }
- final RegEx annotation = Annotations.getAnnotation(processMethodContext.getMethod(), RegEx.class);
- if(annotation == null) {
- return;
- }
- addRegexFacetAndCorrespondingTitleFacet(processMethodContext.getFacetHolder(), annotation);
- }
-
- private void addRegexFacetAndCorrespondingTitleFacet(final FacetHolder holder, final RegEx annotation) {
- final RegExFacet regexFacet = validator.flagIfPresent(RegExFacetOnPropertyAnnotation.createRegexFacet(annotation, holder));
- FacetUtil.addFacet(regexFacet);
-
- final TitleFacet titleFacet = createTitleFacet(regexFacet);
- FacetUtil.addFacet(titleFacet);
- }
-
- private TitleFacet createTitleFacet(final RegExFacet regexFacet) {
- return new TitleFacetFormattedByRegex(regexFacet);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetOnPropertyAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetOnPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetOnPropertyAnnotation.java
deleted file mode 100644
index 22cf504..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/regexannot/RegExFacetOnPropertyAnnotation.java
+++ /dev/null
@@ -1,69 +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.properties.validating.regexannot;
-
-import java.util.regex.Pattern;
-import org.apache.isis.applib.annotation.RegEx;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
-
-public class RegExFacetOnPropertyAnnotation extends RegExFacetAbstract {
-
- private final Pattern pattern;
-
- static RegExFacet createRegexFacet(final RegEx annotation, final FacetHolder holder) {
-
- final String validationExpression = annotation.validation();
- final boolean caseSensitive = annotation.caseSensitive();
- final String formatExpression = annotation.format();
-
- return new RegExFacetOnPropertyAnnotation(validationExpression, formatExpression, caseSensitive, holder);
- }
-
- private RegExFacetOnPropertyAnnotation(final String validation, final String format, final boolean caseSensitive, final FacetHolder holder) {
- super(validation, format, caseSensitive, holder);
- pattern = Pattern.compile(validation(), patternFlags());
- }
-
- @Override
- public String format(final String text) {
- if (text == null) {
- return "<not a string>";
- }
- if (format() == null || format().length() == 0) {
- return text;
- }
- return pattern.matcher(text).replaceAll(format());
- }
-
- @Override
- public boolean doesNotMatch(final String text) {
- if (text == null) {
- return true;
- }
- return !pattern.matcher(text).matches();
- }
-
- private int patternFlags() {
- return !caseSensitive() ? Pattern.CASE_INSENSITIVE : 0;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
index 6b3c890..fa2ddd6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
@@ -42,19 +42,28 @@ public class MetaModelValidatorComposite extends MetaModelValidatorAbstract {
return this;
}
+ public MetaModelValidatorComposite addAll(
+ final MetaModelValidator... validators) {
+
+ for (final MetaModelValidator validator : validators) {
+ add(validator);
+ }
+ return this;
+ }
+
public List<MetaModelValidator> getValidators() {
return Collections.unmodifiableList(validators);
}
@Override
- public void setSpecificationLoaderSpi(SpecificationLoaderSpi specificationLoader) {
+ public void setSpecificationLoaderSpi(final SpecificationLoaderSpi specificationLoader) {
super.setSpecificationLoaderSpi(specificationLoader);
for (final MetaModelValidator validator : validators) {
validator.setSpecificationLoaderSpi(specificationLoader);
}
}
- public static MetaModelValidatorComposite asComposite(MetaModelValidator baseMetaModelValidator) {
+ public static MetaModelValidatorComposite asComposite(final MetaModelValidator baseMetaModelValidator) {
final MetaModelValidatorComposite metaModelValidatorComposite = new MetaModelValidatorComposite();
metaModelValidatorComposite.add(baseMetaModelValidator);
return metaModelValidatorComposite;
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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 879ae76..a04e7b3 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
@@ -41,8 +41,9 @@ public abstract class MetaModelValidatorForDeprecatedAbstract extends MetaModelV
protected abstract String failureMessageFor(final Facet facet);
- public void addFacet(final Facet facet) {
+ public <T extends Facet> T addFacetFlagIfPresent(final T facet) {
FacetUtil.addFacet(flagIfPresent(facet));
+ return facet;
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/AuditableAnnotationInJdoApplibFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/AuditableAnnotationInJdoApplibFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/AuditableAnnotationInJdoApplibFacetFactory.java
index 014385f..e002c59 100644
--- a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/AuditableAnnotationInJdoApplibFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/AuditableAnnotationInJdoApplibFacetFactory.java
@@ -50,7 +50,7 @@ public class AuditableAnnotationInJdoApplibFacetFactory extends FacetFactoryAbst
if (annotation == null) {
return;
}
- validator.addFacet(new AuditableFacetAnnotationInJdoApplib(processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(new AuditableFacetAnnotationInJdoApplib(processClassContext.getFacetHolder()));
return;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
index 9f2612b..1c1ad25 100644
--- a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
@@ -30,7 +30,7 @@ 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;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.mandatory.MandatoryFacetOnPropertyMandatoryAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForMandatoryAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForPropertyAnnotation;
import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetDefault;
@@ -66,7 +66,7 @@ public class MandatoryFromJdoColumnAnnotationFacetFactory extends FacetFactoryAb
// we must keep an optional facet here for different reasons
return;
}
- if (existingFacet instanceof MandatoryFacetOnPropertyMandatoryAnnotation) {
+ if (existingFacet instanceof MandatoryFacetForMandatoryAnnotationOnProperty) {
// do not replace this facet;
// an explicit @Mandatory annotation cannot be overridden by @Column annotation
return;
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
index aef4549..0b4df7a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -30,7 +30,7 @@ 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;
-import org.apache.isis.core.metamodel.facets.properties.validating.maxlenannot.MaxLengthFacetOnPropertyAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.property.maxlength.MaxLengthFacetForMaxLengthAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -115,7 +115,7 @@ public class MaxLengthDerivedFromJdoColumnAnnotationFacetFactory extends FacetFa
continue;
}
- if(facet instanceof MaxLengthFacetDerivedFromJdoColumn && underlying instanceof MaxLengthFacetOnPropertyAnnotation) {
+ if(facet instanceof MaxLengthFacetDerivedFromJdoColumn && underlying instanceof MaxLengthFacetForMaxLengthAnnotationOnProperty) {
if(facet.value() != underlying.value()) {
validationFailures.add("%s: incompatible usage of Isis' @MaxLength annotation and @javax.jdo.annotations.Column with inconsistent lengths; use just @javax.jdo.annotations.Column(length=...)", association.getIdentifier().toClassAndNameIdentityString());
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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 867488d..dea9b39 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
@@ -32,7 +32,6 @@ import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.annotation
import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.derived.NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory;
import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.method.NotInServiceMenuFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.actions.paged.annotation.PagedFacetOnActionFactory;
-import org.apache.isis.core.metamodel.facets.actions.prototype.annotation.PrototypeFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.actions.validating.maxlenannot.MaxLengthFacetOnActionAnnotationFactory;
import org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessorFactory;
@@ -42,7 +41,6 @@ import org.apache.isis.core.metamodel.facets.collections.disabled.fromimmutable.
import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFacetFactory;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToRemoveFromAndValidateFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.notpersisted.annotation.NotPersistedFacetOnCollectionAnnotationFactory;
import org.apache.isis.core.metamodel.facets.collections.paged.annotation.PagedFacetOnCollectionFactory;
import org.apache.isis.core.metamodel.facets.collections.parented.ParentedFacetSinceCollectionFactory;
import org.apache.isis.core.metamodel.facets.collections.sortedby.annotation.SortedByFacetAnnotationFactory;
@@ -52,11 +50,11 @@ import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClass
import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.describedas.staticmethod.DescribedAsFacetStaticMethodFactory;
-import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetFactory;
+import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetOnMemberFromPropertiesFactory;
import org.apache.isis.core.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.members.disabled.staticmethod.DisabledFacetStaticMethodFacetFactory;
-import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberFactory;
+import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberFromPropertiesFactory;
import org.apache.isis.core.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.members.hidden.staticmethod.HiddenFacetStaticMethodFactory;
@@ -141,7 +139,6 @@ import org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParam
import org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory;
import org.apache.isis.core.metamodel.facets.param.layout.ParameterLayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.param.mandatory.annotation.MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory;
import org.apache.isis.core.metamodel.facets.param.mandatory.dflt.MandatoryFacetOnParametersDefaultFactory;
import org.apache.isis.core.metamodel.facets.param.multiline.annotation.MultiLineFacetOnParameterAnnotationFactory;
import org.apache.isis.core.metamodel.facets.param.named.annotation.NamedFacetOnParameterAnnotationFactory;
@@ -150,9 +147,6 @@ import org.apache.isis.core.metamodel.facets.param.renderedasdaybefore.annotatio
import org.apache.isis.core.metamodel.facets.param.typicallen.annotation.TypicalLengthFacetOnParameterAnnotationFactory;
import org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory;
import org.apache.isis.core.metamodel.facets.param.validating.maskannot.MaskFacetOnParameterAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.maxlenannot.MaxLengthFacetOnParameterAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.mustsatisfyspec.MustSatisfySpecificationOnParameterFacetFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.regexannot.RegExFacetFacetOnParameterAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessorFactory;
import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethodFactory;
import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory;
@@ -162,12 +156,9 @@ import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.Proper
import org.apache.isis.core.metamodel.facets.properties.defaults.method.PropertyDefaultFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutableFactory;
import org.apache.isis.core.metamodel.facets.properties.disabled.inferred.DisabledFacetOnPropertyInferredFactory;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.mandatory.MandatoryFacetOnPropertyMandatoryAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.optional.MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.mandatory.dflt.MandatoryFacetOnProperyDefaultFactory;
import org.apache.isis.core.metamodel.facets.properties.mandatory.staticmethod.MandatoryFacetOnPropertyStaticMethodFactory;
import org.apache.isis.core.metamodel.facets.properties.multiline.annotation.MultiLineFacetOnPropertyFactory;
-import org.apache.isis.core.metamodel.facets.properties.notpersisted.annotation.NotPersistedFacetOnPropertyAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.property.PropertyAnnotationFacetFactory;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.PropertyLayoutFacetFactory;
import org.apache.isis.core.metamodel.facets.properties.renderedasdaybefore.annotation.RenderedAsDayBeforeAnnotationOnPropertyFacetFactory;
@@ -177,10 +168,7 @@ import org.apache.isis.core.metamodel.facets.properties.update.PropertyModifyFac
import org.apache.isis.core.metamodel.facets.properties.update.PropertySetAndClearFacetFactory;
import org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefaultFactory;
import org.apache.isis.core.metamodel.facets.properties.validating.maskannot.MaskFacetOnPropertyAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.validating.maxlenannot.MaxLengthFacetOnPropertyAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethodFactory;
-import org.apache.isis.core.metamodel.facets.properties.validating.mustsatisfyspec.MustSatisfySpecificationOnPropertyFacetFactory;
-import org.apache.isis.core.metamodel.facets.properties.validating.regexannot.RegExFacetFacetOnPropertyAnnotationFactory;
import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacetUsingSemanticsProviderFactory;
import org.apache.isis.core.metamodel.facets.value.biginteger.BigIntegerValueFacetUsingSemanticsProviderFactory;
import org.apache.isis.core.metamodel.facets.value.blobs.BlobValueFacetUsingSemanticsProviderFactory;
@@ -343,10 +331,9 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.class);
addFactory(BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory.class);
- addFactory(DisabledFacetFactory.class);
+ addFactory(DisabledFacetOnMemberFromPropertiesFactory.class);
addFactory(EncodableFacetAnnotationElseConfigurationFactory.class);
addFactory(ExplorationFacetAnnotationFactory.class);
- addFactory(PrototypeFacetAnnotationFactory.class);
addFactory(NotContributedFacetAnnotationFactory.class);
addFactory(NotInServiceMenuFacetAnnotationFactory.class);
addFactory(NotInServiceMenuFacetViaMethodFactory.class);
@@ -357,7 +344,7 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(HiddenFacetOnTypeAnnotationFactory.class);
// must come after the TitleAnnotationFacetFactory, because can act as an override
- addFactory(HiddenFacetOnMemberFactory.class);
+ addFactory(HiddenFacetOnMemberFromPropertiesFactory.class);
addFactory(CssClassFacetOnTypeAnnotationFactory.class);
addFactory(CssClassFacetOnMemberFactory.class);
@@ -376,13 +363,9 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(RecreatableObjectFacetFactory.class);
addFactory(MaxLengthFacetOnTypeAnnotationFactory.class);
- addFactory(MaxLengthFacetOnPropertyAnnotationFactory.class);
- addFactory(MaxLengthFacetOnParameterAnnotationFactory.class);
addFactory(MaxLengthFacetOnActionAnnotationFactory.class);
addFactory(MustSatisfySpecificationOnTypeFacetFactory.class);
- addFactory(MustSatisfySpecificationOnPropertyFacetFactory.class);
- addFactory(MustSatisfySpecificationOnParameterFacetFactory.class);
addFactory(MultiLineFacetOnTypeAnnotationFactory.class);
addFactory(MultiLineFacetOnPropertyFactory.class);
@@ -420,13 +403,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(NotPersistableFacetAnnotationFactory.class);
addFactory(NotPersistableFacetMarkerInterfaceFactory.class);
- addFactory(NotPersistedFacetOnCollectionAnnotationFactory.class);
- addFactory(NotPersistedFacetOnPropertyAnnotationFactory.class);
-
- addFactory(MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory.class);
- addFactory(MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory.class);
- addFactory(MandatoryFacetOnPropertyMandatoryAnnotationFactory.class);
-
addFactory(ParseableFacetAnnotationElseConfigurationFactory.class);
addFactory(PluralAnnotationFacetFactory.class);
addFactory(PagedFacetOnTypeAnnotationFactory.class);
@@ -442,8 +418,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
// must come after any facets that install titles, and after mask
// if takes precedence over mask.
addFactory(RegExFacetOnTypeAnnotationFactory.class);
- addFactory(RegExFacetFacetOnPropertyAnnotationFactory.class);
- addFactory(RegExFacetFacetOnParameterAnnotationFactory.class);
addFactory(TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory.class);
addFactory(TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
index e495647..5767d2a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
@@ -181,7 +181,7 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
// when
final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
@@ -223,7 +223,7 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
// when
final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
@@ -265,7 +265,7 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
// when
final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
@@ -299,7 +299,7 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
// when
final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
index e7d4abe..b852749 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
@@ -58,7 +58,7 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
}
final Method actionMethod = findMethod(Customer.class, "someAction");
- facetFactory.processInvocation(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
+ facetFactory.processDomainEvent(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(ActionInvocationFacet.class);
assertNotNull(facet);
@@ -79,7 +79,7 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
}
final Method actionMethod = findMethod(Customer.class, "someAction");
- facetFactory.processInvocation(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
+ facetFactory.processDomainEvent(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(ActionInvocationFacet.class);
final ActionInvocationFacetForDomainEventAbstract actionInvocationFacetViaMethod = (ActionInvocationFacetForDomainEventAbstract) facet;
@@ -97,7 +97,7 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
}
final Method actionMethod = findMethod(Customer.class, "someAction");
- facetFactory.processInvocation(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
+ facetFactory.processDomainEvent(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(ActionInvocationFacet.class);
final ActionInvocationFacetForDomainEventAbstract actionInvocationFacetViaMethod = (ActionInvocationFacetForDomainEventAbstract) facet;
@@ -115,7 +115,7 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
}
final Method actionMethod = findMethod(Customer.class, "someAction");
- facetFactory.processInvocation(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
+ facetFactory.processDomainEvent(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(ActionInvocationFacet.class);
final ActionInvocationFacetForDomainEventAbstract actionInvocationFacetViaMethod = (ActionInvocationFacetForDomainEventAbstract) facet;
@@ -138,7 +138,7 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
final FacetedMethod facetHolderWithParms = FacetedMethod.createForAction(CustomerEx.class, actionMethod);
- facetFactory.processInvocation(new ProcessMethodContext(CustomerEx.class, null, null, actionMethod, methodRemover, facetHolderWithParms));
+ facetFactory.processDomainEvent(new ProcessMethodContext(CustomerEx.class, null, null, actionMethod, methodRemover, facetHolderWithParms));
final Facet facet0 = facetHolderWithParms.getFacet(ActionInvocationFacet.class);
assertNotNull(facet0);
@@ -191,7 +191,7 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
final FacetedMethod facetHolderWithParms = FacetedMethod.createForAction(CustomerEx.class, actionMethod);
final ProcessMethodContext processMethodContext = new ProcessMethodContext(CustomerEx.class, null, null, actionMethod, methodRemover, facetHolderWithParms);
- facetFactory.processInvocation(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
facetFactoryForChoices.process(processMethodContext);
facetFactoryForDisable.process(processMethodContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
new file mode 100644
index 0000000..2a4ca24
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Prototype;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
+
+public class PrototypeFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+ private ActionAnnotationFacetFactory facetFactory;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ facetFactory = new ActionAnnotationFacetFactory();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ facetFactory = null;
+ super.tearDown();
+ }
+
+ public void testAnnotationPickedUp() {
+ class Customer {
+ @SuppressWarnings("unused")
+ @Prototype
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetFactory.processRestrictTo(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(PrototypeFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PrototypeFacetAbstract);
+
+ assertNoMethodsRemoved();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAnnotationFactoryTest.java
deleted file mode 100644
index 23e31cd..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAnnotationFactoryTest.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.actions.prototype;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Prototype;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.actions.prototype.annotation.PrototypeFacetAnnotationFactory;
-
-public class PrototypeFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
-
- private PrototypeFacetAnnotationFactory facetFactory;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- facetFactory = new PrototypeFacetAnnotationFactory();
- }
-
- @Override
- protected void tearDown() throws Exception {
- facetFactory = null;
- super.tearDown();
- }
-
- public void testAnnotationPickedUp() {
- class Customer {
- @SuppressWarnings("unused")
- @Prototype
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(PrototypeFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof PrototypeFacetAbstract);
-
- assertNoMethodsRemoved();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
index cde8f85..a0fcd18 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
@@ -159,7 +159,7 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, collectionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(CollectionDomainEventFacet.class);
@@ -220,7 +220,7 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, collectionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(CollectionDomainEventFacet.class);
@@ -279,7 +279,7 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, collectionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(CollectionDomainEventFacet.class);
@@ -328,7 +328,7 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
// when
final FacetFactory.ProcessMethodContext processMethodContext = new FacetFactory.ProcessMethodContext(cls, null, null, collectionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processModify(processMethodContext);
+ facetFactory.processDomainEvent(processMethodContext);
// then
final Facet domainEventFacet = facetedMethod.getFacet(CollectionDomainEventFacet.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java
new file mode 100644
index 0000000..1506dc2
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.collections.collection;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.collections.collection.notpersisted.NotPersistedFacetForNotPersistedAnnotationOnCollection;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+
+public class NotPersistedAnnotationOnCollectionFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private CollectionAnnotationFacetFactory facetFactory;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new CollectionAnnotationFacetFactory();
+ }
+
+ public void testNotPersistedAnnotationPickedUpOnCollection() {
+
+ class Order {
+ }
+ class Customer {
+ @SuppressWarnings("unused")
+ @NotPersisted()
+ public Collection<Order> getOrders() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getOrders");
+
+ facetFactory.processNotPersisted(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(NotPersistedFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof NotPersistedFacetForNotPersistedAnnotationOnCollection);
+
+ assertNoMethodsRemoved();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledAnnotationFacetFactoryTest.java
index 7034cfe..2588ae7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledAnnotationFacetFactoryTest.java
@@ -27,20 +27,20 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetFactory;
+import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetOnMemberFromPropertiesFactory;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class DisabledAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
- private DisabledFacetFactory facetFactory;
+ private DisabledFacetOnMemberFromPropertiesFactory facetFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
- facetFactory = new DisabledFacetFactory();
+ facetFactory = new DisabledFacetOnMemberFromPropertiesFactory();
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenAnnotationFacetFactoryTest.java
index d7877cd..1194815 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenAnnotationFacetFactoryTest.java
@@ -28,17 +28,17 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberAnnotation;
-import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberFactory;
+import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberFromPropertiesFactory;
public class HiddenAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
- private HiddenFacetOnMemberFactory facetFactory;
+ private HiddenFacetOnMemberFromPropertiesFactory facetFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
- facetFactory = new HiddenFacetOnMemberFactory();
+ facetFactory = new HiddenFacetOnMemberFromPropertiesFactory();
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
new file mode 100644
index 0000000..92611ec
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/MustSatisfySpecificationFacetFactoryProcessParameterTest.java
@@ -0,0 +1,84 @@
+/*
+ * 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.param.parameter;
+
+import java.lang.reflect.Method;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter;
+import org.apache.isis.core.metamodel.facets.propparam.specification.DomainObjectWithMustSatisfyAnnotations;
+import org.apache.isis.core.metamodel.facets.propparam.specification.DomainObjectWithoutMustSatisfyAnnotations;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import static org.apache.isis.core.commons.matchers.IsisMatchers.anInstanceOf;
+
+public class MustSatisfySpecificationFacetFactoryProcessParameterTest {
+
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
+ @Mock
+ private FacetedMethodParameter mockFacetedMethodParameter;
+
+ private Class<DomainObjectWithoutMustSatisfyAnnotations> domainObjectClassWithoutAnnotation;
+ private Class<DomainObjectWithMustSatisfyAnnotations> domainObjectClassWithAnnotation;
+ private Method changeLastNameMethodWithout;
+ private Method changeLastNameMethodWith;
+
+ private ParameterAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ domainObjectClassWithoutAnnotation = DomainObjectWithoutMustSatisfyAnnotations.class;
+ domainObjectClassWithAnnotation = DomainObjectWithMustSatisfyAnnotations.class;
+ changeLastNameMethodWithout = domainObjectClassWithoutAnnotation.getMethod("changeLastName", String.class);
+ changeLastNameMethodWith = domainObjectClassWithAnnotation.getMethod("changeLastName", String.class);
+
+ facetFactory = new ParameterAnnotationFacetFactory();
+ }
+
+ @Test
+ public void addsAMustSatisfySpecificationFacetIfAnnotated() {
+
+ context.checking(new Expectations() {
+ {
+ oneOf(mockFacetedMethodParameter).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.class)));
+ }
+ });
+ facetFactory.processParamsMustSatisfy(new ProcessParameterContext(changeLastNameMethodWith, 0, mockFacetedMethodParameter));
+ }
+
+ @Test
+ public void doesNotAddsAMustSatisfySpecificationFacetIfNotAnnotated() {
+
+ context.checking(new Expectations() {
+ {
+ never(mockFacetedMethodParameter).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.class)));
+ }
+ });
+ facetFactory.processParamsMustSatisfy(new ProcessParameterContext(changeLastNameMethodWithout, 0, mockFacetedMethodParameter));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
new file mode 100644
index 0000000..62587cb
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/OptionalAnnotationOnParameterFacetFactoryTest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.param.parameter;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
+import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetInvertedByOptionalAnnotationOnParameter;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
+
+public class OptionalAnnotationOnParameterFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private ParameterAnnotationFacetFactory facetFactory;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new ParameterAnnotationFacetFactory();
+ }
+ public void testOptionalAnnotationPickedUpOnActionParameter() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction(@Optional final String foo) {
+ }
+ }
+ final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
+
+ facetFactory.processParamsOptional(new ProcessParameterContext(method, 0, facetedMethodParameter));
+
+ final Facet facet = facetedMethodParameter.getFacet(MandatoryFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof MandatoryFacetInvertedByOptionalAnnotationOnParameter);
+ }
+
+ public void testOptionalAnnotationIgnoredForPrimitiveOnActionParameter() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction(@Optional final int foo) {
+ }
+ }
+ final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
+
+ facetFactory.processParamsOptional(new ProcessParameterContext(method, 0, facetedMethodParameter));
+
+ assertNull(facetedMethod.getFacet(MandatoryFacet.class));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
index 81d1a4e..3915b33 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
@@ -15,6 +15,10 @@ import org.apache.isis.applib.spec.Specification;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.maxlen.MaxLengthFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForParameterAnnotation;
+import org.apache.isis.core.metamodel.facets.param.parameter.regex.RegExFacetForParameterAnnotation;
import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacet;
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
new file mode 100644
index 0000000..28ba415
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.param.parameter;
+
+import java.lang.reflect.Method;
+import org.junit.Before;
+import org.apache.isis.applib.annotation.RegEx;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.param.parameter.regex.RegExFacetFromRegExAnnotationOnParameter;
+
+public class RegExAnnotationOnParameterFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private ParameterAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new ParameterAnnotationFacetFactory();
+ }
+
+ public void testRegExAnnotationPickedUpOnActionParameter() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction(@RegEx(validation = "^A.*", caseSensitive = false) final String foo) {
+ }
+ }
+ final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
+
+ facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
+
+ final Facet facet = facetedMethodParameter.getFacet(RegExFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof RegExFacetFromRegExAnnotationOnParameter);
+ final RegExFacetFromRegExAnnotationOnParameter regExFacet = (RegExFacetFromRegExAnnotationOnParameter) facet;
+ assertEquals("^A.*", regExFacet.validation());
+ assertEquals(false, regExFacet.caseSensitive());
+ }
+
+ public void testRegExAnnotationIgnoredForPrimitiveOnActionParameter() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction(@RegEx(validation = "^A.*", caseSensitive = false) final int foo) {
+ }
+ }
+ final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
+
+ facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
+
+ assertNull(facetedMethod.getFacet(RegExFacet.class));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propcoll/notpersisted/NotPersistedAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propcoll/notpersisted/NotPersistedAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propcoll/notpersisted/NotPersistedAnnotationFacetFactoryTest.java
deleted file mode 100644
index 57199a3..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propcoll/notpersisted/NotPersistedAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,80 +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.propcoll.notpersisted;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-
-import org.apache.isis.applib.annotation.NotPersisted;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.collections.notpersisted.annotation.NotPersistedFacetOnCollectionAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.collections.notpersisted.annotation.NotPersistedFacetOnCollectionAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.notpersisted.annotation.NotPersistedFacetOnPropertyAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.notpersisted.annotation.NotPersistedFacetOnPropertyAnnotation;
-
-public class NotPersistedAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
-
- public void testNotPersistedAnnotationPickedUpOnProperty() {
- final NotPersistedFacetOnPropertyAnnotationFactory facetFactory = new NotPersistedFacetOnPropertyAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- @NotPersisted()
- public String getFirstName() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getFirstName");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(NotPersistedFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof NotPersistedFacetOnPropertyAnnotation);
-
- assertNoMethodsRemoved();
- }
-
- public void testNotPersistedAnnotationPickedUpOnCollection() {
- final NotPersistedFacetOnCollectionAnnotationFactory facetFactory = new NotPersistedFacetOnCollectionAnnotationFactory();
-
- class Order {
- }
- class Customer {
- @SuppressWarnings("unused")
- @NotPersisted()
- public Collection<Order> getOrders() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getOrders");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(NotPersistedFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof NotPersistedFacetOnCollectionAnnotation);
-
- assertNoMethodsRemoved();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java
new file mode 100644
index 0000000..4831b84
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.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.properties.property;
+
+import java.lang.reflect.Method;
+import org.junit.Before;
+import org.apache.isis.applib.annotation.Mandatory;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForMandatoryAnnotationOnProperty;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
+
+public class MandatoryAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private PropertyAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new PropertyAnnotationFacetFactory();
+ }
+
+ public void testMandatoryAnnotationPickedUpOnProperty() {
+
+ class Customer {
+ @Mandatory
+ public String getFirstName() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getFirstName");
+
+ facetFactory.processOptional(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(MandatoryFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof MandatoryFacetForMandatoryAnnotationOnProperty);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java
new file mode 100644
index 0000000..7f8923f
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MustSatisfySpecificationFacetFactoryProcessPropertyTest.java
@@ -0,0 +1,86 @@
+/*
+ * 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.properties.property;
+
+import java.lang.reflect.Method;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.apache.isis.core.metamodel.facetapi.MethodRemover;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.properties.property.mustsatisfy.MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty;
+import org.apache.isis.core.metamodel.facets.propparam.specification.DomainObjectWithMustSatisfyAnnotations;
+import org.apache.isis.core.metamodel.facets.propparam.specification.DomainObjectWithoutMustSatisfyAnnotations;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import static org.apache.isis.core.commons.matchers.IsisMatchers.anInstanceOf;
+
+public class MustSatisfySpecificationFacetFactoryProcessPropertyTest {
+
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
+ @Mock
+ private MethodRemover mockMethodRemover;
+ @Mock
+ private FacetedMethod mockFacetHolder;
+
+ private Class<DomainObjectWithoutMustSatisfyAnnotations> domainObjectClassWithoutAnnotation;
+ private Class<DomainObjectWithMustSatisfyAnnotations> domainObjectClassWithAnnotation;
+ private Method firstNameMethodWithout;
+ private Method firstNameMethodWith;
+ private PropertyAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ domainObjectClassWithoutAnnotation = DomainObjectWithoutMustSatisfyAnnotations.class;
+ domainObjectClassWithAnnotation = DomainObjectWithMustSatisfyAnnotations.class;
+ firstNameMethodWithout = domainObjectClassWithoutAnnotation.getMethod("getFirstName");
+ firstNameMethodWith = domainObjectClassWithAnnotation.getMethod("getFirstName");
+
+ facetFactory = new PropertyAnnotationFacetFactory();
+ }
+
+ @Test
+ public void addsAMustSatisfySpecificationFacetIfAnnotated() {
+
+ context.checking(new Expectations() {
+ {
+ oneOf(mockFacetHolder).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.class)));
+ }
+ });
+ facetFactory.processMustSatisfy(new ProcessMethodContext(domainObjectClassWithAnnotation.getClass(), null, null, firstNameMethodWith, mockMethodRemover, mockFacetHolder));
+ }
+
+ @Test
+ public void doesNotAddsAMustSatisfySpecificationFacetIfNotAnnotated() {
+
+ context.checking(new Expectations() {
+ {
+ never(mockFacetHolder).addFacet(with(anInstanceOf(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.class)));
+ }
+ });
+ facetFactory.processMustSatisfy(new ProcessMethodContext(domainObjectClassWithAnnotation.getClass(), null, null, firstNameMethodWithout, mockMethodRemover, mockFacetHolder));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java
new file mode 100644
index 0000000..153c257
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java
@@ -0,0 +1,60 @@
+/*
+ * 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.properties.property;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.properties.property.notpersisted.NotPersistedFacetForNotPersistedAnnotationOnProperty;
+
+public class NotPersistedAnnotationOnPropertyFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ private PropertyAnnotationFacetFactory facetFactory;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ facetFactory = new PropertyAnnotationFacetFactory();
+ }
+
+ public void testNotPersistedAnnotationPickedUpOnProperty() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ @NotPersisted()
+ public String getFirstName() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getFirstName");
+
+ facetFactory.processNotPersisted(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(NotPersistedFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof NotPersistedFacetForNotPersistedAnnotationOnProperty);
+
+ assertNoMethodsRemoved();
+ }
+
+
+}
[5/5] isis git commit: ISIS-1027: moving the handling of deprecated
annotations to {Property|Collection|Action|Parameter}AnnotationFacetFactory.
Posted by da...@apache.org.
ISIS-1027: moving the handling of deprecated annotations to {Property|Collection|Action|Parameter}AnnotationFacetFactory.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/31816a69
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/31816a69
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/31816a69
Branch: refs/heads/ISIS-1027
Commit: 31816a69b0a7e12b14b775e9cc4e3beabd4b3f99
Parents: b5f73ec
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Feb 6 09:58:18 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Feb 6 09:58:18 2015 +0000
----------------------------------------------------------------------
.../isis/applib/annotation/Collection.java | 9 ++
.../action/ActionAnnotationFacetFactory.java | 56 ++++++-
.../PrototypeFacetForPrototypeAnnotation.java | 37 +++++
.../annotation/DebugFacetAnnotationFactory.java | 2 +-
.../ExplorationFacetAnnotationFactory.java | 2 +-
...ActionNamedDebugExplorationFacetFactory.java | 4 +-
.../NotContributedFacetAnnotationFactory.java | 2 +-
.../NotInServiceMenuFacetAnnotationFactory.java | 2 +-
.../NotInServiceMenuFacetViaMethodFactory.java | 2 +-
.../annotation/PrototypeFacetAnnotation.java | 32 ----
.../PrototypeFacetAnnotationFactory.java | 62 --------
...MaxLengthFacetOnActionAnnotationFactory.java | 2 +-
.../CollectionAnnotationFacetFactory.java | 77 ++++++++--
...otPersistedFacetForCollectionAnnotation.java | 49 ++++++
...etForNotPersistedAnnotationOnCollection.java | 41 +++++
...NotPersistedFacetOnCollectionAnnotation.java | 31 ----
...istedFacetOnCollectionAnnotationFactory.java | 62 --------
.../SortedByFacetAnnotationFactory.java | 2 +-
.../DescribedAsFacetStaticMethodFactory.java | 2 +-
.../annotprop/DisabledFacetAnnotation.java | 7 +
.../annotprop/DisabledFacetFactory.java | 90 -----------
...abledFacetOnMemberFromPropertiesFactory.java | 56 +++++++
.../DisabledFacetStaticMethodFacetFactory.java | 2 +-
.../HiddenFacetOnMemberAnnotation.java | 12 +-
.../annotprop/HiddenFacetOnMemberFactory.java | 90 -----------
...iddenFacetOnMemberFromPropertiesFactory.java | 57 +++++++
.../HiddenFacetStaticMethodFactory.java | 2 +-
.../NamedFacetStaticMethodFactory.java | 2 +-
.../ActionOrderFacetAnnotationFactory.java | 2 +-
.../CssClassFacetOnTypeAnnotationFactory.java | 3 +-
.../CssClassFaFacetOnTypeAnnotationFactory.java | 2 +-
...DescribedAsFacetOnTypeAnnotationFactory.java | 2 +-
.../FieldOrderFacetAnnotationFactory.java | 3 +-
.../HiddenFacetOnTypeAnnotationFactory.java | 3 +-
.../MaskFacetOnTypeAnnotationFactory.java | 2 +-
.../MaxLengthFacetOnTypeAnnotationFactory.java | 2 +-
.../MultiLineFacetOnTypeAnnotationFactory.java | 2 +-
.../NamedFacetOnTypeAnnotationFactory.java | 2 +-
.../NamedFacetStaticMethodFactory.java | 2 +-
.../PagedFacetOnTypeAnnotationFactory.java | 2 +-
.../PluralAnnotationFacetFactory.java | 2 +-
.../PluralFacetStaticMethodFactory.java | 2 +-
.../RegExFacetOnTypeAnnotationFactory.java | 2 +-
...picalLengthFacetOnTypeAnnotationFactory.java | 2 +-
...tSatisfySpecificationOnTypeFacetFactory.java | 2 +-
...OnParameterInvertedByOptionalAnnotation.java | 39 -----
...eterInvertedByOptionalAnnotationFactory.java | 70 ---------
.../NamedFacetOnParameterAnnotationFactory.java | 2 +-
.../MandatoryFacetForParameterAnnotation.java | 79 ----------
.../MaxLengthFacetForParameterAnnotation.java | 47 ------
...pecificationFacetForParameterAnnotation.java | 54 -------
.../ParameterAnnotationFacetFactory.java | 152 +++++++++++++++++--
.../RegExFacetForParameterAnnotation.java | 74 ---------
.../MandatoryFacetForParameterAnnotation.java | 79 ++++++++++
...InvertedByOptionalAnnotationOnParameter.java | 53 +++++++
.../MaxLengthFacetForParameterAnnotation.java | 47 ++++++
...engthFacetOnParamForMaxLengthAnnotation.java | 37 +++++
...acetForMustSatisfyAnnotationOnParameter.java | 52 +++++++
...pecificationFacetForParameterAnnotation.java | 54 +++++++
.../regex/RegExFacetForParameterAnnotation.java | 78 ++++++++++
...egExFacetFromRegExAnnotationOnParameter.java | 77 ++++++++++
...BeforeFacetOnParameterAnnotationFactory.java | 3 +-
...LengthFacetOnParameterAnnotationFactory.java | 2 +-
.../MaxLengthFacetOnParameterAnnotation.java | 31 ----
...LengthFacetOnParameterAnnotationFactory.java | 71 ---------
...acetForMustSatisfyAnnotationOnParameter.java | 52 -------
...sfySpecificationOnParameterFacetFactory.java | 65 --------
...xFacetFacetOnParameterAnnotationFactory.java | 105 -------------
.../RegExFacetOnParameterAnnotation.java | 59 -------
...atoryFacetOnPropertyMandatoryAnnotation.java | 43 ------
...cetOnPropertyMandatoryAnnotationFactory.java | 59 -------
...tOnPropertyInvertedByOptionalAnnotation.java | 48 ------
...ertyInvertedByOptionalAnnotationFactory.java | 66 --------
...atoryFacetOnPropertyStaticMethodFactory.java | 2 +-
.../MultiLineFacetOnPropertyFactory.java | 16 +-
.../NotPersistedFacetOnPropertyAnnotation.java | 36 -----
...rsistedFacetOnPropertyAnnotationFactory.java | 58 -------
.../PropertyAnnotationFacetFactory.java | 136 ++++++++++++++---
...ryFacetForMandatoryAnnotationOnProperty.java | 48 ++++++
...tInvertedByOptionalAnnotationOnProperty.java | 48 ++++++
...thFacetForMaxLengthAnnotationOnProperty.java | 36 +++++
...FacetForMustSatisfyAnnotationOnProperty.java | 52 +++++++
...acetForNotPersistedAnnotationOnProperty.java | 36 +++++
.../regex/RegExFacetForPropertyAnnotation.java | 14 +-
...RegExFacetFromRegExAnnotationOnProperty.java | 74 +++++++++
...yBeforeAnnotationOnPropertyFacetFactory.java | 2 +-
.../MaxLengthFacetOnPropertyAnnotation.java | 31 ----
...xLengthFacetOnPropertyAnnotationFactory.java | 63 --------
...FacetForMustSatisfyAnnotationOnProperty.java | 52 -------
...isfySpecificationOnPropertyFacetFactory.java | 63 --------
...ExFacetFacetOnPropertyAnnotationFactory.java | 82 ----------
.../RegExFacetOnPropertyAnnotation.java | 69 ---------
.../validator/MetaModelValidatorComposite.java | 13 +-
...MetaModelValidatorForDeprecatedAbstract.java | 3 +-
...itableAnnotationInJdoApplibFacetFactory.java | 2 +-
...toryFromJdoColumnAnnotationFacetFactory.java | 4 +-
...ivedFromJdoColumnAnnotationFacetFactory.java | 4 +-
.../dflt/ProgrammingModelFacetsJava5.java | 34 +----
.../ActionAnnotationFacetFactoryTest.java | 8 +-
...tationFacetFactoryTest_actionInvocation.java | 12 +-
.../PrototypeFacetAnnotationFactoryTest.java | 65 ++++++++
.../PrototypeFacetAnnotationFactoryTest.java | 65 --------
.../CollectionAnnotationFacetFactoryTest.java | 8 +-
...dAnnotationOnCollectionFacetFactoryTest.java | 62 ++++++++
.../DisabledAnnotationFacetFactoryTest.java | 6 +-
.../HiddenAnnotationFacetFactoryTest.java | 6 +-
...icationFacetFactoryProcessParameterTest.java | 84 ++++++++++
...alAnnotationOnParameterFacetFactoryTest.java | 68 +++++++++
.../ParameterAnnotationFacetFactoryTest.java | 4 +
...ExAnnotationOnParameterFacetFactoryTest.java | 74 +++++++++
.../NotPersistedAnnotationFacetFactoryTest.java | 80 ----------
.../MandatoryAnnotationFacetFactoryTest.java | 59 +++++++
...ficationFacetFactoryProcessPropertyTest.java | 86 +++++++++++
...tedAnnotationOnPropertyFacetFactoryTest.java | 60 ++++++++
...nalAnnotationOnPropertyFacetFactoryTest.java | 72 +++++++++
.../PropertyAnnotationFacetFactoryTest.java | 8 +-
...gExAnnotationOnPropertyFacetFactoryTest.java | 79 ++++++++++
...icationFacetFactoryProcessParameterTest.java | 87 -----------
...ficationFacetFactoryProcessPropertyTest.java | 90 -----------
.../MandatoryAnnotationFacetFactoryTest.java | 53 -------
.../OptionalAnnotationFacetFactoryTest.java | 104 -------------
.../regex/RegExAnnotationFacetFactoryTest.java | 130 ----------------
.../RegExAnnotationOnTypeFacetFactoryTest.java | 48 ++++++
.../legacy/MemberInvalidTest.java | 8 +-
124 files changed, 2278 insertions(+), 2555 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
index cfa0f46..7649a21 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Collection.java
@@ -90,6 +90,15 @@ public @interface Collection {
// //////////////////////////////////////
+
+ /**
+ * Indicates that the property should not be persisted.
+ */
+ boolean notPersisted() default false;
+
+
+ // //////////////////////////////////////
+
/**
* The type-of the elements held within the collection.
* @return
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 2d83c2b..3f9b318 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -29,8 +29,11 @@ import org.apache.isis.applib.annotation.ActionInteraction;
import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.Command;
+import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.Idempotent;
import org.apache.isis.applib.annotation.PostsActionInvokedEvent;
+import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.applib.annotation.PublishedAction;
import org.apache.isis.applib.annotation.QueryOnly;
import org.apache.isis.applib.annotation.TypeOf;
@@ -78,9 +81,14 @@ import org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetFo
import org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetOnActionForTypeOfAnnotation;
import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForPrototypeAnnotation;
import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetAnnotation;
+import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberAnnotation;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -101,6 +109,9 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
private final MetaModelValidatorForDeprecatedAnnotation idempotentValidator = new MetaModelValidatorForDeprecatedAnnotation(Idempotent.class);
private final MetaModelValidatorForDeprecatedAnnotation publishedActionValidator = new MetaModelValidatorForDeprecatedAnnotation(PublishedAction.class);
private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator = new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
+ private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
+ private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
+ private final MetaModelValidatorForDeprecatedAnnotation prototypeValidator = new MetaModelValidatorForDeprecatedAnnotation(Prototype.class);
private ServicesInjector servicesInjector;
@@ -117,8 +128,9 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
@Override
public void process(final ProcessMethodContext processMethodContext) {
- processInvocation(processMethodContext);
+ processDomainEvent(processMethodContext);
processHidden(processMethodContext);
+ processDisabled(processMethodContext);
processRestrictTo(processMethodContext);
processSemantics(processMethodContext);
processBulk(processMethodContext);
@@ -132,7 +144,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
processTypeOf(processMethodContext);
}
- void processInvocation(final ProcessMethodContext processMethodContext) {
+ void processDomainEvent(final ProcessMethodContext processMethodContext) {
final Method actionMethod = processMethodContext.getMethod();
@@ -224,19 +236,47 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
void processHidden(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ // check for deprecated @Hidden
+ final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
+ HiddenFacet facet = hiddenValidator.flagIfPresent(HiddenFacetOnMemberAnnotation.create(hiddenAnnotation, holder));
+
+ // else search for @Action(hidden=...)
final Action action = Annotations.getAnnotation(method, Action.class);
+ if(facet == null) {
+ facet = HiddenFacetForActionAnnotation.create(action, holder);
+ }
+ FacetUtil.addFacet(facet);
+ }
+
+ void processDisabled(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
final FacetHolder holder = processMethodContext.getFacetHolder();
- HiddenFacet facet = HiddenFacetForActionAnnotation.create(action, holder);
+ // check for deprecated @Disabled
+ final Disabled annotation = Annotations.getAnnotation(method, Disabled.class);
+ DisabledFacet facet = disabledValidator.flagIfPresent(DisabledFacetAnnotation.create(annotation, holder));
+
+ // there is no equivalent in @Action(...)
+
FacetUtil.addFacet(facet);
}
void processRestrictTo(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Action action = Annotations.getAnnotation(method, Action.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(PrototypeFacetForActionAnnotation.create(action, holder));
+ // check for deprecated @Prototype
+ final Prototype annotation = Annotations.getAnnotation(method, Prototype.class);
+ PrototypeFacet facet = prototypeValidator.addFacetFlagIfPresent(PrototypeFacetForPrototypeAnnotation.create(annotation, holder));
+
+ // else search for @Action(restrictTo=...)
+ final Action action = Annotations.getAnnotation(method, Action.class);
+ if(facet == null) {
+ facet = PrototypeFacetForActionAnnotation.create(action, holder);
+ }
+ FacetUtil.addFacet(facet);
}
void processSemantics(final ProcessMethodContext processMethodContext) {
@@ -467,6 +507,9 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
metaModelValidator.add(idempotentValidator);
metaModelValidator.add(publishedActionValidator);
metaModelValidator.add(typeOfValidator);
+ metaModelValidator.add(hiddenValidator);
+ metaModelValidator.add(disabledValidator);
+ metaModelValidator.add(prototypeValidator);
}
// ///////////////////////////////////////////////////////////////
@@ -489,6 +532,9 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
idempotentValidator.setConfiguration(configuration);
publishedActionValidator.setConfiguration(configuration);
typeOfValidator.setConfiguration(configuration);
+ hiddenValidator.setConfiguration(configuration);
+ disabledValidator.setConfiguration(configuration);
+ prototypeValidator.setConfiguration(configuration);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
new file mode 100644
index 0000000..49f5d8a
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForPrototypeAnnotation.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.action.prototype;
+
+import org.apache.isis.applib.annotation.Prototype;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
+
+public class PrototypeFacetForPrototypeAnnotation extends PrototypeFacetAbstract {
+
+ public PrototypeFacetForPrototypeAnnotation(final FacetHolder holder) {
+ super(holder);
+ }
+
+
+ public static PrototypeFacet create(final Prototype annotation, final FacetHolder holder) {
+ return annotation == null ? null : new PrototypeFacetForPrototypeAnnotation(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
index ee2322a..864eab5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/debug/annotation/DebugFacetAnnotationFactory.java
@@ -47,7 +47,7 @@ public class DebugFacetAnnotationFactory extends FacetFactoryAbstract implements
public void process(final ProcessMethodContext processMethodContext) {
final Debug annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Debug.class);
final DebugFacet facet = create(annotation, processMethodContext.getFacetHolder());
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
private DebugFacet create(final Debug annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
index cf391f7..4daf0e9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/annotation/ExplorationFacetAnnotationFactory.java
@@ -47,7 +47,7 @@ public class ExplorationFacetAnnotationFactory extends FacetFactoryAbstract impl
public void process(final ProcessMethodContext processMethodContext) {
final Exploration annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Exploration.class);
final ExplorationFacet facet = create(annotation, processMethodContext.getFacetHolder());
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
private ExplorationFacet create(final Exploration annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
index 02ca06c..cf588d1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/interaction/ActionNamedDebugExplorationFacetFactory.java
@@ -84,7 +84,7 @@ public class ActionNamedDebugExplorationFacetFactory extends MethodPrefixBasedFa
}
final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
final Facet facet = new DebugFacetViaNamingConvention(facetedMethod);
- debugValidator.addFacet(facet);
+ debugValidator.addFacetFlagIfPresent(facet);
}
private void attachExplorationFacetIfActionMethodNamePrefixed(final ProcessMethodContext processMethodContext) {
@@ -96,7 +96,7 @@ public class ActionNamedDebugExplorationFacetFactory extends MethodPrefixBasedFa
}
final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
final Facet facet = new ExplorationFacetViaNamingConvention(facetedMethod);
- explorationValidator.addFacet(facet);
+ explorationValidator.addFacetFlagIfPresent(facet);
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
index b7f3b1e..e320ade 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
@@ -42,7 +42,7 @@ public class NotContributedFacetAnnotationFactory extends FacetFactoryAbstract i
@Override
public void process(final ProcessMethodContext processMethodContext) {
final NotContributed annotation = Annotations.getAnnotation(processMethodContext.getMethod(), NotContributed.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processMethodContext.getFacetHolder()));
}
private NotContributedFacet create(final NotContributed annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
index b531248..343673d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/annotation/NotInServiceMenuFacetAnnotationFactory.java
@@ -42,7 +42,7 @@ public class NotInServiceMenuFacetAnnotationFactory extends FacetFactoryAbstract
@Override
public void process(final ProcessMethodContext processMethodContext) {
final NotInServiceMenu annotation = Annotations.getAnnotation(processMethodContext.getMethod(), NotInServiceMenu.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processMethodContext.getFacetHolder()));
}
private NotInServiceMenuFacet create(final NotInServiceMenu annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
index 25a3da9..fb7cb94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notinservicemenu/method/NotInServiceMenuFacetViaMethodFactory.java
@@ -58,7 +58,7 @@ public class NotInServiceMenuFacetViaMethodFactory extends MethodPrefixBasedFace
final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
final NotInServiceMenuFacetViaMethod facet = new NotInServiceMenuFacetViaMethod(notInServiceMenuMethod, facetedMethod);
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
deleted file mode 100644
index fc9f560..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.actions.prototype.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
-
-public class PrototypeFacetAnnotation extends PrototypeFacetAbstract {
-
- public PrototypeFacetAnnotation(final FacetHolder holder) {
- super(holder);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
deleted file mode 100644
index 4cc6a48..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/annotation/PrototypeFacetAnnotationFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.actions.prototype.annotation;
-
-import org.apache.isis.applib.annotation.Prototype;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class PrototypeFacetAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Prototype.class);
-
- public PrototypeFacetAnnotationFactory() {
- super(FeatureType.ACTIONS_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Prototype annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Prototype.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
- }
-
- private PrototypeFacet create(final Prototype annotation, final FacetHolder holder) {
- return annotation == null ? null : new PrototypeFacetAnnotation(holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
index 9cb1195..9e7375c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validating/maxlenannot/MaxLengthFacetOnActionAnnotationFactory.java
@@ -45,7 +45,7 @@ public class MaxLengthFacetOnActionAnnotationFactory extends FacetFactoryAbstrac
@Override
public void process(final ProcessMethodContext processMethodContext) {
final MaxLength annotation = Annotations.getAnnotation(processMethodContext.getMethod(), MaxLength.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processMethodContext.getFacetHolder()));
}
private MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index e4fcd65..debf7fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -25,6 +25,9 @@ import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.CollectionInteraction;
+import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.NotPersisted;
import org.apache.isis.applib.annotation.PostsCollectionAddedToEvent;
import org.apache.isis.applib.annotation.PostsCollectionRemovedFromEvent;
import org.apache.isis.applib.annotation.TypeOf;
@@ -42,6 +45,7 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromArray;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.collections.collection.disabled.DisabledFacetForCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromAbstract;
@@ -60,11 +64,17 @@ import org.apache.isis.core.metamodel.facets.collections.collection.modify.Colle
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromCollectionInteractionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromDefault;
import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForPostsCollectionRemovedFromEventAnnotation;
+import org.apache.isis.core.metamodel.facets.collections.collection.notpersisted.NotPersistedFacetForCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.typeof.TypeOfFacetOnCollectionFromCollectionAnnotation;
import org.apache.isis.core.metamodel.facets.collections.collection.typeof.TypeOfFacetOnCollectionFromTypeOfAnnotation;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
+import org.apache.isis.core.metamodel.facets.collections.collection.notpersisted.NotPersistedFacetForNotPersistedAnnotationOnCollection;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetAnnotation;
+import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberAnnotation;
import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
@@ -77,6 +87,9 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
private final MetaModelValidatorForDeprecatedAnnotation postsCollectionAddedToEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsCollectionAddedToEvent.class);
private final MetaModelValidatorForDeprecatedAnnotation postsCollectionRemovedFromEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsCollectionRemovedFromEvent.class);
private final MetaModelValidatorForDeprecatedAnnotation collectionInteractionValidator = new MetaModelValidatorForDeprecatedAnnotation(CollectionInteraction.class);
+ private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
+ private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
+ private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator = new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
@@ -90,13 +103,14 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
@Override
public void process(final ProcessMethodContext processMethodContext) {
- processModify(processMethodContext);
+ processDomainEvent(processMethodContext);
processHidden(processMethodContext);
processEditing(processMethodContext);
+ processNotPersisted(processMethodContext);
processTypeOf(processMethodContext);
}
- void processModify(final ProcessMethodContext processMethodContext) {
+ void processDomainEvent(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
final FacetHolder holder = processMethodContext.getFacetHolder();
@@ -226,22 +240,56 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
void processHidden(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Collection collection = Annotations.getAnnotation(method, Collection.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(
- HiddenFacetForCollectionAnnotation.create(collection, holder));
+ // check for deprecated @Hidden
+ final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
+ HiddenFacet facet = hiddenValidator.flagIfPresent(HiddenFacetOnMemberAnnotation.create(hiddenAnnotation, holder));
+
+ // else check for @Collection(hidden=...)
+ final Collection collection = Annotations.getAnnotation(method, Collection.class);
+ if(facet == null) {
+ facet = HiddenFacetForCollectionAnnotation.create(collection, holder);
+ }
+
+ FacetUtil.addFacet(facet);
}
void processEditing(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ // check for deprecated @Disabled
+ final Disabled annotation = Annotations.getAnnotation(method, Disabled.class);
+ DisabledFacet facet = disabledValidator.flagIfPresent(DisabledFacetAnnotation.create(annotation, holder));
+
+ // else check for @Collection(editing=...)
final Collection collection = Annotations.getAnnotation(method, Collection.class);
+ if(facet == null) {
+ facet = DisabledFacetForCollectionAnnotation.create(collection, holder);
+ }
+
+ FacetUtil.addFacet(facet);
+ }
+
+ void processNotPersisted(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(
- DisabledFacetForCollectionAnnotation.create(collection, holder));
+ // check for deprecated @NotPersisted first
+ final NotPersisted annotation = Annotations.getAnnotation(method, NotPersisted.class);
+ NotPersistedFacet facet = notPersistedValidator.addFacetFlagIfPresent(NotPersistedFacetForNotPersistedAnnotationOnCollection.create(annotation, holder));
+
+ // else search for @Collection(notPersisted=...)
+ final Collection collection = Annotations.getAnnotation(method, Collection.class);
+ if(facet == null) {
+ facet = NotPersistedFacetForCollectionAnnotation.create(collection, holder);
+ }
+
+ FacetUtil.addFacet(facet);
}
+
void processTypeOf(final ProcessMethodContext processMethodContext) {
final FacetedMethod facetHolder = processMethodContext.getFacetHolder();
@@ -259,13 +307,13 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
facet = typeOfValidator.flagIfPresent(
TypeOfFacetOnCollectionFromTypeOfAnnotation.create(annotation, facetHolder, getSpecificationLoader()));
- // check for @Collection(typeOf=...)
+ // else check for @Collection(typeOf=...)
+ final Collection collection = Annotations.getAnnotation(method, Collection.class);
if(facet == null) {
- final Collection collection = Annotations.getAnnotation(method, Collection.class);
facet = TypeOfFacetOnCollectionFromCollectionAnnotation.create(collection, facetHolder, getSpecificationLoader());
}
- // infer from return type
+ // else infer from return type
if(facet == null) {
final Class<?> returnType = method.getReturnType();
if (returnType.isArray()) {
@@ -274,12 +322,11 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
}
}
- // infer from generic return type
+ // else infer from generic return type
if(facet == null) {
facet = inferFromGenericReturnType(processMethodContext);
}
-
FacetUtil.addFacet(facet);
}
@@ -337,7 +384,10 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
metaModelValidator.add(postsCollectionAddedToEventValidator);
metaModelValidator.add(postsCollectionRemovedFromEventValidator);
metaModelValidator.add(collectionInteractionValidator);
+ metaModelValidator.add(notPersistedValidator);
metaModelValidator.add(typeOfValidator);
+ metaModelValidator.add(hiddenValidator);
+ metaModelValidator.add(disabledValidator);
}
// //////////////////////////////////////
@@ -349,6 +399,9 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
postsCollectionRemovedFromEventValidator.setConfiguration(configuration);
collectionInteractionValidator.setConfiguration(configuration);
typeOfValidator.setConfiguration(configuration);
+ notPersistedValidator.setConfiguration(configuration);
+ hiddenValidator.setConfiguration(configuration);
+ disabledValidator.setConfiguration(configuration);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
new file mode 100644
index 0000000..ce4e888
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForCollectionAnnotation.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.collections.collection.notpersisted;
+
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+
+public class NotPersistedFacetForCollectionAnnotation extends NotPersistedFacetAbstract {
+
+ public NotPersistedFacetForCollectionAnnotation(final FacetHolder holder) {
+ super(holder);
+ }
+
+ public static NotPersistedFacet create(
+ final Collection collection,
+ final FacetHolder holder) {
+
+ if (collection == null) {
+ return null;
+ }
+
+ final boolean notPersisted = collection.notPersisted();
+ final boolean persisted = !notPersisted;
+ if(persisted) {
+ return null;
+ }
+ return new NotPersistedFacetForCollectionAnnotation(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
new file mode 100644
index 0000000..f43ea7b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnCollection.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.collections.collection.notpersisted;
+
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+
+
+/**
+ * @deprecated
+ */
+@Deprecated
+public class NotPersistedFacetForNotPersistedAnnotationOnCollection extends NotPersistedFacetAbstract {
+
+ public NotPersistedFacetForNotPersistedAnnotationOnCollection(final FacetHolder holder) {
+ super(holder);
+ }
+
+ public static NotPersistedFacet create(final NotPersisted annotation, final FacetHolder holder) {
+ return annotation == null ? null : new NotPersistedFacetForNotPersistedAnnotationOnCollection(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
deleted file mode 100644
index fa7110c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.collections.notpersisted.annotation;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
-
-public class NotPersistedFacetOnCollectionAnnotation extends NotPersistedFacetAbstract {
-
- public NotPersistedFacetOnCollectionAnnotation(final FacetHolder holder) {
- super(holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
deleted file mode 100644
index 6ced282..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/notpersisted/annotation/NotPersistedFacetOnCollectionAnnotationFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.collections.notpersisted.annotation;
-
-import org.apache.isis.applib.annotation.NotPersisted;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class NotPersistedFacetOnCollectionAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
-
- public NotPersistedFacetOnCollectionAnnotationFactory() {
- super(FeatureType.COLLECTIONS_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final NotPersisted annotation = Annotations.getAnnotation(processMethodContext.getMethod(), NotPersisted.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
- }
-
- private NotPersistedFacet create(final NotPersisted annotation, final FacetHolder holder) {
- return annotation == null ? null : new NotPersistedFacetOnCollectionAnnotation(holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
index 4fef72c..7b6b62b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
@@ -54,7 +54,7 @@ public class SortedByFacetAnnotationFactory extends FacetFactoryAbstract impleme
@Override
public void process(final ProcessMethodContext processMethodContext) {
final SortedBy renderAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), SortedBy.class);
- validator.addFacet(create(renderAnnotation, processMethodContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(renderAnnotation, processMethodContext.getFacetHolder()));
}
private SortedByFacet create(final SortedBy annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
index 7aff8a6..f0e50ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/describedas/staticmethod/DescribedAsFacetStaticMethodFactory.java
@@ -79,7 +79,7 @@ public class DescribedAsFacetStaticMethodFactory extends MethodPrefixBasedFacetF
final String description = invokeDescriptionMethod(descriptionMethod);
final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
- validator.addFacet(new DescribedAsFacetStaticMethod(description, descriptionMethod, facetedMethod));
+ validator.addFacetFlagIfPresent(new DescribedAsFacetStaticMethod(description, descriptionMethod, facetedMethod));
}
private static String invokeDescriptionMethod(final Method descriptionMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
index 2ea6b6f..2b454fc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetAnnotation.java
@@ -19,9 +19,11 @@
package org.apache.isis.core.metamodel.facets.members.disabled.annotprop;
+import org.apache.isis.applib.annotation.Disabled;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstractImpl;
public class DisabledFacetAnnotation extends DisabledFacetAbstractImpl {
@@ -30,4 +32,9 @@ public class DisabledFacetAnnotation extends DisabledFacetAbstractImpl {
super(when, where, reason, holder);
}
+ public static DisabledFacet create(final Disabled annotation, final FacetHolder facetHolder) {
+ return annotation != null
+ ? new DisabledFacetAnnotation(annotation.when(), annotation.where(), annotation.reason(), facetHolder)
+ : null;
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
deleted file mode 100644
index b1ab3f2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetFactory.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.members.disabled.annotprop;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class DisabledFacetFactory extends FacetFactoryAbstract
- implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
-
- public DisabledFacetFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- DisabledFacet disabledFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
- if(disabledFacet == null) {
- disabledFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
- }
- // no-op if null
- FacetUtil.addFacet(disabledFacet);
- }
-
- @Override
- public void process(ProcessContributeeMemberContext processMemberContext) {
- DisabledFacet disabledFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
- // no-op if null
- FacetUtil.addFacet(disabledFacet);
- }
-
- private static DisabledFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- final Disabled annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Disabled.class);
- return annotation != null
- ? new DisabledFacetAnnotation(annotation.when(), annotation.where(), annotation.reason(), processMethodContext.getFacetHolder())
- : null;
- }
-
- private static DisabledFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("disabled");
- return properties != null ? new DisabledFacetFromProperties(properties, holder) : null;
- }
-
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
new file mode 100644
index 0000000..efc2cb9
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/annotprop/DisabledFacetOnMemberFromPropertiesFactory.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.members.disabled.annotprop;
+
+import java.util.Properties;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+
+public class DisabledFacetOnMemberFromPropertiesFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+
+ public DisabledFacetOnMemberFromPropertiesFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ FacetUtil.addFacet(createFromMetadataPropertiesIfPossible(processMethodContext));
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ DisabledFacet disabledFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+ FacetUtil.addFacet(disabledFacet);
+ }
+
+ private static DisabledFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("disabled");
+ return properties != null ? new DisabledFacetFromProperties(properties, holder) : null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
index c824929..b59fdb8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/staticmethod/DisabledFacetStaticMethodFacetFactory.java
@@ -81,7 +81,7 @@ public class DisabledFacetStaticMethodFacetFactory extends MethodPrefixBasedFace
}
final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
- validator.addFacet(new DisabledFacetForStaticMethod(facetedMethod));
+ validator.addFacetFlagIfPresent(new DisabledFacetForStaticMethod(facetedMethod));
}
private static Boolean invokeProtectMethod(final Method protectMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
index c51c59a..ad64990 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberAnnotation.java
@@ -19,15 +19,25 @@
package org.apache.isis.core.metamodel.facets.members.hidden.annotprop;
+import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
public class HiddenFacetOnMemberAnnotation extends HiddenFacetAbstractImpl {
- public HiddenFacetOnMemberAnnotation(final When when, Where where, final FacetHolder holder) {
+ public static HiddenFacet create(final Hidden hiddenAnnotation, final FacetHolder facetHolder) {
+ if (hiddenAnnotation == null) {
+ return null;
+ }
+ return new HiddenFacetOnMemberAnnotation(hiddenAnnotation.when(), hiddenAnnotation.where(), facetHolder);
+ }
+
+ private HiddenFacetOnMemberAnnotation(final When when, Where where, final FacetHolder holder) {
super(HiddenFacetOnMemberAnnotation.class, when, where, holder);
}
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
deleted file mode 100644
index 795fcc3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFactory.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.members.hidden.annotprop;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class HiddenFacetOnMemberFactory extends FacetFactoryAbstract
- implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
-
- public HiddenFacetOnMemberFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- HiddenFacet hiddenFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
- if(hiddenFacet == null) {
- hiddenFacet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
- }
- // no-op if null
- FacetUtil.addFacet(hiddenFacet);
- }
-
- @Override
- public void process(final ProcessContributeeMemberContext processMemberContext) {
- HiddenFacet hiddenFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
- // no-op if null
- FacetUtil.addFacet(hiddenFacet);
- }
-
- private static HiddenFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
- return hiddenAnnotation != null
- ? new HiddenFacetOnMemberAnnotation(hiddenAnnotation.when(), hiddenAnnotation.where(), processMethodContext.getFacetHolder())
- : null;
- }
-
- private static HiddenFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("hidden");
- return properties != null ? new HiddenFacetOnMemberFromProperties(properties, holder) : null;
- }
-
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
new file mode 100644
index 0000000..74c514e
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/annotprop/HiddenFacetOnMemberFromPropertiesFactory.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.members.hidden.annotprop;
+
+import java.util.Properties;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+
+public class HiddenFacetOnMemberFromPropertiesFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+
+ public HiddenFacetOnMemberFromPropertiesFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ FacetUtil.addFacet(createFromMetadataPropertiesIfPossible(processMethodContext));
+ }
+
+ @Override
+ public void process(final ProcessContributeeMemberContext processMemberContext) {
+ HiddenFacet hiddenFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+ // no-op if null
+ FacetUtil.addFacet(hiddenFacet);
+ }
+
+ private static HiddenFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("hidden");
+ return properties != null ? new HiddenFacetOnMemberFromProperties(properties, holder) : null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
index 3ee29c3..0450794 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/staticmethod/HiddenFacetStaticMethodFactory.java
@@ -80,7 +80,7 @@ public class HiddenFacetStaticMethodFactory extends MethodPrefixBasedFacetFactor
}
final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
- validator.addFacet(new HiddenFacetOnStaticMethod(facetedMethod));
+ validator.addFacetFlagIfPresent(new HiddenFacetOnStaticMethod(facetedMethod));
}
private static Boolean invokeAlwaysHideMethod(final Method alwaysHideMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
index 6d5a8de..e5a4fd3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java
@@ -82,7 +82,7 @@ public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactory
final String name = invokeNameMethod(nameMethod);
final FacetHolder facetHolder = processMethodContext.getFacetHolder();
- validator.addFacet(new NamedFacetStaticMethod(name, nameMethod, facetHolder));
+ validator.addFacetFlagIfPresent(new NamedFacetStaticMethod(name, nameMethod, facetHolder));
}
private static String invokeNameMethod(final Method nameMethod) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
index 3fe4642..8c266d1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java
@@ -42,7 +42,7 @@ public class ActionOrderFacetAnnotationFactory extends FacetFactoryAbstract impl
@Override
public void process(final ProcessClassContext processClassContext) {
final ActionOrder annotation = Annotations.getAnnotation(processClassContext.getCls(), ActionOrder.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContext.getFacetHolder()));
}
private ActionOrderFacet create(final ActionOrder annotation, final FacetHolder facetHolder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
index d075550..db131f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java
@@ -23,7 +23,6 @@ import org.apache.isis.applib.annotation.CssClass;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.core.metamodel.facets.Annotations;
@@ -43,7 +42,7 @@ public class CssClassFacetOnTypeAnnotationFactory extends FacetFactoryAbstract i
@Override
public void process(final ProcessClassContext processClassContext) {
final CssClass annotation = Annotations.getAnnotation(processClassContext.getCls(), CssClass.class);
- validator.addFacet(create(annotation, processClassContext.getFacetHolder()));
+ validator.addFacetFlagIfPresent(create(annotation, processClassContext.getFacetHolder()));
}
private static CssClassFacet create(final CssClass annotation, final FacetHolder holder) {
[3/5] isis git commit: ISIS-1027: moving the handling of deprecated
annotations to {Property|Collection|Action|Parameter}AnnotationFacetFactory.
Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java
deleted file mode 100644
index 545fb23..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.java
+++ /dev/null
@@ -1,52 +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.param.validating.mustsatisfyspec;
-
-import java.util.List;
-import com.google.common.collect.Lists;
-import org.apache.isis.applib.annotation.MustSatisfy;
-import org.apache.isis.applib.spec.Specification;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacetAbstract;
-
-public class MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter extends MustSatisfySpecificationFacetAbstract {
-
-
- public static Facet create(final MustSatisfy annotation, final FacetHolder holder) {
- if (annotation == null) {
- return null;
- }
- final Class<?>[] values = annotation.value();
- final List<Specification> specifications = Lists.newArrayList();
- for (final Class<?> value : values) {
- final Specification specification = newSpecificationElseNull(value);
- if (specification != null) {
- specifications.add(specification);
- }
- }
- return specifications.size() > 0 ? new MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter(specifications, holder) : null;
- }
-
- private MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter(final List<Specification> specifications, final FacetHolder holder) {
- super(specifications, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationOnParameterFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationOnParameterFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationOnParameterFacetFactory.java
deleted file mode 100644
index f0953d2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/mustsatisfyspec/MustSatisfySpecificationOnParameterFacetFactory.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.param.validating.mustsatisfyspec;
-
-import java.lang.annotation.Annotation;
-import org.apache.isis.applib.annotation.MustSatisfy;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-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.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MustSatisfySpecificationOnParameterFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
-
- public MustSatisfySpecificationOnParameterFacetFactory() {
- super(FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void processParams(final ProcessParameterContext processParameterContext) {
- final java.lang.annotation.Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-
- for (final Annotation parameterAnnotation : parameterAnnotations) {
- if (parameterAnnotation instanceof MustSatisfy) {
- final MustSatisfy annotation = (MustSatisfy) parameterAnnotation;
- validator.addFacet(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnParameter.create(annotation, processParameterContext.getFacetHolder()));
- return;
- }
- }
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/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
deleted file mode 100644
index 4dd4c22..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetFacetOnParameterAnnotationFactory.java
+++ /dev/null
@@ -1,105 +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.param.validating.regexannot;
-
-import java.lang.annotation.Annotation;
-import org.apache.isis.applib.annotation.RegEx;
-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.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
-import org.apache.isis.core.metamodel.facets.object.regex.TitleFacetFormattedByRegex;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class RegExFacetFacetOnParameterAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(RegEx.class);
-
- public RegExFacetFacetOnParameterAnnotationFactory() {
- super(FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void processParams(final ProcessParameterContext processParameterContext) {
- final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
- if (processParameterContext.getParamNum() >= parameterTypes.length) {
- // ignore
- return;
- }
- if (!Annotations.isString(parameterTypes[processParameterContext.getParamNum()])) {
- return;
- }
-
- final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
- for (final Annotation parameterAnnotation : parameterAnnotations) {
- if (parameterAnnotation instanceof RegEx) {
- final RegEx annotation = (RegEx) parameterAnnotation;
- addRegexFacetAndCorrespondingTitleFacet(processParameterContext.getFacetHolder(), annotation);
- return;
- }
- }
- }
-
- private void addRegexFacetAndCorrespondingTitleFacet(final FacetHolder holder, final RegEx annotation) {
- final RegExFacet regexFacet = validator.flagIfPresent(createRegexFacet(annotation, holder));
- if (regexFacet == null) {
- return;
- }
- FacetUtil.addFacet(regexFacet);
-
- final TitleFacet titleFacet = createTitleFacet(regexFacet);
- FacetUtil.addFacet(titleFacet);
- }
-
- private RegExFacet createRegexFacet(final RegEx annotation, final FacetHolder holder) {
- if (annotation == null) {
- return null;
- }
-
- final String validationExpression = annotation.validation();
- final boolean caseSensitive = annotation.caseSensitive();
- final String formatExpression = annotation.format();
-
- return new RegExFacetOnParameterAnnotation(validationExpression, formatExpression, caseSensitive, holder);
- }
-
- private TitleFacet createTitleFacet(final RegExFacet regexFacet) {
- return new TitleFacetFormattedByRegex(regexFacet);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetOnParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetOnParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetOnParameterAnnotation.java
deleted file mode 100644
index 726620e..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/regexannot/RegExFacetOnParameterAnnotation.java
+++ /dev/null
@@ -1,59 +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.param.validating.regexannot;
-
-import java.util.regex.Pattern;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
-
-public class RegExFacetOnParameterAnnotation extends RegExFacetAbstract {
-
- private final Pattern pattern;
-
- public RegExFacetOnParameterAnnotation(final String validation, final String format, final boolean caseSensitive, final FacetHolder holder) {
- super(validation, format, caseSensitive, holder);
- pattern = Pattern.compile(validation(), patternFlags());
- }
-
- @Override
- public String format(final String text) {
- if (text == null) {
- return "<not a string>";
- }
- if (format() == null || format().length() == 0) {
- return text;
- }
- return pattern.matcher(text).replaceAll(format());
- }
-
- @Override
- public boolean doesNotMatch(final String text) {
- if (text == null) {
- return true;
- }
- return !pattern.matcher(text).matches();
- }
-
- private int patternFlags() {
- return !caseSensitive() ? Pattern.CASE_INSENSITIVE : 0;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotation.java
deleted file mode 100644
index 554695d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotation.java
+++ /dev/null
@@ -1,43 +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.properties.mandatory.annotation.mandatory;
-
-import org.apache.isis.applib.annotation.Mandatory;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
-
-/**
- * Derived by presence of an <tt>@Mandatory</tt> annotation.
- *
- * <p>
- * This implementation indicates that the {@link FacetHolder} <i>is</i>
- * mandatory.
- */
-public class MandatoryFacetOnPropertyMandatoryAnnotation extends MandatoryFacetAbstract {
-
- public MandatoryFacetOnPropertyMandatoryAnnotation(final FacetHolder holder) {
- super(holder, Semantics.REQUIRED);
- }
-
- static MandatoryFacet create(final Mandatory annotation, final FacetHolder holder) {
- return new MandatoryFacetOnPropertyMandatoryAnnotation(holder);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotationFactory.java
deleted file mode 100644
index ed1e384..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/mandatory/MandatoryFacetOnPropertyMandatoryAnnotationFactory.java
+++ /dev/null
@@ -1,59 +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.properties.mandatory.annotation.mandatory;
-
-import org.apache.isis.applib.annotation.Mandatory;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-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.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MandatoryFacetOnPropertyMandatoryAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Mandatory.class);
-
- public MandatoryFacetOnPropertyMandatoryAnnotationFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Mandatory annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Mandatory.class);
- if(annotation == null) {
- return;
- }
- validator.addFacet(MandatoryFacetOnPropertyMandatoryAnnotation.create(annotation, processMethodContext.getFacetHolder()));
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotation.java
deleted file mode 100644
index 59294e6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotation.java
+++ /dev/null
@@ -1,48 +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.properties.mandatory.annotation.optional;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
-import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
-
-/**
- * Derived by presence of an <tt>@Optional</tt> annotation.
- *
- * <p>
- * This implementation indicates that the {@link FacetHolder} is <i>not</i>
- * mandatory, as per {@link #isInvertedSemantics()}.
- */
-public class MandatoryFacetOnPropertyInvertedByOptionalAnnotation extends MandatoryFacetAbstract {
-
- public MandatoryFacetOnPropertyInvertedByOptionalAnnotation(final FacetHolder holder) {
- super(holder, Semantics.OPTIONAL);
- }
-
- static MandatoryFacet create(final Optional annotation, Method method, final FacetHolder holder) {
- final Class<?> returnType = method.getReturnType();
- if (returnType.isPrimitive()) {
- return null;
- }
- return new MandatoryFacetOnPropertyInvertedByOptionalAnnotation(holder);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory.java
deleted file mode 100644
index b17590a..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/annotation/optional/MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory.java
+++ /dev/null
@@ -1,66 +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.properties.mandatory.annotation.optional;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-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;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Optional.class);
-
-
- public MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Optional annotation = Annotations.getAnnotation(method, Optional.class);
- if(annotation == null) {
- return;
- }
- final FacetedMethod facetHolder = processMethodContext.getFacetHolder();
-
- validator.addFacet(
- MandatoryFacetOnPropertyInvertedByOptionalAnnotation.create(annotation, method, facetHolder));
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/staticmethod/MandatoryFacetOnPropertyStaticMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/staticmethod/MandatoryFacetOnPropertyStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/staticmethod/MandatoryFacetOnPropertyStaticMethodFactory.java
index 34c9c1d..3fb2289 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/staticmethod/MandatoryFacetOnPropertyStaticMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/mandatory/staticmethod/MandatoryFacetOnPropertyStaticMethodFactory.java
@@ -68,7 +68,7 @@ public class MandatoryFacetOnPropertyStaticMethodFactory extends MethodPrefixBas
throw new MetaModelException(cls.getName() + "#" + capitalizedName + " cannot be an optional property as it is of a primitive type");
}
final FacetHolder property = processMethodContext.getFacetHolder();
- validator.addFacet(new MandatoryFacetOnPropertyStaticMethod(property));
+ validator.addFacetFlagIfPresent(new MandatoryFacetOnPropertyStaticMethod(property));
}
private static boolean indicatesOptional(final Method method) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/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 4f5c756..0bc2929 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
@@ -37,7 +37,7 @@ import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorFor
public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware {
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MultiLine.class);
+ private final MetaModelValidatorForDeprecatedAnnotation multiLineValidator = new MetaModelValidatorForDeprecatedAnnotation(MultiLine.class);
public MultiLineFacetOnPropertyFactory() {
super(FeatureType.PROPERTIES_ONLY);
@@ -47,17 +47,17 @@ public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implem
public void process(final ProcessMethodContext processMethodContext) {
MultiLineFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
if(facet == null) {
- facet = validator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
+ facet = multiLineValidator.flagIfPresent(createFromAnnotationIfPossible(processMethodContext));
}
// no-op if null
FacetUtil.addFacet(facet);
// no-op if null
- inferPropParamLayoutFacet(facet);
+ inferLabelAtFacet(facet);
}
- private static void inferPropParamLayoutFacet(MultiLineFacet facet) {
+ private static void inferLabelAtFacet(MultiLineFacet facet) {
if (facet == null) {
return;
}
@@ -71,9 +71,9 @@ public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implem
private static MultiLineFacet createFromMetadataPropertiesIfPossible(
final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
-
+
final FacetHolder holder = pcwmp.getFacetHolder();
-
+
final Properties properties = pcwmp.metadataProperties("multiLine");
return properties != null ? new MultiLineFacetOnPropertyFromProperties(properties, holder) : null;
}
@@ -89,12 +89,12 @@ public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implem
@Override
public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
+ metaModelValidator.add(multiLineValidator);
}
@Override
public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
+ multiLineValidator.setConfiguration(configuration);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotation.java
deleted file mode 100644
index 65085fd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotation.java
+++ /dev/null
@@ -1,36 +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.properties.notpersisted.annotation;
-
-import org.apache.isis.applib.annotation.NotPersisted;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
-
-public class NotPersistedFacetOnPropertyAnnotation extends NotPersistedFacetAbstract {
-
- public NotPersistedFacetOnPropertyAnnotation(final FacetHolder holder) {
- super(holder);
- }
-
- static NotPersistedFacet create(final NotPersisted annotation, final FacetHolder holder) {
- return annotation == null ? null : new NotPersistedFacetOnPropertyAnnotation(holder);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotationFactory.java
deleted file mode 100644
index b685d54..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/notpersisted/annotation/NotPersistedFacetOnPropertyAnnotationFactory.java
+++ /dev/null
@@ -1,58 +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.properties.notpersisted.annotation;
-
-import org.apache.isis.applib.annotation.NotPersisted;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class NotPersistedFacetOnPropertyAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
-
- public NotPersistedFacetOnPropertyAnnotationFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final NotPersisted annotation = Annotations.getAnnotation(processMethodContext.getMethod(), NotPersisted.class);
- final NotPersistedFacet notPersistedFacet = NotPersistedFacetOnPropertyAnnotation.create(annotation, processMethodContext.getFacetHolder());
- validator.addFacet(notPersistedFacet);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/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 68962d4..172fb9d 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
@@ -20,9 +20,17 @@
package org.apache.isis.core.metamodel.facets.properties.property;
import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Mandatory;
+import org.apache.isis.applib.annotation.MaxLength;
+import org.apache.isis.applib.annotation.MustSatisfy;
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.applib.annotation.Optional;
import org.apache.isis.applib.annotation.PostsPropertyChangedEvent;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyInteraction;
+import org.apache.isis.applib.annotation.RegEx;
import org.apache.isis.applib.services.eventbus.PropertyChangedEvent;
import org.apache.isis.applib.services.eventbus.PropertyDomainEvent;
import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -38,9 +46,15 @@ import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetAnnotation;
+import org.apache.isis.core.metamodel.facets.members.hidden.annotprop.HiddenFacetOnMemberAnnotation;
import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.object.regex.TitleFacetFormattedByRegex;
import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForMandatoryAnnotationOnProperty;
+import org.apache.isis.core.metamodel.facets.properties.property.notpersisted.NotPersistedFacetForNotPersistedAnnotationOnProperty;
+import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetInvertedByOptionalAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotation;
import org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation;
import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForPropertyAnnotation;
@@ -61,11 +75,14 @@ import org.apache.isis.core.metamodel.facets.properties.property.modify.Property
import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForDomainEventFromPropertyAnnotation;
import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForDomainEventFromPropertyInteractionAnnotation;
import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForPostsPropertyChangedEventAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.property.mustsatisfy.MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.properties.property.mustsatisfy.MustSatisfySpecificationFacetForPropertyAnnotation;
import org.apache.isis.core.metamodel.facets.properties.property.notpersisted.NotPersistedFacetForPropertyAnnotation;
import org.apache.isis.core.metamodel.facets.properties.property.regex.RegExFacetForPropertyAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.property.regex.RegExFacetFromRegExAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
+import org.apache.isis.core.metamodel.facets.properties.property.maxlength.MaxLengthFacetForMaxLengthAnnotationOnProperty;
import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -78,6 +95,14 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
private final MetaModelValidatorForDeprecatedAnnotation postsPropertyChangedEventValidator = new MetaModelValidatorForDeprecatedAnnotation(PostsPropertyChangedEvent.class);
private final MetaModelValidatorForDeprecatedAnnotation propertyInteractionValidator = new MetaModelValidatorForDeprecatedAnnotation(PropertyInteraction.class);
+ private final MetaModelValidatorForDeprecatedAnnotation regexValidator = new MetaModelValidatorForDeprecatedAnnotation(RegEx.class);
+ private final MetaModelValidatorForDeprecatedAnnotation optionalValidator = new MetaModelValidatorForDeprecatedAnnotation(Optional.class);
+ private final MetaModelValidatorForDeprecatedAnnotation mandatoryValidator = new MetaModelValidatorForDeprecatedAnnotation(Mandatory.class);
+ private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
+ private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
+ private final MetaModelValidatorForDeprecatedAnnotation maxLengthValidator = new MetaModelValidatorForDeprecatedAnnotation(MaxLength.class);
+ private final MetaModelValidatorForDeprecatedAnnotation mustSatisfyValidator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
+ private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
private ServicesInjector servicesInjector;
@@ -88,7 +113,7 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
@Override
public void process(final ProcessMethodContext processMethodContext) {
- processModify(processMethodContext);
+ processDomainEvent(processMethodContext);
processHidden(processMethodContext);
processEditing(processMethodContext);
processMaxLength(processMethodContext);
@@ -98,10 +123,9 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
processRegEx(processMethodContext);
}
- void processModify(final ProcessMethodContext processMethodContext) {
+ void processDomainEvent(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Class<?> declaringClass = method.getDeclaringClass();
final FacetedMethod holder = processMethodContext.getFacetHolder();
final PropertyOrCollectionAccessorFacet getterFacet = holder.getFacet(PropertyOrCollectionAccessorFacet.class);
@@ -215,79 +239,137 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
void processHidden(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- final HiddenFacet facet = HiddenFacetForPropertyAnnotation.create(property, holder);
+ // check for deprecated @Hidden first
+ final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
+ HiddenFacet facet = hiddenValidator.flagIfPresent(HiddenFacetOnMemberAnnotation.create(hiddenAnnotation, holder));
+
+ // else search for @Property(hidden=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if(facet == null) {
+ facet = HiddenFacetForPropertyAnnotation.create(property, holder);
+ }
FacetUtil.addFacet(facet);
}
void processEditing(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- final DisabledFacet facet = DisabledFacetForPropertyAnnotation.create(property, holder);
+ // check for deprecated @Disabled first
+ final Disabled annotation = Annotations.getAnnotation(method, Disabled.class);
+ DisabledFacet facet = disabledValidator.flagIfPresent(DisabledFacetAnnotation.create(annotation, holder));
+
+ // else search for @Property(editing=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if(facet == null) {
+ facet = DisabledFacetForPropertyAnnotation.create(property, holder);
+ }
FacetUtil.addFacet(facet);
}
void processMaxLength(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- final MaxLengthFacet facet = MaxLengthFacetForPropertyAnnotation.create(property, holder);
+ // check for deprecated @MaxLength first
+ final MaxLength annotation = Annotations.getAnnotation(method, MaxLength.class);
+ MaxLengthFacet facet = maxLengthValidator.addFacetFlagIfPresent(MaxLengthFacetForMaxLengthAnnotationOnProperty.create(annotation, holder));
+
+ // else search for @Property(maxLength=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if(facet == null) {
+ facet = MaxLengthFacetForPropertyAnnotation.create(property, holder);
+ }
FacetUtil.addFacet(facet);
}
void processMustSatisfy(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- final Facet facet = MustSatisfySpecificationFacetForPropertyAnnotation.create(property, holder);
+ // check for deprecated @MustSatisfy first
+ final MustSatisfy annotation = Annotations.getAnnotation(method, MustSatisfy.class);
+ Facet facet = mustSatisfyValidator.addFacetFlagIfPresent(MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.create(annotation, holder));
+
+ // else search for @Property(mustSatisfy=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if(facet == null) {
+ facet = MustSatisfySpecificationFacetForPropertyAnnotation.create(property, holder);
+ }
FacetUtil.addFacet(facet);
}
void processNotPersisted(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- final NotPersistedFacet facet = NotPersistedFacetForPropertyAnnotation.create(property, holder);
+ // check for deprecated @NotPersisted first
+ final NotPersisted annotation = Annotations.getAnnotation(method, NotPersisted.class);
+ NotPersistedFacet facet = notPersistedValidator.addFacetFlagIfPresent(NotPersistedFacetForNotPersistedAnnotationOnProperty.create(annotation, holder));
+
+ // else search for @Property(notPersisted=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if(facet == null) {
+ facet = NotPersistedFacetForPropertyAnnotation.create(property, holder);
+ }
FacetUtil.addFacet(facet);
}
void processOptional(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
- final MandatoryFacet facet = MandatoryFacetForPropertyAnnotation.create(property, method, holder);
+ // check for deprecated @Optional first
+ final Optional annotation = Annotations.getAnnotation(method, Optional.class);
+ MandatoryFacet facet = optionalValidator.flagIfPresent(MandatoryFacetInvertedByOptionalAnnotationOnProperty.create(annotation, method, holder));
+
+ // else check for deprecated @Mandatory first
+ Mandatory mandatoryAnnotation = Annotations.getAnnotation(method, Mandatory.class);
+ if(facet == null) {
+ facet = mandatoryValidator.flagIfPresent(MandatoryFacetForMandatoryAnnotationOnProperty.create(mandatoryAnnotation, holder));
+ }
+
+ // else search for @Property(optional=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if(facet == null) {
+ facet = MandatoryFacetForPropertyAnnotation.create(property, method, holder);
+ }
FacetUtil.addFacet(facet);
}
void processRegEx(final ProcessMethodContext processMethodContext) {
final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
final FacetHolder holder = processMethodContext.getFacetHolder();
final Class<?> returnType = processMethodContext.getMethod().getReturnType();
- if (!Annotations.isString(returnType)) {
- return;
+
+ // check for deprecated @RegEx first
+ final RegEx annotation = Annotations.getAnnotation(processMethodContext.getMethod(), RegEx.class);
+ RegExFacet facet = regexValidator.flagIfPresent(RegExFacetFromRegExAnnotationOnProperty.create(annotation, returnType, holder));
+
+ if (facet != null) {
+ // @RegEx also supports corresponding title facet
+ FacetUtil.addFacet(new TitleFacetFormattedByRegex(facet));
}
- final RegExFacet facet = RegExFacetForPropertyAnnotation.create(property, holder);
+ // else search for @Property(pattern=...)
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if (facet == null) {
+ facet = RegExFacetForPropertyAnnotation.create(property, returnType, holder);
+ }
FacetUtil.addFacet(facet);
}
+ // //////////////////////////////////////
@Override
public void process(final ContributeeMemberFacetFactory.ProcessContributeeMemberContext processMemberContext) {
@@ -317,6 +399,14 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
metaModelValidator.add(postsPropertyChangedEventValidator);
metaModelValidator.add(propertyInteractionValidator);
+ metaModelValidator.add(regexValidator);
+ metaModelValidator.add(optionalValidator);
+ metaModelValidator.add(mandatoryValidator);
+ metaModelValidator.add(hiddenValidator);
+ metaModelValidator.add(disabledValidator);
+ metaModelValidator.add(maxLengthValidator);
+ metaModelValidator.add(mustSatisfyValidator);
+ metaModelValidator.add(notPersistedValidator);
}
// //////////////////////////////////////
@@ -326,6 +416,14 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
public void setConfiguration(final IsisConfiguration configuration) {
postsPropertyChangedEventValidator.setConfiguration(configuration);
propertyInteractionValidator.setConfiguration(configuration);
+ regexValidator.setConfiguration(configuration);
+ optionalValidator.setConfiguration(configuration);
+ mandatoryValidator.setConfiguration(configuration);
+ hiddenValidator.setConfiguration(configuration);
+ disabledValidator.setConfiguration(configuration);
+ maxLengthValidator.setConfiguration(configuration);
+ mustSatisfyValidator.setConfiguration(configuration);
+ notPersistedValidator.setConfiguration(configuration);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetForMandatoryAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetForMandatoryAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetForMandatoryAnnotationOnProperty.java
new file mode 100644
index 0000000..8413be0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetForMandatoryAnnotationOnProperty.java
@@ -0,0 +1,48 @@
+/*
+ * 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.properties.property.mandatory;
+
+import org.apache.isis.applib.annotation.Mandatory;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
+
+/**
+ * Derived by presence of an <tt>@Mandatory</tt> annotation.
+ *
+ * <p>
+ * This implementation indicates that the {@link FacetHolder} <i>is</i>
+ * mandatory.
+ */
+public class MandatoryFacetForMandatoryAnnotationOnProperty extends MandatoryFacetAbstract {
+
+ public static MandatoryFacet create(final Mandatory annotation, final FacetHolder holder) {
+ if(annotation == null) {
+ return null;
+ }
+ return new MandatoryFacetForMandatoryAnnotationOnProperty(holder);
+ }
+
+ private MandatoryFacetForMandatoryAnnotationOnProperty(final FacetHolder holder) {
+ super(holder, Semantics.REQUIRED);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnProperty.java
new file mode 100644
index 0000000..20e5c69
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mandatory/MandatoryFacetInvertedByOptionalAnnotationOnProperty.java
@@ -0,0 +1,48 @@
+/*
+ * 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.properties.property.mandatory;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.propparam.mandatory.MandatoryFacetAbstract;
+
+/**
+ * Derived by presence of an <tt>@Optional</tt> annotation.
+ *
+ * <p>
+ * This implementation indicates that the {@link FacetHolder} is <i>not</i>
+ * mandatory, as per {@link #isInvertedSemantics()}.
+ */
+public class MandatoryFacetInvertedByOptionalAnnotationOnProperty extends MandatoryFacetAbstract {
+
+ public MandatoryFacetInvertedByOptionalAnnotationOnProperty(final FacetHolder holder) {
+ super(holder, Semantics.OPTIONAL);
+ }
+
+ public static MandatoryFacet create(final Optional annotation, Method method, final FacetHolder holder) {
+ final Class<?> returnType = method.getReturnType();
+ if (returnType.isPrimitive()) {
+ return null;
+ }
+ return new MandatoryFacetInvertedByOptionalAnnotationOnProperty(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/maxlength/MaxLengthFacetForMaxLengthAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/maxlength/MaxLengthFacetForMaxLengthAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/maxlength/MaxLengthFacetForMaxLengthAnnotationOnProperty.java
new file mode 100644
index 0000000..5ea21c0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/maxlength/MaxLengthFacetForMaxLengthAnnotationOnProperty.java
@@ -0,0 +1,36 @@
+/*
+ * 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.properties.property.maxlength;
+
+import org.apache.isis.applib.annotation.MaxLength;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
+import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacetAbstract;
+
+public class MaxLengthFacetForMaxLengthAnnotationOnProperty extends MaxLengthFacetAbstract {
+
+ public MaxLengthFacetForMaxLengthAnnotationOnProperty(final int value, final FacetHolder holder) {
+ super(value, holder);
+ }
+
+ public static MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) {
+ return annotation == null ? null : new MaxLengthFacetForMaxLengthAnnotationOnProperty(annotation.value(), holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java
new file mode 100644
index 0000000..4329016
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/mustsatisfy/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java
@@ -0,0 +1,52 @@
+/*
+ * 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.properties.property.mustsatisfy;
+
+import java.util.List;
+import com.google.common.collect.Lists;
+import org.apache.isis.applib.annotation.MustSatisfy;
+import org.apache.isis.applib.spec.Specification;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacetAbstract;
+
+public class MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty extends MustSatisfySpecificationFacetAbstract {
+
+ public static Facet create(final MustSatisfy annotation, final FacetHolder holder) {
+ if (annotation == null) {
+ return null;
+ }
+ final Class<?>[] values = annotation.value();
+ final List<Specification> specifications = Lists.newArrayList();
+ for (final Class<?> value : values) {
+ final Specification specification = newSpecificationElseNull(value);
+ if (specification != null) {
+ specifications.add(specification);
+ }
+ }
+ return specifications.size() > 0 ? new MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty(specifications, holder) : null;
+ }
+
+
+ private MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty(final List<Specification> specifications, final FacetHolder holder) {
+ super(specifications, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnProperty.java
new file mode 100644
index 0000000..55fe4aa
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/notpersisted/NotPersistedFacetForNotPersistedAnnotationOnProperty.java
@@ -0,0 +1,36 @@
+/*
+ * 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.properties.property.notpersisted;
+
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+
+public class NotPersistedFacetForNotPersistedAnnotationOnProperty extends NotPersistedFacetAbstract {
+
+ public NotPersistedFacetForNotPersistedAnnotationOnProperty(final FacetHolder holder) {
+ super(holder);
+ }
+
+ public static NotPersistedFacet create(final NotPersisted annotation, final FacetHolder holder) {
+ return annotation == null ? null : new NotPersistedFacetForNotPersistedAnnotationOnProperty(holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
index 047ed76..ee784eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
@@ -23,6 +23,7 @@ import java.util.regex.Pattern;
import com.google.common.base.Strings;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
@@ -31,18 +32,23 @@ public class RegExFacetForPropertyAnnotation extends RegExFacetAbstract {
private final Pattern pattern;
public static RegExFacet create(
- final Property property,
+ final Property annotation,
+ final Class<?> returnType,
final FacetHolder holder) {
- if (property == null) {
+ if (annotation == null) {
return null;
}
- final String pattern = property.regexPattern();
+ if (!Annotations.isString(returnType)) {
+ return null;
+ }
+
+ final String pattern = annotation.regexPattern();
if(Strings.isNullOrEmpty(pattern)) {
return null;
}
- final int patternFlags = property.regexPatternFlags();
+ final int patternFlags = annotation.regexPatternFlags();
return new RegExFacetForPropertyAnnotation(pattern, patternFlags, holder);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetFromRegExAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetFromRegExAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetFromRegExAnnotationOnProperty.java
new file mode 100644
index 0000000..97c256c
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetFromRegExAnnotationOnProperty.java
@@ -0,0 +1,74 @@
+/*
+ * 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.properties.property.regex;
+
+import java.util.regex.Pattern;
+import org.apache.isis.applib.annotation.RegEx;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacet;
+import org.apache.isis.core.metamodel.facets.object.regex.RegExFacetAbstract;
+
+public class RegExFacetFromRegExAnnotationOnProperty extends RegExFacetAbstract {
+
+ private final Pattern pattern;
+
+ public static RegExFacet create(final RegEx annotation, final Class<?> returnType, final FacetHolder holder) {
+
+ if (!Annotations.isString(returnType)) {
+ return null;
+ }
+
+ final String validationExpression = annotation.validation();
+ final boolean caseSensitive = annotation.caseSensitive();
+ final String formatExpression = annotation.format();
+
+ return new RegExFacetFromRegExAnnotationOnProperty(validationExpression, formatExpression, caseSensitive, holder);
+ }
+
+ private RegExFacetFromRegExAnnotationOnProperty(final String validation, final String format, final boolean caseSensitive, final FacetHolder holder) {
+ super(validation, format, caseSensitive, holder);
+ pattern = Pattern.compile(validation(), patternFlags());
+ }
+
+ @Override
+ public String format(final String text) {
+ if (text == null) {
+ return "<not a string>";
+ }
+ if (format() == null || format().length() == 0) {
+ return text;
+ }
+ return pattern.matcher(text).replaceAll(format());
+ }
+
+ @Override
+ public boolean doesNotMatch(final String text) {
+ if (text == null) {
+ return true;
+ }
+ return !pattern.matcher(text).matches();
+ }
+
+ private int patternFlags() {
+ return !caseSensitive() ? Pattern.CASE_INSENSITIVE : 0;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeAnnotationOnPropertyFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeAnnotationOnPropertyFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeAnnotationOnPropertyFacetFactory.java
index 7aa0e41..326daa3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeAnnotationOnPropertyFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/renderedasdaybefore/annotation/RenderedAsDayBeforeAnnotationOnPropertyFacetFactory.java
@@ -45,7 +45,7 @@ public class RenderedAsDayBeforeAnnotationOnPropertyFacetFactory extends FacetFa
final RenderedAsDayBefore annotation = Annotations.getAnnotation(processMethodContext.getMethod(), RenderedAsDayBefore.class);
final RenderedAdjustedFacet facet = create(annotation, processMethodContext.getFacetHolder());
- validator.addFacet(facet);
+ validator.addFacetFlagIfPresent(facet);
}
private RenderedAdjustedFacet create(final RenderedAsDayBefore annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotation.java
deleted file mode 100644
index 186759c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotation.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.properties.validating.maxlenannot;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacetAbstract;
-
-public class MaxLengthFacetOnPropertyAnnotation extends MaxLengthFacetAbstract {
-
- public MaxLengthFacetOnPropertyAnnotation(final int value, final FacetHolder holder) {
- super(value, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotationFactory.java
deleted file mode 100644
index 7bf541c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maxlenannot/MaxLengthFacetOnPropertyAnnotationFactory.java
+++ /dev/null
@@ -1,63 +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.properties.validating.maxlenannot;
-
-import org.apache.isis.applib.annotation.MaxLength;
-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.propparam.maxlen.MaxLengthFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-public class MaxLengthFacetOnPropertyAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware {
-
- private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MaxLength.class);
-
-
- public MaxLengthFacetOnPropertyAnnotationFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final MaxLength annotation = Annotations.getAnnotation(processMethodContext.getMethod(), MaxLength.class);
- validator.addFacet(create(annotation, processMethodContext.getFacetHolder()));
- }
-
- private MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) {
- return annotation == null ? null : new MaxLengthFacetOnPropertyAnnotation(annotation.value(), holder);
- }
-
- @Override
- public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
- metaModelValidator.add(validator);
- }
-
- @Override
- public void setConfiguration(final IsisConfiguration configuration) {
- validator.setConfiguration(configuration);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/31816a69/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java
deleted file mode 100644
index d559a4e..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/mustsatisfyspec/MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty.java
+++ /dev/null
@@ -1,52 +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.properties.validating.mustsatisfyspec;
-
-import java.util.List;
-import com.google.common.collect.Lists;
-import org.apache.isis.applib.annotation.MustSatisfy;
-import org.apache.isis.applib.spec.Specification;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.mustsatisfyspec.MustSatisfySpecificationFacetAbstract;
-
-public class MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty extends MustSatisfySpecificationFacetAbstract {
-
- static Facet create(final MustSatisfy annotation, final FacetHolder holder) {
- if (annotation == null) {
- return null;
- }
- final Class<?>[] values = annotation.value();
- final List<Specification> specifications = Lists.newArrayList();
- for (final Class<?> value : values) {
- final Specification specification = newSpecificationElseNull(value);
- if (specification != null) {
- specifications.add(specification);
- }
- }
- return specifications.size() > 0 ? new MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty(specifications, holder) : null;
- }
-
-
- private MustSatisfySpecificationFacetForMustSatisfyAnnotationOnProperty(final List<Specification> specifications, final FacetHolder holder) {
- super(specifications, holder);
- }
-
-}