You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ke...@apache.org on 2013/02/08 18:55:53 UTC

[2/4] git commit: ISIS-220: Implemented optional extra parameters

ISIS-220: Implemented optional extra parameters


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/7ac25a60
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/7ac25a60
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/7ac25a60

Branch: refs/heads/master
Commit: 7ac25a60e42f42180de7f17b57ca5eb0869aabc9
Parents: 693e878
Author: Kevin Meyer <ke...@apache.org>
Authored: Fri Feb 8 16:28:36 2013 +0100
Committer: Kevin Meyer <ke...@apache.org>
Committed: Fri Feb 8 16:28:36 2013 +0100

----------------------------------------------------------------------
 .../isis/objectstore/sql/SqlObjectStore.java       |    4 -
 .../java/org/apache/isis/applib/query/Query.java   |   13 +++
 .../apache/isis/applib/query/QueryAbstract.java    |   19 +++-
 .../isis/applib/query/QueryBuiltInAbstract.java    |    8 +-
 .../isis/applib/query/QueryFindAllInstances.java   |   16 +--
 .../integtestsupport/IsisSystemWithFixtures.java   |   12 +-
 .../InMemoryObjectStoreTest_retrieve.java          |   26 +++++
 .../container/query/QueryFindByPattern.java        |    9 +-
 .../services/container/query/QueryFindByTitle.java |    8 +-
 .../query/PersistenceQueryAbstract.java            |   21 ++--
 .../query/PersistenceQueryBuiltInAbstract.java     |    8 +-
 .../query/PersistenceQueryFindAllInstances.java    |   13 +--
 .../query/PersistenceQueryFindByPattern.java       |    4 +-
 .../query/PersistenceQueryFindByTitle.java         |    8 +-
 .../query/PersistenceQueryFindPaged.java           |   83 ---------------
 ...ersistenceQueryFindUsingApplibQueryDefault.java |    8 +-
 ...tenceQueryFindUsingApplibQuerySerializable.java |    6 +-
 17 files changed, 103 insertions(+), 163 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/component/objectstore/sql/sql-impl/src/main/java/org/apache/isis/objectstore/sql/SqlObjectStore.java
