You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/09/01 09:09:38 UTC

[isis] branch master updated: ISIS-2774: search private object support/callback methods

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 31feb7a  ISIS-2774: search private object support/callback methods
31feb7a is described below

commit 31feb7ad3583942f9b06f4f247052efab1bef425
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 1 11:09:31 2021 +0200

    ISIS-2774: search private object support/callback methods
---
 .../isis/applib/annotation/Introspection.java      |  2 +-
 .../ActionDefaultsFacetViaMethodFactory.java       |  4 +-
 .../ActionValidationFacetViaMethodFactory.java     |  4 +-
 .../DescribedAsFacetForMemberViaMethodFactory.java |  4 +-
 .../DisableForContextFacetViaMethodFactory.java    |  6 +--
 .../HideForContextFacetViaMethodFactory.java       |  6 +--
 .../NamedFacetForMemberViaMethodFactory.java       |  4 +-
 .../callbacks/CreatedCallbackFacetFactory.java     |  6 +--
 .../object/callbacks/LoadCallbackFacetFactory.java |  7 ++-
 .../callbacks/RemoveCallbackFacetFactory.java      |  7 ++-
 .../RemoveCallbackViaDeleteMethodFacetFactory.java |  7 ++-
 .../method/CssClassFacetMethodFactory.java         |  6 +--
 .../DisabledObjectFacetViaMethodFactory.java       |  8 ++--
 .../method/HiddenObjectFacetViaMethodFactory.java  |  6 +--
 .../object/icon/method/IconFacetMethodFactory.java |  6 +--
 .../facets/object/layout/LayoutFacetFactory.java   |  6 +--
 .../method/ValidateObjectFacetMethodFactory.java   |  2 +-
 ...ParameterAutoCompleteFacetViaMethodFactory.java |  4 +-
 .../method/ActionChoicesFacetViaMethodFactory.java |  4 +-
 ...ctionParameterChoicesFacetViaMethodFactory.java |  4 +-
 ...tionParameterDefaultsFacetViaMethodFactory.java |  4 +-
 ...tionParameterDisabledFacetViaMethodFactory.java |  4 +-
 ...ActionParameterHiddenFacetViaMethodFactory.java |  4 +-
 ...onParameterValidationFacetViaMethodFactory.java |  4 +-
 .../PropertyAutoCompleteFacetMethodFactory.java    |  4 +-
 .../PropertyChoicesFacetViaMethodFactory.java      |  4 +-
 .../PropertyDefaultFacetViaMethodFactory.java      |  4 +-
 .../PropertyValidateFacetViaMethodFactory.java     |  4 +-
 .../metamodel/methods/MethodFinderOptions.java     | 55 +++++++++++++---------
 29 files changed, 98 insertions(+), 92 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Introspection.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Introspection.java
index c478768..fb7b223 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Introspection.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Introspection.java
@@ -129,7 +129,7 @@ public enum Introspection {
 
     /**
      * Effectively applies on a per class basis, when introspecting
-     * meta-model members and member-support methods.
+     * class members for the meta-model.
      */
     public static enum MemberAnnotationPolicy {
         MEMBER_ANNOTATIONS_REQUIRED,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
index 4c6c82a..b4cd02c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
@@ -75,11 +75,11 @@ public class ActionDefaultsFacetViaMethodFactory extends MethodPrefixBasedFacetF
             final Class<?> returnType) {
 
         val cls = processMethodContext.getCls();
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
         return MethodFinder.findMethod(
                 MethodFinderOptions
                 .memberSupport(processMethodContext.getIntrospectionPolicy()),
-                cls, namingConvention, returnType, NO_ARG)
+                cls, methodNameCandidates, returnType, NO_ARG)
                 .findFirst()
                 .orElse(null);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
index 29dca80..558ca9f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
@@ -59,12 +59,12 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
 
         val facetHolder = processMethodContext.getFacetHolder();
 
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val searchRequest = ActionSupport.ActionSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ActionSupport.ActionSupportingMethodSearchRequest.ReturnType.TEXT)
-                .methodNames(namingConvention)
+                .methodNames(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.ALL_PARAM_TYPES))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethodFactory.java
index 13ae8e9..65a45f4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/described/method/DescribedAsFacetForMemberViaMethodFactory.java
@@ -53,13 +53,13 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         val cls = processMethodContext.getCls();
         //val actionOrGetter = processMethodContext.getMethod();
 
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val describedMethod = MethodFinder.findMethod_returningText(
                 MethodFinderOptions
                 .memberSupport(processMethodContext.getIntrospectionPolicy()),
                 cls,
-                namingConvention,
+                methodNameCandidates,
                 NO_ARG)
                 .findFirst()
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
index 12f6bb2..c703941 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
@@ -57,7 +57,7 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
 
         Method disableMethod = null;
 
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         boolean noParamsOnly = getConfiguration().getCore().getMetaModel().getValidator().isNoParamsOnly();
         boolean searchExactMatch = !noParamsOnly;
