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 2019/12/03 12:28:45 UTC
[isis] 04/07: ISIS-2196: removes facet factories that look for
static methods
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit f2feee1f8ccf084fd76bc188504702e585c67e81
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 10:35:22 2019 +0000
ISIS-2196: removes facet factories that look for static methods
namely:
- RemoveStaticGettersAndSettersFacetFactory
- DisableForSessionFacetViaMethodFactory
- HideForSessionFacetViaMethodFactory
---
.../forsession/DisableForSessionFacet.java | 40 --------
.../forsession/DisableForSessionFacetAbstract.java | 44 ---------
.../forsession/DisableForSessionFacetNone.java | 42 ---------
.../DisableForSessionFacetViaMethod.java | 83 -----------------
.../DisableForSessionFacetViaMethodFactory.java | 82 -----------------
.../hidden/forsession/HideForSessionFacet.java | 37 --------
.../forsession/HideForSessionFacetAbstract.java | 50 ----------
.../hidden/forsession/HideForSessionFacetNone.java | 45 ---------
.../forsession/HideForSessionFacetViaMethod.java | 84 -----------------
.../HideForSessionFacetViaMethodFactory.java | 79 ----------------
.../RemoveStaticGettersAndSettersFacetFactory.java | 43 ---------
.../dflt/ProgrammingModelFacetsJava8.java | 14 +--
.../actions/ActionMethodsFacetFactoryTest.java | 95 +------------------
.../CollectionFieldMethodsFacetFactoryTest.java | 86 +----------------
.../PropertyMethodsFacetFactoryTest.java | 102 +--------------------
.../isis/runtime/system/MethodFinderUtilsTest.java | 39 +-------
16 files changed, 12 insertions(+), 953 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java
deleted file mode 100644
index 17db8aa..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java
+++ /dev/null
@@ -1,40 +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.metamodel.facets.members.disabled.forsession;
-
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.interactions.DisablingInteractionAdvisor;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-/**
- * Disable a property, collection or action based on the current session.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>disableXxx(UserMemento)</tt> support method for the member.
- */
-public interface DisableForSessionFacet extends Facet, DisablingInteractionAdvisor {
-
- /**
- * The reason this is disabled, or <tt>null</tt> if not.
- */
- public String disabledReason(AuthenticationSession session);
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java
deleted file mode 100644
index 2c64367..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java
+++ /dev/null
@@ -1,44 +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.metamodel.facets.members.disabled.forsession;
-
-import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.interactions.UsabilityContext;
-
-public abstract class DisableForSessionFacetAbstract extends FacetAbstract implements DisableForSessionFacet {
-
- public static Class<? extends Facet> type() {
- return DisableForSessionFacet.class;
- }
-
- public DisableForSessionFacetAbstract(
- final FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
- }
-
- @Override
- public String disables(final UsabilityContext<? extends UsabilityEvent> ic) {
- return disabledReason(getAuthenticationSession());
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java
deleted file mode 100644
index 81be8e0..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java
+++ /dev/null
@@ -1,42 +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.metamodel.facets.members.disabled.forsession;
-
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class DisableForSessionFacetNone extends DisableForSessionFacetAbstract {
-
- public DisableForSessionFacetNone(
- final FacetHolder holder) {
- super(holder);
- }
-
- @Override
- public String disabledReason(final AuthenticationSession session) {
- return null;
- }
-
- @Override
- public boolean isFallback() {
- return true;
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java
deleted file mode 100644
index 9457c9c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java
+++ /dev/null
@@ -1,83 +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.metamodel.facets.members.disabled.forsession;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.metamodel.commons.MethodExtensions;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facets.ImperativeFacet;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class DisableForSessionFacetViaMethod extends DisableForSessionFacetAbstract implements ImperativeFacet {
-
- private final Method method;
-
- public DisableForSessionFacetViaMethod(
- final Method method,
- final FacetHolder holder) {
- super(holder);
- this.method = method;
- }
-
- /**
- * Returns a singleton list of the {@link Method} provided in the
- * constructor.
- */
- @Override
- public List<Method> getMethods() {
- return Collections.singletonList(method);
- }
-
- @Override
- public Intent getIntent(final Method method) {
- return Intent.CHECK_IF_DISABLED;
- }
-
- /**
- * Will only check provided that a {@link AuthenticationSession} has been
- * provided.
- */
- @Override
- public String disabledReason(final AuthenticationSession session) {
- if (session == null) {
- return null;
- }
- final int len = method.getParameterCount();
- final Object[] parameters = new Object[len];
- parameters[0] = session.createUserMemento();
- // TODO: need to change to pick up as non-static rather than static
- return (String) MethodExtensions.invokeStatic(method, parameters);
- }
-
- @Override
- protected String toStringValues() {
- return "method=" + method;
- }
-
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
- super.appendAttributesTo(attributeMap);
- ImperativeFacet.Util.appendAttributesTo(this, attributeMap);
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.java
deleted file mode 100644
index 78a04cd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.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.metamodel.facets.members.disabled.forsession;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.security.UserMemento;
-import org.apache.isis.metamodel.commons.StringExtensions;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-import org.apache.isis.security.authentication.AuthenticationSessionProvider;
-
-public class DisableForSessionFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
- private static final String[] PREFIXES = { MethodLiteralConstants.DISABLE_PREFIX };
-
-
- /**
- * Note that the {@link Facet}s registered are the generic ones from
- * noa-architecture (where they exist)
- */
- public DisableForSessionFacetViaMethodFactory() {
- super(FeatureType.MEMBERS, OrphanValidation.VALIDATE, PREFIXES);
- }
-
- // ///////////////////////////////////////////////////////
- // Actions
- // ///////////////////////////////////////////////////////
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- attachDisableFacetIfDisableMethodForSessionIsFound(processMethodContext, getAuthenticationSessionProvider());
- }
-
- private void attachDisableFacetIfDisableMethodForSessionIsFound(
- final ProcessMethodContext processMethodContext,
- final AuthenticationSessionProvider authenticationSessionProvider) {
-
- final Method method = processMethodContext.getMethod();
- final String capitalizedName = StringExtensions.asJavaBaseNameStripAccessorPrefixIfRequired(method.getName());
-
- final Class<?> cls = processMethodContext.getCls();
- final Method disableForSessionMethod = MethodFinderUtils.findMethod(
- cls,
- MethodScope.CLASS,
- MethodLiteralConstants.DISABLE_PREFIX + capitalizedName,
- String.class,
- new Class[] { UserMemento.class });
-
- if (disableForSessionMethod == null) {
- return;
- }
-
- processMethodContext.removeMethod(disableForSessionMethod);
-
- final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
- super.addFacet(new DisableForSessionFacetViaMethod(disableForSessionMethod, facetedMethod));
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java
deleted file mode 100644
index 5e1a4c7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.hidden.forsession;
-
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.interactions.HidingInteractionAdvisor;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-/**
- * Hide a property, collection or action based on the current session.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>hideXxx(UserMemento)</tt> support method for the member.
- */
-public interface HideForSessionFacet extends Facet, HidingInteractionAdvisor {
-
- public String hiddenReason(AuthenticationSession session);
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java
deleted file mode 100644
index 2930e77..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java
+++ /dev/null
@@ -1,50 +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.metamodel.facets.members.hidden.forsession;
-
-import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.interactions.VisibilityContext;
-
-/**
- * Hide a property, collection or action based on the current session.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>hideXxx(UserMemento)</tt> support method for the member.
- */
-public abstract class HideForSessionFacetAbstract extends FacetAbstract implements HideForSessionFacet {
-
- public static Class<? extends Facet> type() {
- return HideForSessionFacet.class;
- }
-
- public HideForSessionFacetAbstract(FacetHolder holder) {
- super(type(), holder, Derivation.NOT_DERIVED);
- }
-
- @Override
- public String hides(final VisibilityContext<? extends VisibilityEvent> ic) {
- return hiddenReason(getAuthenticationSession());
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java
deleted file mode 100644
index 3ad0dcd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java
+++ /dev/null
@@ -1,45 +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.metamodel.facets.members.hidden.forsession;
-
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class HideForSessionFacetNone extends HideForSessionFacetAbstract {
-
- public HideForSessionFacetNone(
- final FacetHolder holder) {
- super(holder);
- }
-
- /**
- * Always returns <tt>null</tt>.
- */
- @Override
- public String hiddenReason(final AuthenticationSession session) {
- return null;
- }
-
- @Override
- public boolean isFallback() {
- return true;
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java
deleted file mode 100644
index 2b51850..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java
+++ /dev/null
@@ -1,84 +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.metamodel.facets.members.hidden.forsession;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.metamodel.commons.MethodExtensions;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facets.ImperativeFacet;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class HideForSessionFacetViaMethod extends HideForSessionFacetAbstract implements ImperativeFacet {
-
- private final Method method;
-
- public HideForSessionFacetViaMethod(
- final Method method,
- final FacetHolder holder) {
- super(holder);
- this.method = method;
- }
-
- /**
- * Returns a singleton list of the {@link Method} provided in the
- * constructor.
- */
- @Override
- public List<Method> getMethods() {
- return Collections.singletonList(method);
- }
-
- @Override
- public Intent getIntent(final Method method) {
- return Intent.CHECK_IF_HIDDEN;
- }
-
- /**
- * Will only check provided that a {@link AuthenticationSession} has been
- * provided.
- */
- @Override
- public String hiddenReason(final AuthenticationSession session) {
- if (session == null) {
- return null;
- }
- final int len = method.getParameterCount();
- final Object[] parameters = new Object[len];
- parameters[0] = session.createUserMemento();
- // TODO: need to change to pick up as non-static rather than static
- final Boolean isHidden = (Boolean) MethodExtensions.invokeStatic(method, parameters);
- return isHidden.booleanValue() ? "Hidden" : null;
- }
-
- @Override
- protected String toStringValues() {
- return "method=" + method;
- }
-
- @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
- super.appendAttributesTo(attributeMap);
- ImperativeFacet.Util.appendAttributesTo(this, attributeMap);
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.java
deleted file mode 100644
index 2900979..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.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.metamodel.facets.members.hidden.forsession;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.security.UserMemento;
-import org.apache.isis.metamodel.commons.StringExtensions;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facetapi.FacetUtil;
-import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-import org.apache.isis.security.authentication.AuthenticationSessionProvider;
-
-public class HideForSessionFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
- private static final String[] PREFIXES = { MethodLiteralConstants.HIDE_PREFIX };
-
- /**
- * Note that the {@link Facet}s registered are the generic ones from
- * noa-architecture (where they exist)
- */
- public HideForSessionFacetViaMethodFactory() {
- super(FeatureType.MEMBERS, OrphanValidation.VALIDATE, PREFIXES);
- }
-
- // ///////////////////////////////////////////////////////
- // Actions
- // ///////////////////////////////////////////////////////
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- // hideXxx(UserMemento)
- attachHideFacetIfHideMethodForSessionIsFound(processMethodContext, getAuthenticationSessionProvider());
-
- }
-
- public static void attachHideFacetIfHideMethodForSessionIsFound(
- final ProcessMethodContext processMethodContext,
- final AuthenticationSessionProvider authenticationSessionProvider) {
-
- final Method method = processMethodContext.getMethod();
- final String capitalizedName = StringExtensions.asJavaBaseNameStripAccessorPrefixIfRequired(method.getName());
-
- final Class<?> cls = processMethodContext.getCls();
- final Method hideForSessionMethod = MethodFinderUtils.findMethod(cls, MethodScope.CLASS, MethodLiteralConstants.HIDE_PREFIX + capitalizedName, boolean.class, new Class[] { UserMemento.class });
-
- if (hideForSessionMethod == null) {
- return;
- }
-
- processMethodContext.removeMethod(hideForSessionMethod);
-
- final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(new HideForSessionFacetViaMethod(hideForSessionMethod, facetedMethod));
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.java
deleted file mode 100644
index 7ae8721..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.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.metamodel.facets.object.ignore.isis;
-
-import org.apache.isis.metamodel.commons.CanBeVoid;
-import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-/**
- * Removes any static getter or setter methods.
- */
-@Deprecated
-public class RemoveStaticGettersAndSettersFacetFactory extends FacetFactoryAbstract {
-
- public RemoveStaticGettersAndSettersFacetFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- processClassContext.removeMethods(MethodScope.CLASS, "get", null, CanBeVoid.FALSE, 0);
- processClassContext.removeMethods(MethodScope.CLASS, "set", null, CanBeVoid.FALSE, 0);
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index be2ff1c..ca6ba4b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -41,19 +41,12 @@ import org.apache.isis.metamodel.facets.jaxb.JaxbFacetFactory;
import org.apache.isis.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnActionFromConfiguredRegexFactory;
import org.apache.isis.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
import org.apache.isis.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.members.order.annotprop.MemberOrderFacetFactory;
import org.apache.isis.metamodel.facets.object.ViewModelSemanticCheckingFacetFactory;
import org.apache.isis.metamodel.facets.object.bookmarkpolicy.bookmarkable.BookmarkPolicyFacetFallbackFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.CreatedCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.LoadCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.PersistCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.PersistCallbackViaSaveMethodFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.RemoveCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.UpdateCallbackFacetFactory;
+import org.apache.isis.metamodel.facets.object.callbacks.*;
import org.apache.isis.metamodel.facets.object.choices.enums.EnumFacetUsingValueFacetUsingSemanticsProviderFactory;
import org.apache.isis.metamodel.facets.object.cssclass.method.CssClassFacetMethodFactory;
import org.apache.isis.metamodel.facets.object.defaults.annotcfg.DefaultedFacetAnnotationElseConfigurationFactory;
@@ -67,7 +60,6 @@ import org.apache.isis.metamodel.facets.object.grid.GridFacetFactory;
import org.apache.isis.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.object.icon.method.IconFacetMethodFactory;
import org.apache.isis.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory;
-import org.apache.isis.metamodel.facets.object.ignore.isis.RemoveStaticGettersAndSettersFacetFactory;
import org.apache.isis.metamodel.facets.object.ignore.javalang.IteratorFilteringFacetFactory;
import org.apache.isis.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory;
import org.apache.isis.metamodel.facets.object.layout.LayoutFacetFactory;
@@ -167,8 +159,6 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
addFactory(FacetProcessingOrder.C1_METHOD_REMOVING, RemoveMethodsFacetFactory.class);
- addFactory(FacetProcessingOrder.C1_METHOD_REMOVING, RemoveStaticGettersAndSettersFacetFactory.class, Marker.DEPRECATED);
-
addFactory(FacetProcessingOrder.C1_METHOD_REMOVING, RemoveAnnotatedMethodsFacetFactory.class);
// must be before any other FacetFactories that install MandatoryFacet.class facets
@@ -209,10 +199,8 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, ActionParameterDefaultsFacetViaMethodFactory.class);
// members in general
- addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, DisableForSessionFacetViaMethodFactory.class);
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, DisableForContextFacetViaMethodFactory.class);
- addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, HideForSessionFacetViaMethodFactory.class);
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, HideForContextFacetViaMethodFactory.class);
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, CreatedCallbackFacetFactory.class);
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index a6dd0bd..3ed7c32 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -19,15 +19,14 @@
package org.apache.isis.metamodel.facets.actions;
+import lombok.val;
+
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import org.jmock.Expectations;
-
-import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.metamodel.facets.FacetFactory.ProcessMethodContext;
@@ -38,12 +37,6 @@ import org.apache.isis.metamodel.facets.actions.defaults.method.ActionDefaultsFa
import org.apache.isis.metamodel.facets.actions.validate.ActionValidationFacet;
import org.apache.isis.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethod;
import org.apache.isis.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacet;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
import org.apache.isis.metamodel.facets.param.autocomplete.method.ActionParameterAutoCompleteFacetViaMethod;
import org.apache.isis.metamodel.facets.param.autocomplete.method.ActionParameterAutoCompleteFacetViaMethodFactory;
@@ -60,8 +53,7 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.testspec.ObjectSpecificationStub;
import org.apache.isis.security.authentication.AuthenticationSession;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import lombok.val;
+import org.jmock.Expectations;
public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
@@ -302,88 +294,7 @@ public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
assertNull(facet);
}
- public static class CustomerStatic {
- public void someAction(final int x, final Long y) {
- }
-
- public static String nameSomeAction() {
- return "Another Name";
- }
- public static String descriptionSomeAction() {
- return "Some old description";
- }
-
- public static boolean alwaysHideSomeAction() {
- return true;
- }
-
- public static boolean protectSomeAction() {
- return true;
- }
-
- public static boolean hideSomeAction(final UserMemento userMemento) {
- return true;
- }
-
- public static String disableSomeAction(final UserMemento userMemento) {
- return "disabled for this user";
- }
-
- public static void otherAction(final int x, final Long y) {
- }
-
- public static boolean alwaysHideOtherAction() {
- return false;
- }
-
- public static boolean protectOtherAction() {
- return false;
- }
- }
-
-
- public void testInstallsHiddenForSessionFacetAndRemovesMethod() {
-
- val facetFactory = new HideForSessionFacetViaMethodFactory();
- facetFactory.setMetaModelContext(super.metaModelContext);
-
- // mockSpecificationLoader.setLoadSpecificationStringReturn(voidSpec);
- allowing_specificationLoader_loadSpecification_any_willReturn(this.voidSpec);
-
- final Method actionMethod = findMethod(CustomerStatic.class, "someAction", new Class[] { int.class, Long.class });
- final Method hideMethod = findMethod(CustomerStatic.class, "hideSomeAction", new Class[] { UserMemento.class });
-
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, actionMethod, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(HideForSessionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof HideForSessionFacetViaMethod);
- final HideForSessionFacetViaMethod hideForSessionFacetViaMethod = (HideForSessionFacetViaMethod) facet;
- assertEquals(hideMethod, hideForSessionFacetViaMethod.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(hideMethod));
- }
-
- public void testInstallsDisabledForSessionFacetAndRemovesMethod() {
- val facetFactory = new DisableForSessionFacetViaMethodFactory();
- facetFactory.setMetaModelContext(super.metaModelContext);
-
- allowing_specificationLoader_loadSpecification_any_willReturn(this.voidSpec);
-
- final Method actionMethod = findMethod(CustomerStatic.class, "someAction", new Class[] { int.class, Long.class });
- final Method disableMethod = findMethod(CustomerStatic.class, "disableSomeAction", new Class[] { UserMemento.class });
-
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, actionMethod, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(DisableForSessionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof DisableForSessionFacetViaMethod);
- final DisableForSessionFacetViaMethod disableForSessionFacetViaMethod = (DisableForSessionFacetViaMethod) facet;
- assertEquals(disableMethod, disableForSessionFacetViaMethod.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(disableMethod));
- }
public void testInstallsParameterDefaultsMethodAndRemovesMethod() {
val facetFactory = new ActionParameterDefaultsFacetViaMethodFactory();
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
index 2eb3e34..9e837ea 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
@@ -49,12 +49,6 @@ import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateA
import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateAddToFacetViaMethod;
import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacet;
import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacet;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -89,7 +83,7 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
}
final Method collectionAccessorMethod = findMethod(Customer.class, "getOrders");
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(PropertyOrCollectionAccessorFacet.class);
assertNotNull(facet);
@@ -114,7 +108,7 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
final Method collectionAccessorMethod = findMethod(Customer.class, "getOrders");
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(PropertyOrCollectionAccessorFacet.class);
assertNotNull(facet);
@@ -592,81 +586,5 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
static class Order {
}
- public static class CustomerStatic {
- public Collection<Order> getOrders() {
- return null;
- }
-
- public static String nameOrders() {
- return "Most Recent Orders";
- };
-
- public static String descriptionOrders() {
- return "Some old description";
- }
-
- public static boolean alwaysHideOrders() {
- return true;
- }
-
- public static boolean protectOrders() {
- return true;
- }
-
- public static boolean hideOrders(final UserMemento userMemento) {
- return true;
- }
-
- public static String disableOrders(final UserMemento userMemento) {
- return "disabled for this user";
- }
-
- public static void getOtherOrders() {
- }
-
- public static boolean alwaysHideOtherOrders() {
- return false;
- }
-
- public static boolean protectOtherOrders() {
- return false;
- }
- }
-
- public void testInstallsHiddenForSessionFacetAndRemovesMethod() {
- val facetFactory = new HideForSessionFacetViaMethodFactory();
- facetFactory.setMetaModelContext(super.metaModelContext);
-
- final Method collectionAccessorMethod = findMethod(CustomerStatic.class, "getOrders");
- final Method hideMethod = findMethod(CustomerStatic.class, "hideOrders", new Class[] { UserMemento.class });
-
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(HideForSessionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof HideForSessionFacetViaMethod);
- final HideForSessionFacetViaMethod hideForSessionFacetViaMethod = (HideForSessionFacetViaMethod) facet;
- assertEquals(hideMethod, hideForSessionFacetViaMethod.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(hideMethod));
- }
-
- public void testInstallsDisabledForSessionFacetAndRemovesMethod() {
- val facetFactory = new DisableForSessionFacetViaMethodFactory();
- facetFactory.setMetaModelContext(super.metaModelContext);
-
- final Method collectionAccessorMethod = findMethod(CustomerStatic.class, "getOrders");
- final Method disableMethod = findMethod(CustomerStatic.class, "disableOrders", new Class[] { UserMemento.class });
-
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(DisableForSessionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof DisableForSessionFacetViaMethod);
- final DisableForSessionFacetViaMethod disableForSessionFacetViaMethod = (DisableForSessionFacetViaMethod) facet;
- assertEquals(disableMethod, disableForSessionFacetViaMethod.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(disableMethod));
- }
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
index 6de8cc1..04eaf1d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
@@ -19,24 +19,17 @@
package org.apache.isis.metamodel.facets.properties;
-import java.lang.reflect.Method;
+import lombok.val;
-import org.jmock.auto.Mock;
+import java.lang.reflect.Method;
-import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.metamodel.facets.FacetFactory.ProcessMethodContext;
import org.apache.isis.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacet;
import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethod;
import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacet;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacet;
import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod;
import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
@@ -70,8 +63,7 @@ import org.apache.isis.metamodel.facets.properties.validating.method.PropertyVal
import org.apache.isis.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethodFactory;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import lombok.val;
+import org.jmock.auto.Mock;
public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
@@ -101,7 +93,7 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
}
final Method propertyAccessorMethod = findMethod(Customer.class, "getFirstName");
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(PropertyOrCollectionAccessorFacet.class);
assertNotNull(facet);
@@ -673,93 +665,7 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().get(0));
}
- public static class CustomerStatic {
- public String getFirstName() {
- return null;
- }
-
- // required otherwise marked as DisabledFacetAlways
- public void setFirstName(final String firstName) {
- }
-
- public static String nameFirstName() {
- return "Given name";
- };
-
- public static String descriptionFirstName() {
- return "Some old description";
- }
-
- public static boolean alwaysHideFirstName() {
- return true;
- }
-
- public static boolean protectFirstName() {
- return true;
- }
-
- public static boolean hideFirstName(final UserMemento userMemento) {
- return true;
- }
-
- public static String disableFirstName(final UserMemento userMemento) {
- return "disabled for this user";
- }
-
- public String getLastName() {
- return null;
- }
-
- // required otherwise marked as DisabledFacetAlways
- public void setLastName(final String firstName) {
- }
-
- public static boolean alwaysHideLastName() {
- return false;
- }
-
- public static boolean protectLastName() {
- return false;
- }
- }
-
-
-
- public void testInstallsHiddenForSessionFacetAndRemovesMethod() {
- val facetFactory = new HideForSessionFacetViaMethodFactory();
- facetFactory.setMetaModelContext(super.metaModelContext);
-
- final Method propertyAccessorMethod = findMethod(CustomerStatic.class, "getFirstName");
- final Method hideMethod = findMethod(CustomerStatic.class, "hideFirstName", new Class[] { UserMemento.class });
-
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(HideForSessionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof HideForSessionFacetViaMethod);
- final HideForSessionFacetViaMethod hideForSessionFacetViaMethod = (HideForSessionFacetViaMethod) facet;
- assertEquals(hideMethod, hideForSessionFacetViaMethod.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(hideMethod));
-
- }
-
- public void testInstallsDisabledForSessionFacetAndRemovesMethod() {
- val facetFactory = new DisableForSessionFacetViaMethodFactory();
- facetFactory.setMetaModelContext(super.metaModelContext);
-
- final Method propertyAccessorMethod = findMethod(CustomerStatic.class, "getFirstName");
- final Method disableMethod = findMethod(CustomerStatic.class, "disableFirstName", new Class[] { UserMemento.class });
- facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
- final Facet facet = facetedMethod.getFacet(DisableForSessionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof DisableForSessionFacetViaMethod);
- final DisableForSessionFacetViaMethod disableForSessionFacetViaMethod = (DisableForSessionFacetViaMethod) facet;
- assertEquals(disableMethod, disableForSessionFacetViaMethod.getMethods().get(0));
-
- assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(disableMethod));
- }
}
diff --git a/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java b/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
index 3b3ed39..fb64229 100644
--- a/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
@@ -41,48 +41,13 @@ import static org.junit.Assert.assertThat;
@RunWith(Parameterized.class)
public class MethodFinderUtilsTest {
- private static Method staticMethod;
- private static Method instanceMethod;
-
- static {
- staticMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someStaticMethod");
- instanceMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someInstanceMethod");
- }
-
- private final MethodScope methodScope;
- private final Method method;
- private final boolean result;
-
- @Before
- public void setUp() {
- assertThat(staticMethod, is(not(nullValue())));
- assertThat(instanceMethod, is(not(nullValue())));
- }
-
- @Parameters
- public static Collection<?> parameters() {
- return Arrays.asList(new Object[][] {
- { MethodScope.OBJECT, staticMethod, false },
- { MethodScope.CLASS, staticMethod, true },
- { MethodScope.OBJECT, instanceMethod, true },
- { MethodScope.CLASS, instanceMethod, false }, });
- }
-
- public static void someStaticMethod() {
- }
-
public void someInstanceMethod() {
}
- public MethodFinderUtilsTest(final MethodScope methodScope, final Method method, final boolean result) {
- this.methodScope = methodScope;
- this.method = method;
- this.result = result;
- }
-
@Test
public void all() {
- assertThat(MethodUtil.inScope(method, methodScope), is(result));
+ Method instanceMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someInstanceMethod");
+ assertThat(MethodUtil.inScope(instanceMethod, MethodScope.OBJECT), is(true));
}
}