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/11/15 20:14:48 UTC
[isis] branch master updated: ISIS-2894: don't remove getters, even if synthetic
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 7a6332c ISIS-2894: don't remove getters, even if synthetic
7a6332c is described below
commit 7a6332ce8204fa5984488068927ddaeeae7ba32e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Nov 15 21:14:38 2021 +0100
ISIS-2894: don't remove getters, even if synthetic
---
.../object/ignore/javalang/RemoveMethodsFacetFactory.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java
index 91d14fa..ebb18cf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.Action;
import org.apache.isis.commons.internal._Constants;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.reflection._Annotations;
+import org.apache.isis.core.config.progmodel.ProgrammingModelConstants;
import org.apache.isis.core.metamodel.commons.ClassExtensions;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -89,14 +90,21 @@ public class RemoveMethodsFacetFactory extends FacetFactoryAbstract {
.forEach(method->{
// remove synthetic methods (except when is a mixin)
// (it seems that javac marks methods synthetic in the context of non-static inner classes)
+
if (!isConcreteMixin
- && method.isSynthetic()) {
+ //FIXME[ISIS-2894] method.isSynthetic() seems a bad indicator for nested inner,
+ // perhaps find a better way
+ && method.isSynthetic()
+ // workaround ... don't remove getters, even if synthetic
+ && !ProgrammingModelConstants.AccessorPrefix.isGetter(method)) {
processClassContext.removeMethod(method);
+ return;
}
// removeJavaLangComparable(processClassContext);
if(method.getName().equals("compareTo")) {
processClassContext.removeMethod(method);
+ return;
}
// remove property setter, if has not explicitly an @Action annotation
@@ -108,6 +116,7 @@ public class RemoveMethodsFacetFactory extends FacetFactoryAbstract {
if(!_Annotations.synthesize(method, Action.class).isPresent()) {
processClassContext.removeMethod(method);
+ return;
}
}
});