@@ -67,7 +67,7 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
                     MethodFinderOptions
                     .memberSupport(processMethodContext.getIntrospectionPolicy()),
                     cls,
-                    namingConvention,
+                    methodNameCandidates,
                     actionOrGetter.getParameterTypes())
                     .findFirst()
                     .orElse(null);
@@ -78,7 +78,7 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
                     MethodFinderOptions
                     .memberSupport(processMethodContext.getIntrospectionPolicy()),
                     cls,
-                    namingConvention,
+                    methodNameCandidates,
                     NO_ARG)
                     .findFirst()
                     .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
index 8452fda..80b0e90 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
@@ -54,14 +54,14 @@ extends MethodPrefixBasedFacetFactoryAbstract {
 
         final Method actionOrGetter = processMethodContext.getMethod();
 
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val cls = processMethodContext.getCls();
         Method hideMethod = MethodFinder.findMethod(
                 MethodFinderOptions
                 .memberSupport(processMethodContext.getIntrospectionPolicy()),
                 cls,
-                namingConvention,
+                methodNameCandidates,
                 boolean.class,
                 NO_ARG)
                 .findFirst()
@@ -75,7 +75,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
                         MethodFinderOptions
                         .memberSupport(processMethodContext.getIntrospectionPolicy()),
                         cls,
-                        namingConvention,
+                        methodNameCandidates,
                         boolean.class,
                         actionOrGetter.getParameterTypes())
                         .findFirst()
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethodFactory.java
index 9bce712..01568db 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/method/NamedFacetForMemberViaMethodFactory.java
@@ -53,13 +53,13 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         val cls = processMethodContext.getCls();
         //val actionOrGetter = processMethodContext.getMethod();
 
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val namedMethod = MethodFinder.findMethod_returningText(
                 MethodFinderOptions
                 .memberSupport(processMethodContext.getIntrospectionPolicy()),
                 cls,
-                namingConvention,
+                methodNameCandidates,
                 NO_ARG)
                 .findFirst()
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java
index 17be677..e858d4a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java
@@ -33,11 +33,11 @@ import lombok.val;
 
 public class CreatedCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.ofSingleton(MethodLiteralConstants.CREATED_PREFIX);
