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 2016/05/01 10:16:39 UTC
[02/35] isis git commit: ISIS-1392: Extend RepositoryService with
persistAndFlush(...) and removeAndFlush(...) methods
ISIS-1392: Extend RepositoryService with persistAndFlush(...) and removeAndFlush(...) methods
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f6e3835c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f6e3835c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f6e3835c
Branch: refs/heads/ISIS-1291
Commit: f6e3835c035ebeb8d007d6a6134f64086d93a375
Parents: 474cb71
Author: Oscar Bou <os...@apache.org>
Authored: Sun Apr 24 23:29:52 2016 +0200
Committer: Oscar Bou <os...@apache.org>
Committed: Sun Apr 24 23:29:52 2016 +0200
----------------------------------------------------------------------
.../services/repository/RepositoryService.java | 17 +++++++++++++++--
.../repository/RepositoryServiceDefault.java | 14 ++++++++++++++
2 files changed, 29 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/f6e3835c/core/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java b/core/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
index 60f2adc..49cbe08 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
@@ -70,10 +70,17 @@ public interface RepositoryService {
*
* @see org.apache.isis.applib.DomainObjectContainer#newTransientInstance(Class)
* @see #isPersistent(Object)
- * @see #persist(Object)
*/
@Programmatic
void persist(Object domainObject);
+
+ /**
+ * Persist the specified object (or do nothing if already persistent) and flushes changes to the database.
+ *
+ * @see #persist(Object)
+ */
+ @Programmatic
+ void persistAndFlush(Object domainObject);
/**
* Deletes the domain object but only if is persistent.
@@ -83,7 +90,13 @@ public interface RepositoryService {
@Programmatic
void remove(Object domainObject);
-
+ /**
+ * Deletes the domain object but only if is persistent, and flushes changes to the database.
+ *
+ * @param domainObject
+ */
+ @Programmatic
+ void removeAndFlush(Object domainObject);
/**
* Returns all the instances of the specified type (including subtypes).
http://git-wip-us.apache.org/repos/asf/isis/blob/f6e3835c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceDefault.java
index 73c62fa..5d9ed76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceDefault.java
@@ -100,6 +100,13 @@ public class RepositoryServiceDefault
}
persistenceSessionService.makePersistent(adapter);
}
+
+ @Programmatic
+ @Override
+ public void persistAndFlush(final Object object) {
+ persist(object);
+ transactionService.flushTransaction();
+ }
@Override
@Programmatic
@@ -121,6 +128,13 @@ public class RepositoryServiceDefault
persistenceSessionService.remove(adapter);
}
+
+ @Override
+ @Programmatic
+ public void removeAndFlush(final Object domainObject) {
+ remove(domainObject);
+ transactionService.flushTransaction();
+ }
// //////////////////////////////////////