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 ede022a245 ISIS-3010: [JDO] Add Support for Transient annot.
ede022a245 is described below
commit ede022a24512302f2f8730b33528fb7739e233bf
Author: andi-huber <[email protected]>
AuthorDate: Fri Apr 15 10:49:08 2022 +0200
ISIS-3010: [JDO] Add Support for Transient annot.
---
.../JdoPersistenceCapableFacetFactory.java | 1 -
.../JdoNotPersistentAnnotationFacetFactory.java | 38 +++++++++++++++++++---
...va => JdoNotPersistentFacetFromAnnotation.java} | 4 +--
...=> JdoNotPersistentFacetFromJpaAnnotation.java} | 4 +--
4 files changed, 38 insertions(+), 9 deletions(-)
diff --git
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
index 78925c5eda..06834611a9 100644
---
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
+++
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
@@ -119,7 +119,6 @@ implements ObjectTypeFacetFactory {
FacetUtil.addFacet(
jdoFacetContext.createEntityFacet(facetHolder));
-
});
}
diff --git
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
index bada0a90be..c6d7ab21cd 100644
---
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
+++
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
@@ -20,14 +20,16 @@ package
org.apache.isis.persistence.jdo.metamodel.facets.prop.notpersistent;
import javax.inject.Inject;
import javax.jdo.annotations.NotPersistent;
+import javax.persistence.Transient;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext;
+import lombok.val;
+
public class JdoNotPersistentAnnotationFacetFactory
extends FacetFactoryAbstract {
@@ -43,21 +45,49 @@ extends FacetFactoryAbstract {
@Override
public void process(final ProcessMethodContext processMethodContext) {
+ if(!processJdoAnnotations(processMethodContext)) {
+ processJpaAnnotations(processMethodContext);
+ }
+ }
+
+ // -- HELPER
+
+ private boolean processJdoAnnotations(final ProcessMethodContext
processMethodContext) {
// only applies to JDO entities; ignore any view models
final Class<?> cls = processMethodContext.getCls();
if(!jdoFacetContext.isPersistenceEnhanced(cls)) {
- return;
+ return false;
}
final NotPersistent annotation =
processMethodContext.synthesizeOnMethod(NotPersistent.class)
.orElse(null);
+ if (annotation == null) {
+ return false;
+ }
+
+ val facetHolder = processMethodContext.getFacetHolder();
+ FacetUtil.addFacet(new
JdoNotPersistentFacetFromAnnotation(facetHolder));
+ return true;
+ }
+
+
+ private void processJpaAnnotations(final ProcessMethodContext
processMethodContext) {
+
+ //XXX ideally we would process JPA annotations only if the type has an
@Entity annotation
+
+ final Transient annotation =
processMethodContext.synthesizeOnMethod(Transient.class)
+ .orElse(null);
+
if (annotation == null) {
return;
}
- final FacetedMethod holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(new JdoNotPersistentFacetAnnotation(holder));
+ val facetHolder = processMethodContext.getFacetHolder();
+ FacetUtil.addFacet(new
JdoNotPersistentFacetFromJpaAnnotation(facetHolder));
+
}
+
+
}
diff --git
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromAnnotation.java
similarity index 85%
copy from
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
copy to
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromAnnotation.java
index a687b3d9c6..39c8ea171a 100644
---
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
+++
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromAnnotation.java
@@ -21,9 +21,9 @@ package
org.apache.isis.persistence.jdo.metamodel.facets.prop.notpersistent;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class JdoNotPersistentFacetAnnotation extends
JdoNotPersistentFacetAbstract {
+public class JdoNotPersistentFacetFromAnnotation extends
JdoNotPersistentFacetAbstract {
- public JdoNotPersistentFacetAnnotation(final FacetHolder holder) {
+ public JdoNotPersistentFacetFromAnnotation(final FacetHolder holder) {
super(holder);
}
diff --git
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromJpaAnnotation.java
similarity index 85%
rename from
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
rename to
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromJpaAnnotation.java
index a687b3d9c6..2cae95b3b6 100644
---
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
+++
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromJpaAnnotation.java
@@ -21,9 +21,9 @@ package
org.apache.isis.persistence.jdo.metamodel.facets.prop.notpersistent;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public class JdoNotPersistentFacetAnnotation extends
JdoNotPersistentFacetAbstract {
+public class JdoNotPersistentFacetFromJpaAnnotation extends
JdoNotPersistentFacetAbstract {
- public JdoNotPersistentFacetAnnotation(final FacetHolder holder) {
+ public JdoNotPersistentFacetFromJpaAnnotation(final FacetHolder holder) {
super(holder);
}