+    private static final String PREFIX = MethodLiteralConstants.CREATED_PREFIX;
 
     @Inject
     public CreatedCallbackFacetFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -49,7 +49,7 @@ public class CreatedCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAb
                 .findMethod(
                         MethodFinderOptions
                         .livecycleCallback(processClassContext.getIntrospectionPolicy()),
-                        cls, MethodLiteralConstants.CREATED_PREFIX, void.class, NO_ARG);
+                        cls, PREFIX, void.class, NO_ARG);
 
         if (method != null) {
             addFacet(new CreatedCallbackFacetViaMethod(method, facetHolder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java
index f4a38a9..bc3268d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java
@@ -36,12 +36,11 @@ import lombok.val;
 public class LoadCallbackFacetFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.of(
-            MethodLiteralConstants.LOADED_PREFIX);
+    private static final String PREFIX = MethodLiteralConstants.LOADED_PREFIX;
 
     @Inject
     public LoadCallbackFacetFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -52,7 +51,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         Method method = MethodFinderUtils.findMethod(
                 MethodFinderOptions
                 .livecycleCallback(processClassContext.getIntrospectionPolicy()),
-                cls, MethodLiteralConstants.LOADED_PREFIX, void.class, NO_ARG);
+                cls, PREFIX, void.class, NO_ARG);
         if (method != null) {
             processClassContext.removeMethod(method);
             addFacet(new LoadedCallbackFacetViaMethod(method, facetHolder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
index 9a234f9..822e2b2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
@@ -39,12 +39,11 @@ import lombok.val;
 public class RemoveCallbackFacetFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.of(
-            MethodLiteralConstants.REMOVING_PREFIX);
+    private static final String PREFIX = MethodLiteralConstants.REMOVING_PREFIX;
 
     @Inject
     public RemoveCallbackFacetFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -57,7 +56,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
                 .findMethod(
                         MethodFinderOptions
                         .livecycleCallback(processClassContext.getIntrospectionPolicy()),
-                        cls, MethodLiteralConstants.REMOVING_PREFIX, void.class,
+                        cls, PREFIX, void.class,
                         NO_ARG);
         if (method != null) {
             processClassContext.removeMethod(method);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java
index 0499343..0307344 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java
@@ -39,12 +39,11 @@ import lombok.val;
 public class RemoveCallbackViaDeleteMethodFacetFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.of(
-            MethodLiteralConstants.DELETING_PREFIX);
+    private static final String PREFIX = MethodLiteralConstants.DELETING_PREFIX;
 
     @Inject
     public RemoveCallbackViaDeleteMethodFacetFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -57,7 +56,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         method = MethodFinderUtils.findMethod(
                 MethodFinderOptions
                 .livecycleCallback(processClassContext.getIntrospectionPolicy()),
-                cls, MethodLiteralConstants.DELETING_PREFIX, void.class, NO_ARG);
+                cls, PREFIX, void.class, NO_ARG);
         if (method != null) {
             processClassContext.removeMethod(method);
             final RemovingCallbackFacet facet = facetHolder.getFacet(RemovingCallbackFacet.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java
index 5647316..bd66e0b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java
@@ -34,11 +34,11 @@ import org.apache.isis.core.metamodel.methods.MethodPrefixBasedFacetFactoryAbstr
 public class CssClassFacetMethodFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.ofSingleton(MethodLiteralConstants.CSS_CLASS);
+    private static final String PREFIX = MethodLiteralConstants.CSS_CLASS;
 
     @Inject
     public CssClassFacetMethodFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -49,7 +49,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         final Method method = MethodFinderUtils.findMethod(
                 MethodFinderOptions
                 .layoutSupport(processClassContext.getIntrospectionPolicy()),
-                cls, MethodLiteralConstants.CSS_CLASS, String.class, NO_ARG);
+                cls, PREFIX, String.class, NO_ARG);
         if (method == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
index 195d32c..86cb128 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
@@ -53,11 +53,11 @@ import lombok.val;
 public class DisabledObjectFacetViaMethodFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.ofSingleton(MethodLiteralConstants.DISABLED);
+    private static final String METHOD_NAME = MethodLiteralConstants.DISABLED;
 
     @Inject
     public DisabledObjectFacetViaMethodFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.EVERYTHING_BUT_PARAMETERS, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.EVERYTHING_BUT_PARAMETERS, OrphanValidation.VALIDATE, Can.ofSingleton(METHOD_NAME));
     }
 
     @Override
@@ -70,7 +70,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
                 MethodFinderOptions
                 .objectSupport(processClassContext.getIntrospectionPolicy()),
                 cls,
-                MethodLiteralConstants.DISABLED,
+                METHOD_NAME,
                 paramTypes);
         if (method == null) {
             return;
@@ -80,7 +80,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         // sadness: same logic as in I18nFacetFactory
         val translationContext = TranslationContext.forMethod(method);
 
-        FacetUtil.addFacet(new DisabledObjectFacetViaMethod(method, translationService, translationContext, facetHolder));
+        addFacet(new DisabledObjectFacetViaMethod(method, translationService, translationContext, facetHolder));
 
         processClassContext.removeMethod(method);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
index 367fdec..788c019 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
@@ -54,11 +54,11 @@ import lombok.val;
 public class HiddenObjectFacetViaMethodFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.ofSingleton(MethodLiteralConstants.HIDDEN);
+    private static final String METHOD_NAME = MethodLiteralConstants.HIDDEN;
 
     @Inject
     public HiddenObjectFacetViaMethodFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.EVERYTHING_BUT_PARAMETERS, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.EVERYTHING_BUT_PARAMETERS, OrphanValidation.VALIDATE, Can.ofSingleton(METHOD_NAME));
     }
 
     @Override
@@ -91,7 +91,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         final Method method = MethodFinderUtils.findMethod(
                 MethodFinderOptions
                 .objectSupport(processClassContext.getIntrospectionPolicy()),
-                cls, MethodLiteralConstants.HIDDEN, returnType, NO_ARG);
+                cls, METHOD_NAME, returnType, NO_ARG);
         if (method == null) {
             return false;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetMethodFactory.java
index 288ab61..1eb9ef6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/icon/method/IconFacetMethodFactory.java
@@ -36,11 +36,11 @@ import org.apache.isis.core.metamodel.methods.MethodPrefixBasedFacetFactoryAbstr
 public class IconFacetMethodFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.ofSingleton(MethodLiteralConstants.ICON_NAME);
+    private static final String PREFIX = MethodLiteralConstants.ICON_NAME;
 
     @Inject
     public IconFacetMethodFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -51,7 +51,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         final Method method = MethodFinderUtils.findMethod(
                 MethodFinderOptions
                 .layoutSupport(processClassContext.getIntrospectionPolicy()),
-                cls, MethodLiteralConstants.ICON_NAME, String.class, NO_ARG);
+                cls, PREFIX, String.class, NO_ARG);
         if (method == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFactory.java
index abe1487..15ca351 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/layout/LayoutFacetFactory.java
@@ -33,10 +33,10 @@ import org.apache.isis.core.metamodel.methods.MethodPrefixBasedFacetFactoryAbstr
 public class LayoutFacetFactory
 extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final Can<String> PREFIXES = Can.ofSingleton(MethodLiteralConstants.LAYOUT);
+    private static final String PREFIX = MethodLiteralConstants.LAYOUT;
 
     public LayoutFacetFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+        super(mmc, FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, Can.ofSingleton(PREFIX));
     }
 
     @Override
@@ -47,7 +47,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         final Method method = MethodFinderUtils.findMethod(
                 MethodFinderOptions
                 .layoutSupport(processClassContext.getIntrospectionPolicy()),
-                cls, MethodLiteralConstants.LAYOUT, String.class, NO_ARG);
+                cls, PREFIX, String.class, NO_ARG);
 
         final LayoutFacet layoutFacet;
         if (method == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
index 63e5b85..96bae4a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
@@ -55,7 +55,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
                 MethodFinderOptions
                 .objectSupport(processClassContext.getIntrospectionPolicy()),
                 cls,
-                MethodLiteralConstants.VALIDATE_PREFIX,
+                PREFIX,
                 NO_ARG);
         if (method != null) {
             val translationService = getTranslationService();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index cee9691..7e614cc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -58,13 +58,13 @@ extends MethodPrefixBasedFacetFactoryAbstract {
 
         // attach ActionParameterChoicesFacet if autoCompleteNumMethod is found ...
 
-        val namingConvention = processMethodContext.parameterSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.parameterSupportCandidates(PREFIX);
 
         val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ReturnType.NON_SCALAR)
                 .additionalParamType(String.class)
-                .paramIndexToMethodNameProviders(namingConvention)
+                .paramIndexToMethodNameProviders(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
index cb50437..f6f2df8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
@@ -85,13 +85,13 @@ extends MethodPrefixBasedFacetFactoryAbstract {
             final Class<?> returnType) {
 
         val cls = processMethodContext.getCls();
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         Method choicesMethod =
                 MethodFinder.findMethod(
                         MethodFinderOptions
                         .memberSupport(processMethodContext.getIntrospectionPolicy()),
-                        cls, namingConvention, returnType, NO_ARG)
+                        cls, methodNameCandidates, returnType, NO_ARG)
                 .findFirst()
                 .orElse(null);
         return choicesMethod;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
index fbdba45..c0cfb69 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
@@ -62,12 +62,12 @@ extends MethodPrefixBasedFacetFactoryAbstract {
 
         // attach ActionChoicesFacet if choicesNumMethod is found ...
 
-        val namingConvention = processMethodContext.parameterSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.parameterSupportCandidates(PREFIX);
 
         val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ReturnType.NON_SCALAR)
-                .paramIndexToMethodNameProviders(namingConvention)
+                .paramIndexToMethodNameProviders(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index eca5f93..f1b62ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -66,12 +66,12 @@ public class ActionParameterDefaultsFacetViaMethodFactory extends MethodPrefixBa
         // attach DefaultFacetForParameters if defaultNumMethod is found ...
 
         val actionMethod = processMethodContext.getMethod();
-        val namingConvention = processMethodContext.parameterSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.parameterSupportCandidates(PREFIX);
 
         val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ReturnType.SAME_AS_PARAMETER_TYPE)
-                .paramIndexToMethodNameProviders(namingConvention)
+                .paramIndexToMethodNameProviders(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
index 2a93993..b81a615 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
@@ -62,12 +62,12 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
 
         // attach ActionParameterDisabledFacet if disableNumMethod is found ...
 
-        val namingConvention = processMethodContext.parameterSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.parameterSupportCandidates(PREFIX);
 
         val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ReturnType.TEXT)
-                .paramIndexToMethodNameProviders(namingConvention)
+                .paramIndexToMethodNameProviders(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
index db5a064..e63af54 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
@@ -61,12 +61,12 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
 
         // attach ActionParameterHiddenFacet if hideNumMethod is found ...
 
-        val namingConvention = processMethodContext.parameterSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.parameterSupportCandidates(PREFIX);
 
         val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ReturnType.BOOLEAN)
-                .paramIndexToMethodNameProviders(namingConvention)
+                .paramIndexToMethodNameProviders(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SWEEP))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
index 64ba570..f66363f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
@@ -62,12 +62,12 @@ public class ActionParameterValidationFacetViaMethodFactory extends MethodPrefix
         // attach ActionParameterValidationFacet if validateNumMethod is found ...
         // in any case single-arg, either same as param-type or PPM style
 
-        val namingConvention = processMethodContext.parameterSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.parameterSupportCandidates(PREFIX);
 
         val searchRequest = ParameterSupport.ParamSupportingMethodSearchRequest.builder()
                 .processMethodContext(processMethodContext)
                 .returnType(ReturnType.TEXT)
-                .paramIndexToMethodNameProviders(namingConvention)
+                .paramIndexToMethodNameProviders(methodNameCandidates)
                 .searchAlgorithms(EnumSet.of(SearchAlgorithm.PPM, SearchAlgorithm.SINGLEARG_BEING_PARAMTYPE))
                 .build();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
index b9bd675..e266991 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
@@ -59,7 +59,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
         }
 
         val getterOrMixinMain = processMethodContext.getMethod();
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val cls = processMethodContext.getCls();
         val returnType = getterOrMixinMain.getReturnType();
@@ -68,7 +68,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
                         MethodFinderOptions
                         .memberSupport(processMethodContext.getIntrospectionPolicy()),
                         cls,
-                        namingConvention,
+                        methodNameCandidates,
                         NO_RETURN,
                         STRING_ARG)
                 .findFirst()
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
index b8e1cf0..32f7d15 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
@@ -57,7 +57,7 @@ public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacet
         }
 
         val getterOrMixinMain = processMethodContext.getMethod();
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val cls = processMethodContext.getCls();
         val returnType = getterOrMixinMain.getReturnType();