----------------------------------------------------------------------
diff --git a/component/objectstore/sql/sql-impl/src/main/java/org/apache/isis/objectstore/sql/SqlObjectStore.java b/component/objectstore/sql/sql-impl/src/main/java/org/apache/isis/objectstore/sql/SqlObjectStore.java
index 403fb0f..b35c085 100644
--- a/component/objectstore/sql/sql-impl/src/main/java/org/apache/isis/objectstore/sql/SqlObjectStore.java
+++ b/component/objectstore/sql/sql-impl/src/main/java/org/apache/isis/objectstore/sql/SqlObjectStore.java
@@ -51,7 +51,6 @@ import org.apache.isis.core.runtime.persistence.query.PersistenceQueryBuiltInAbs
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindAllInstances;
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindByPattern;
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindByTitle;
-import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindPaged;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
@@ -331,9 +330,6 @@ public final class SqlObjectStore implements ObjectStoreSpi {
             return findByTitle((PersistenceQueryFindByTitle) query, query.getStart(), query.getCount());
         } else if (query instanceof PersistenceQueryFindAllInstances) {
             return getAllInstances((PersistenceQueryFindAllInstances) query,  query.getStart(), query.getCount());
-        } else if (query instanceof PersistenceQueryFindPaged) {
-            PersistenceQueryFindPaged findQuery = (PersistenceQueryFindPaged) query;
-            return getAllInstances((PersistenceQueryFindPaged) query, findQuery.getStart(), findQuery.getCount());
         } else if (query instanceof PersistenceQueryFindByPattern) {
             return findByPattern((PersistenceQueryFindByPattern) query,  query.getStart(), query.getCount());
         } else {

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/applib/src/main/java/org/apache/isis/applib/query/Query.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/query/Query.java b/core/applib/src/main/java/org/apache/isis/applib/query/Query.java
index d04895a..cc1819a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/query/Query.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/query/Query.java
@@ -50,4 +50,17 @@ public interface Query<T> extends Serializable {
      * A human-readable representation of this query and its values.
      */
     public String getDescription();
+
+    /**
+     * The start index into the set table
+     * @return
+     */
+    public long getStart();
+
+
+    /**
+     * The number of items to return, starting at {@link QueryFindAllPaged#getStart()}
+     * @return
+     */
+    public long getCount();
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
index 41ceafc..093a7a5 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
@@ -38,16 +38,23 @@ public abstract class QueryAbstract<T> implements Query<T> {
      */
     private transient Class<T> resultType;
 
-    public QueryAbstract(final Class<T> type, final long start, final long count) {
+
+    /**
+     * Base query based on Class type. 
+     * 
+     * @param type
+     * @param range optional start and count of the range of dataset. 0
+     */
+    public QueryAbstract(final Class<T> type, final long ... range) {
         this.resultTypeName = type.getName();
-        this.start = start;
-        this.count = count;
+        this.start = range.length > 0 ? range[0]:0;
+        this.count = range.length > 1 ? range[1]:0;
     }
 
-    public QueryAbstract(final String typeName, final long start, final long count) {
+    public QueryAbstract(final String typeName, final long ... range) {
         this.resultTypeName = typeName;
-        this.start = start;
-        this.count = count;
+        this.start = range.length > 0 ? range[0]:0;
+        this.count = range.length > 1 ? range[1]:0;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/applib/src/main/java/org/apache/isis/applib/query/QueryBuiltInAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/query/QueryBuiltInAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/query/QueryBuiltInAbstract.java
index 8d3dbc5..5b3fd22 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/query/QueryBuiltInAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/query/QueryBuiltInAbstract.java
@@ -47,12 +47,12 @@ public abstract class QueryBuiltInAbstract<T> extends QueryAbstract<T> {
 
     private static final long serialVersionUID = 1L;
     
-    public QueryBuiltInAbstract(final Class<T> type, final long start, final long count) {
-        super(type, start, count);
+    public QueryBuiltInAbstract(final Class<T> type, final long ... range) {
+        super(type, range);
     }
 
-    public QueryBuiltInAbstract(final String typeName, final long start, final long count) {
-        super(typeName, start, count);
+    public QueryBuiltInAbstract(final String typeName, final long ... range) {
+        super(typeName, range);
     }
     
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/applib/src/main/java/org/apache/isis/applib/query/QueryFindAllInstances.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/query/QueryFindAllInstances.java b/core/applib/src/main/java/org/apache/isis/applib/query/QueryFindAllInstances.java
index 517beb5..e530866 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/query/QueryFindAllInstances.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/query/QueryFindAllInstances.java
@@ -34,20 +34,12 @@ public class QueryFindAllInstances<T> extends QueryBuiltInAbstract<T> {
 
     private static final long serialVersionUID = 1L;
 
-    public QueryFindAllInstances(final Class<T> type) {
-        this(type, 0, 0);
+    public QueryFindAllInstances(final Class<T> type, final long ... range) {
+        super(type, range);
     }
 
-    public QueryFindAllInstances(final String typeName) {
-        this(typeName, 0, 0);
-    }
-
-    public QueryFindAllInstances(Class<T> type, final long startIndex, final long rowCount) {
-        super(type, startIndex, rowCount);
-    }
-
-    public QueryFindAllInstances(String typeName, final long startIndex, final long rowCount) {
-        super(typeName, startIndex, rowCount);
+    public QueryFindAllInstances(final String typeName, final long ... range) {
+        super(typeName, range);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemWithFixtures.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemWithFixtures.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemWithFixtures.java
index 535bedd..15701b8 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemWithFixtures.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemWithFixtures.java
@@ -162,12 +162,12 @@ public class IsisSystemWithFixtures implements org.junit.rules.TestRule {
             wve1 = container.newTransientInstance(WrapperValuedEntity.class);
             wve2 = container.newTransientInstance(WrapperValuedEntity.class);
             
-            smpl1 = container.newTransientInstance(SimpleEntity.class);
-            smpl2 = container.newTransientInstance(SimpleEntity.class);
-            smpl3 = container.newTransientInstance(SimpleEntity.class);
-            smpl4 = container.newTransientInstance(SimpleEntity.class);
-            smpl5 = container.newTransientInstance(SimpleEntity.class);
-            smpl6 = container.newTransientInstance(SimpleEntity.class);
+            smpl1 = container.newTransientInstance(SimpleEntity.class);smpl1.setName("1");
+            smpl2 = container.newTransientInstance(SimpleEntity.class);smpl2.setName("2");
+            smpl3 = container.newTransientInstance(SimpleEntity.class);smpl3.setName("3");
+            smpl4 = container.newTransientInstance(SimpleEntity.class);smpl4.setName("4");
+            smpl5 = container.newTransientInstance(SimpleEntity.class);smpl5.setName("5");
+            smpl6 = container.newTransientInstance(SimpleEntity.class);smpl6.setName("6");
             rfcg1 = container.newTransientInstance(ReferencingEntity.class);
             rfcg2 = container.newTransientInstance(ReferencingEntity.class);
             rfcg3 = container.newTransientInstance(ReferencingEntity.class);

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/integtestsupport/src/test/java/org/apache/isis/core/objectstore/InMemoryObjectStoreTest_retrieve.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/test/java/org/apache/isis/core/objectstore/InMemoryObjectStoreTest_retrieve.java b/core/integtestsupport/src/test/java/org/apache/isis/core/objectstore/InMemoryObjectStoreTest_retrieve.java
index f9bcf51..8b56ab0 100644
--- a/core/integtestsupport/src/test/java/org/apache/isis/core/objectstore/InMemoryObjectStoreTest_retrieve.java
+++ b/core/integtestsupport/src/test/java/org/apache/isis/core/objectstore/InMemoryObjectStoreTest_retrieve.java
@@ -48,6 +48,8 @@ public class InMemoryObjectStoreTest_retrieve {
     public IsisSystemWithFixtures iswf = IsisSystemWithFixtures.builder().build();
     
     protected ObjectAdapter epv2Adapter;
+    protected ObjectAdapter epv3Adapter;
+    protected ObjectAdapter epv4Adapter;
     protected ObjectSpecification epvSpecification;
 
     protected InMemoryObjectStore getStore() {
@@ -57,6 +59,8 @@ public class InMemoryObjectStoreTest_retrieve {
     @Before
     public void setUpFixtures() throws Exception {
         epv2Adapter = iswf.adapterFor(iswf.fixtures.smpl2);
+        epv3Adapter = iswf.adapterFor(iswf.fixtures.smpl3);
+        epv4Adapter = iswf.adapterFor(iswf.fixtures.smpl4);
         epvSpecification = iswf.loadSpecification(SimpleEntity.class);
     }
 
@@ -127,6 +131,28 @@ public class InMemoryObjectStoreTest_retrieve {
     }
 
     @Test
+    public void getInstances_findRange() throws Exception {
+        // given
+        iswf.persist(iswf.fixtures.smpl1); // 0
+        iswf.persist(iswf.fixtures.smpl2); // 1
+        iswf.persist(iswf.fixtures.smpl3); // 2 <- this one
+        iswf.persist(iswf.fixtures.smpl4); // 3 <- this one
+        iswf.bounceSystem();
+
+        // when
+        final List<ObjectAdapter> retrievedAdapters = getStore().loadInstancesAndAdapt(new PersistenceQueryFindAllInstances(epvSpecification, 2, 2));
+        
+        // then
+        assertEquals(2, retrievedAdapters.size());
+        final ObjectAdapter retrievedAdapter = retrievedAdapters.get(0);
+
+        assertNotSame(epv4Adapter, retrievedAdapter);
+        assertEquals(((SimpleEntity)epv4Adapter.getObject()).getName(), ((SimpleEntity)retrievedAdapter.getObject()).getName());
+        assertEquals(epv4Adapter.getOid(), retrievedAdapter.getOid());
+    }
+    
+    
+    @Test
     public void hasInstances_whenEmpty() throws Exception {
         assertEquals(false, getStore().hasInstances(epvSpecification));
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByPattern.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByPattern.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByPattern.java
index b7b58b1..4c2dbae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByPattern.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByPattern.java
@@ -39,15 +39,12 @@ public class QueryFindByPattern<T> extends QueryBuiltInAbstract<T> {
 
     private final T pattern;
     
-    public QueryFindByPattern(final Class<T> type, final T pattern){
-        this(type, pattern, 0, 0);
-    }
-
-    public QueryFindByPattern(final Class<T> type, final T pattern, final long start, final long count) {
-        super(type, start, count);
+    public QueryFindByPattern(final Class<T> type, final T pattern, final long ... range){
+        super(type, range);
         this.pattern = pattern;
     }
 
+
     public T getPattern() {
         return pattern;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByTitle.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByTitle.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByTitle.java
index 7e4bb65..ba48776 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByTitle.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/query/QueryFindByTitle.java
@@ -39,12 +39,8 @@ public class QueryFindByTitle<T> extends QueryBuiltInAbstract<T> {
 
     private final String title;
 
-    public QueryFindByTitle(final Class<T> type, final String title) {
-        this(type, title, 0, 0);
-    }
-
-    public QueryFindByTitle(final Class<T> type, final String title, final long start, final long count) {
-        super(type, start, count);
+    public QueryFindByTitle(final Class<T> type, final String title, final long ... range) {
+        super(type, range);
         this.title = title;
     }
     

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryAbstract.java
index f4620f7..662e9c3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryAbstract.java
@@ -31,21 +31,24 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
 
 public abstract class PersistenceQueryAbstract implements PersistenceQuery, Encodable {
 
-    private final long start;
-    private final long count;
+    protected final long start;
+    protected final long count;
+    
     private final ObjectSpecification specification;
 
-    public PersistenceQueryAbstract(final ObjectSpecification specification, final long start, final long count) {
-        this.specification = specification;
-        this.start = start;
-        this.count = count;
+    public PersistenceQueryAbstract(final ObjectSpecification specification, final long ... range) {
+        this.start = range.length > 0 ? range[0]:0;
+        this.count = range.length > 1 ? range[1]:0;
+        
+        this.specification = specification;        
         initialized();
     }
 
-    protected PersistenceQueryAbstract(final DataInputExtended input, final long start, final long count) throws IOException {
+    protected PersistenceQueryAbstract(final DataInputExtended input, final long ... range) throws IOException {
         final String specName = input.readUTF();
-        this.start = start;
-        this.count = count;
+        this.start = range.length > 0 ? range[0]:0;
+        this.count = range.length > 1 ? range[1]:0;
+        
         specification = getSpecificationLoader().loadSpecification(specName);
         initialized();
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryBuiltInAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryBuiltInAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryBuiltInAbstract.java
index f0f251f..55b68f5 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryBuiltInAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryBuiltInAbstract.java
@@ -37,12 +37,12 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
 public abstract class PersistenceQueryBuiltInAbstract extends PersistenceQueryAbstract implements PersistenceQueryBuiltIn {
 
 
-    public PersistenceQueryBuiltInAbstract(final ObjectSpecification specification, final long start, final long count) {
-        super(specification, start, count);
+    public PersistenceQueryBuiltInAbstract(final ObjectSpecification specification, final long ... range) {
+        super(specification, range);
     }
 
-    public PersistenceQueryBuiltInAbstract(final DataInputExtended input, final long start, final long count) throws IOException {
-        super(input, start, count);
+    public PersistenceQueryBuiltInAbstract(final DataInputExtended input, final long ... range) throws IOException {
+        super(input, range);
     }
     
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindAllInstances.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindAllInstances.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindAllInstances.java
index db70783..6f7c7c8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindAllInstances.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindAllInstances.java
@@ -31,15 +31,12 @@ public class PersistenceQueryFindAllInstances extends PersistenceQueryBuiltInAbs
     private long index;
     private long countedSoFar;
     
-    public PersistenceQueryFindAllInstances(final ObjectSpecification specification) {
-        this(specification, 0, 0);
-    }
-    
-    public PersistenceQueryFindAllInstances(final ObjectSpecification specification, final long start, final long count) {
-        super(specification, start, count);
+    public PersistenceQueryFindAllInstances(final ObjectSpecification specification, final long ... range) {
+        super(specification, range);
         index=0;
         countedSoFar=0;
     }
+    
 
     /**
      * Returns true so it matches all instances.
@@ -49,10 +46,10 @@ public class PersistenceQueryFindAllInstances extends PersistenceQueryBuiltInAbs
         if (getCount() == 0 && getStart() == 0){
             return true;
         }
-        if (index++ < getStart()){
+        if (index++ < start){
             return false;
         }
-        if (countedSoFar++ <getCount()){
+        if (countedSoFar++ < count){
             return true;
         }
         return false;

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByPattern.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByPattern.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByPattern.java
index c961540..a79e838 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByPattern.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByPattern.java
@@ -36,8 +36,8 @@ public class PersistenceQueryFindByPattern extends PersistenceQueryBuiltInAbstra
         return pattern;
     }
 
-    public PersistenceQueryFindByPattern(final ObjectSpecification specification, final ObjectAdapter pattern, final long start, final long count) {
-        super(specification, start, count);
+    public PersistenceQueryFindByPattern(final ObjectSpecification specification, final ObjectAdapter pattern, final long ... range) {
+        super(specification, range);
         this.pattern = pattern;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByTitle.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByTitle.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByTitle.java
index 121305b..175a071 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByTitle.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindByTitle.java
@@ -30,12 +30,8 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 public class PersistenceQueryFindByTitle extends PersistenceQueryBuiltInAbstract {
     private final String title;
 
-    public PersistenceQueryFindByTitle(final ObjectSpecification specification, final String title) {
-        this(specification, title, 0, 0);
-    }
-    
-    public PersistenceQueryFindByTitle(final ObjectSpecification specification, final String title, final long start, final long count) {
-        super(specification, start, count);
+    public PersistenceQueryFindByTitle(final ObjectSpecification specification, final String title, final long ... range) {
+        super(specification, range);
         this.title = title == null ? "" : title.toLowerCase();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindPaged.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindPaged.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindPaged.java
deleted file mode 100644
index bc745c7..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindPaged.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.core.runtime.persistence.query;
-
-import org.apache.isis.core.commons.lang.ToString;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-/**
- * Support fetching partial datasets from the datastore.
- *
- * @version $Rev$ $Date$
- */
-public class PersistenceQueryFindPaged extends PersistenceQueryBuiltInAbstract {
-    private final long start;
-    private final long count;
-    
-    private long index;
-    private long countedSoFar;
-    public PersistenceQueryFindPaged(final ObjectSpecification specification, final long start, final long count) {
-        super(specification, start, count);
-        this.start = start;
-        this.count = count;
-        index=0;
-        countedSoFar=0;
-    }
-
-
-    /**
-     * Spoofing the limit function for datastores that don't support it directly.
-     * 
-     * Returns true so it matches all instances.
-     */
-    @Override
-    public boolean matches(ObjectAdapter object) {
-        if (index++ < start){
-            return false;
-        }
-        if (countedSoFar++ <count){
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        final ToString str = ToString.createAnonymous(this);
-        str.append("spec", getSpecification().getShortIdentifier());
-        return str.toString();
-    }
-
-
-    /**
-     * The start index into the set table
-     * @return
-     */
-    public long getStart() {
-        return start;
-    }
-
-
-    /**
-     * The number of items to return, starting at {@link PersistenceQueryFindPaged#getStart()}
-     * @return
-     */
-    public long getCount() {
-        return count;
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQueryDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQueryDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQueryDefault.java
index 03dbda1..34ba62c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQueryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQueryDefault.java
@@ -41,16 +41,16 @@ public class PersistenceQueryFindUsingApplibQueryDefault extends PersistenceQuer
     private final QueryCardinality cardinality;
     private final Map<String, ObjectAdapter> argumentsAdaptersByParameterName;
 
-    public PersistenceQueryFindUsingApplibQueryDefault(final ObjectSpecification specification, final String queryName, final Map<String, ObjectAdapter> argumentsAdaptersByParameterName, final QueryCardinality cardinality, final long start, final long count) {
-        super(specification, start, count);
+    public PersistenceQueryFindUsingApplibQueryDefault(final ObjectSpecification specification, final String queryName, final Map<String, ObjectAdapter> argumentsAdaptersByParameterName, final QueryCardinality cardinality, final long ... range) {
+        super(specification, range);
         this.queryName = queryName;
         this.cardinality = cardinality;
         this.argumentsAdaptersByParameterName = argumentsAdaptersByParameterName;
         initialized();
     }
 
-    public PersistenceQueryFindUsingApplibQueryDefault(final DataInputExtended input, final long start, final long count) throws IOException {
-        super(input, start, count);
+    public PersistenceQueryFindUsingApplibQueryDefault(final DataInputExtended input, final long ... range) throws IOException {
+        super(input, range);
         this.queryName = input.readUTF();
         this.cardinality = QueryCardinality.valueOf(input.readUTF());
         // TODO: need to read from input

http://git-wip-us.apache.org/repos/asf/isis/blob/7ac25a60/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQuerySerializable.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQuerySerializable.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQuerySerializable.java
index e4ab9d5..080564d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQuerySerializable.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/query/PersistenceQueryFindUsingApplibQuerySerializable.java
@@ -37,14 +37,14 @@ public class PersistenceQueryFindUsingApplibQuerySerializable extends Persistenc
     private final QueryCardinality cardinality;
 
     public PersistenceQueryFindUsingApplibQuerySerializable(final ObjectSpecification specification, final Query<?> query, final QueryCardinality cardinality) {
-        super(specification, 0, 0);
+        super(specification, query.getStart(), query.getCount());
         this.query = query;
         this.cardinality = cardinality;
         initialized();
     }
 
-    public PersistenceQueryFindUsingApplibQuerySerializable(final DataInputExtended input) throws IOException {
-        super(input, 0, 0);
+    public PersistenceQueryFindUsingApplibQuerySerializable(final DataInputExtended input, final long ... range) throws IOException {
+        super(input, range);
         this.query = input.readSerializable(Query.class);
         this.cardinality = QueryCardinality.valueOf(input.readUTF());
         initialized();