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();
+    }
 
 
     // //////////////////////////////////////