@@ -66,7 +66,7 @@ public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacet
                         MethodFinderOptions
                         .memberSupport(processMethodContext.getIntrospectionPolicy()),
                     cls,
-                    namingConvention,
+                    methodNameCandidates,
                     NO_RETURN,
                     NO_ARG)
                 .findFirst()
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
index b914302..262865a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
@@ -57,7 +57,7 @@ public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacet
         }
 
         val getterOrMixinMain = processMethodContext.getMethod();
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
 
         val cls = processMethodContext.getCls();
         val returnType = getterOrMixinMain.getReturnType();
@@ -66,7 +66,7 @@ public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacet
                     MethodFinderOptions
                         .memberSupport(processMethodContext.getIntrospectionPolicy()),
                     cls,
-                    namingConvention,
+                    methodNameCandidates,
                     returnType,
                     NO_ARG)
                 .findFirst()
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
index 39d4a10..ce1ec06 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
@@ -53,14 +53,14 @@ extends MethodPrefixBasedFacetFactoryAbstract  {
         val cls = processMethodContext.getCls();
         val getterMethod = processMethodContext.getMethod();
 
-        val namingConvention = processMethodContext.memberSupportCandidates(PREFIX);
+        val methodNameCandidates = processMethodContext.memberSupportCandidates(PREFIX);
         val returnType = getterMethod.getReturnType();
 
         val validateMethod = MethodFinder.findMethod_returningText(
                 MethodFinderOptions
                 .memberSupport(processMethodContext.getIntrospectionPolicy()),
                 cls,
-                namingConvention,
+                methodNameCandidates,
                 new Class[] { returnType })
                 .findFirst()
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderOptions.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderOptions.java
index 50e0d29..e3f29bd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderOptions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methods/MethodFinderOptions.java
@@ -55,35 +55,26 @@ public class MethodFinderOptions {
 
     public static MethodFinderOptions memberSupport(
             final IntrospectionPolicy memberIntrospectionPolicy) {
-        //return havingAnnotation(memberIntrospectionPolicy, MemberSupport.class);
-
-        //MemberAnnotationPolicy
-        //  when REQUIRED -> support also required
-        //  when OPTIONAL -> support only required when support method is private
-
-        return of(
-                EncapsulationPolicy.ENCAPSULATED_MEMBERS_SUPPORTED, // support methods are always allowed private
-                memberIntrospectionPolicy.getMemberAnnotationPolicy().isMemberAnnotationsRequired()
-                    ? method->_Annotations.synthesizeInherited(method, Domain.Include.class).isPresent()
-                    : method-> !_Reflect.isAccessible(method)
-                            ? _Annotations.synthesizeInherited(method, Domain.Include.class).isPresent()
-                            : true);
-
+        return havingAnnotationIfEnforcedByPolicyOrAccessibility(
+                memberIntrospectionPolicy, Domain.Include.class);
     }
 
     public static MethodFinderOptions objectSupport(
             final IntrospectionPolicy memberIntrospectionPolicy) {
-        return havingAnyOrNoAnnotation(memberIntrospectionPolicy);
+        return havingAnnotationIfEnforcedByPolicyOrAccessibility(
+                memberIntrospectionPolicy, Domain.Include.class);
     }
 
     public static MethodFinderOptions livecycleCallback(
             final IntrospectionPolicy memberIntrospectionPolicy) {
-        return havingAnyOrNoAnnotation(memberIntrospectionPolicy);
+        return havingAnnotationIfEnforcedByPolicyOrAccessibility(
+                memberIntrospectionPolicy, Domain.Include.class);
     }
 
     public static MethodFinderOptions layoutSupport(
             final IntrospectionPolicy memberIntrospectionPolicy) {
-        return havingAnyOrNoAnnotation(memberIntrospectionPolicy);
+        return havingAnnotationIfEnforcedByPolicyOrAccessibility(
+                memberIntrospectionPolicy, Domain.Include.class);
     }
 
     private final EncapsulationPolicy encapsulationPolicy;
@@ -98,15 +89,33 @@ public class MethodFinderOptions {
                 _Predicates.alwaysTrue());
     }
 
-
-    private static MethodFinderOptions havingAnnotation(
+    private static MethodFinderOptions havingAnnotationIfEnforcedByPolicyOrAccessibility(
             final IntrospectionPolicy memberIntrospectionPolicy,
-            final Class<? extends Annotation> associatedAnnotationType) {
+            final Class<? extends Annotation> annotationType) {
+
+        //MemberAnnotationPolicy
+        //  when REQUIRED -> annot. on support also required
+        //  when OPTIONAL -> annot. on support only required when support method is private
+
         return of(
-                memberIntrospectionPolicy.getEncapsulationPolicy(),
+                EncapsulationPolicy.ENCAPSULATED_MEMBERS_SUPPORTED, // support methods are always allowed private
                 memberIntrospectionPolicy.getMemberAnnotationPolicy().isMemberAnnotationsRequired()
-                    ? method->_Annotations.synthesizeInherited(method, associatedAnnotationType).isPresent()
-                    : _Predicates.alwaysTrue());
+                    ? method->_Annotations.synthesizeInherited(method, annotationType).isPresent()
+                    : method-> !_Reflect.isAccessible(method)
+                            ? _Annotations.synthesizeInherited(method, annotationType).isPresent()
+                            : true);
+
     }
 
+
+//    private static MethodFinderOptions havingAnnotation(
+//            final IntrospectionPolicy memberIntrospectionPolicy,
+//            final Class<? extends Annotation> associatedAnnotationType) {
+//        return of(
+//                memberIntrospectionPolicy.getEncapsulationPolicy(),
+//                memberIntrospectionPolicy.getMemberAnnotationPolicy().isMemberAnnotationsRequired()
+//                    ? method->_Annotations.synthesizeInherited(method, associatedAnnotationType).isPresent()
+//                    : _Predicates.alwaysTrue());
+//    }
+
 }