From ce88f6fd1b0ac1dd12337762c59c1cda450e6b11 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Tue, 12 Jul 2016 19:02:29 +0300 Subject: [PATCH] Add method to DataSource for checking if data is in memory Change-Id: I7b14870a3eddb477e629f61691e060ea42325aea --- .../server/communication/data/DataCommunicator.java | 2 +- .../tokka/server/communication/data/DataSource.java | 10 ++++++++-- .../server/communication/data/InMemoryDataSource.java | 5 +++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/vaadin/tokka/server/communication/data/DataCommunicator.java b/server/src/main/java/com/vaadin/tokka/server/communication/data/DataCommunicator.java index dc957f6abd..e5d3269641 100644 --- a/server/src/main/java/com/vaadin/tokka/server/communication/data/DataCommunicator.java +++ b/server/src/main/java/com/vaadin/tokka/server/communication/data/DataCommunicator.java @@ -215,7 +215,7 @@ public class DataCommunicator extends AbstractExtension { Stream rowsToPush; - if (getDataSource() instanceof InMemoryDataSource) { + if (getDataSource().isInMemory()) { // We can safely request all the data when in memory // FIXME: sorted and filter. rowsToPush = getDataSource().apply(new Query()).skip(offset) diff --git a/server/src/main/java/com/vaadin/tokka/server/communication/data/DataSource.java b/server/src/main/java/com/vaadin/tokka/server/communication/data/DataSource.java index 38a195e953..17f0355bd2 100644 --- a/server/src/main/java/com/vaadin/tokka/server/communication/data/DataSource.java +++ b/server/src/main/java/com/vaadin/tokka/server/communication/data/DataSource.java @@ -21,8 +21,6 @@ import java.util.Collection; import java.util.function.Function; import java.util.stream.Stream; -import com.vaadin.tokka.event.Registration; - /** * Minimal DataSource API for communication between the DataProvider and a back * end service. @@ -45,6 +43,14 @@ public interface DataSource extends Function>, */ DataSource sortingBy(SORT sortOrder); + /** + * Gets whether the DataSource content all available in memory or does it + * use some external backend. + * + * @return {@code true} if all data is in memory; {@code false} if not + */ + boolean isInMemory(); + /** * This method creates a new {@link InMemoryDataSource} from a given * Collection. The InMemoryDataSource creates a protective List copy of all diff --git a/server/src/main/java/com/vaadin/tokka/server/communication/data/InMemoryDataSource.java b/server/src/main/java/com/vaadin/tokka/server/communication/data/InMemoryDataSource.java index 49ca85d403..b5dc0734c2 100644 --- a/server/src/main/java/com/vaadin/tokka/server/communication/data/InMemoryDataSource.java +++ b/server/src/main/java/com/vaadin/tokka/server/communication/data/InMemoryDataSource.java @@ -72,4 +72,9 @@ public class InMemoryDataSource implements DataSource> { Function sortOrder) { return sortingBy(Comparator.comparing(sortOrder)); } + + @Override + public boolean isInMemory() { + return true; + } } -- 2.39.5