From d2ce5362fffe4d85b95762a02f5e68a980af7789 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Tue, 29 Nov 2016 12:31:06 +0200 Subject: Rename FilteringDataProviderWrapper to DataProviderWrapper Change-Id: If4f0237f6116482b06fe7f2245433822f427e093 --- .../server/data/AppendableFilterDataProvider.java | 2 +- .../java/com/vaadin/server/data/DataProvider.java | 4 +- .../vaadin/server/data/DataProviderWrapper.java | 211 +++++++++++++++++++++ .../server/data/FilteringDataProviderWrapper.java | 211 --------------------- 4 files changed, 214 insertions(+), 214 deletions(-) create mode 100644 server/src/main/java/com/vaadin/server/data/DataProviderWrapper.java delete mode 100644 server/src/main/java/com/vaadin/server/data/FilteringDataProviderWrapper.java (limited to 'server/src/main/java/com') diff --git a/server/src/main/java/com/vaadin/server/data/AppendableFilterDataProvider.java b/server/src/main/java/com/vaadin/server/data/AppendableFilterDataProvider.java index b6c57f03da..871365bf48 100644 --- a/server/src/main/java/com/vaadin/server/data/AppendableFilterDataProvider.java +++ b/server/src/main/java/com/vaadin/server/data/AppendableFilterDataProvider.java @@ -40,7 +40,7 @@ public interface AppendableFilterDataProvider extends DataProvider { */ public default AppendableFilterDataProvider applyFilter(F filter) { Objects.requireNonNull(filter, "The applied filter can't be null"); - return FilteringDataProviderWrapper.chain(this, filter); + return DataProviderWrapper.chain(this, filter); } /** diff --git a/server/src/main/java/com/vaadin/server/data/DataProvider.java b/server/src/main/java/com/vaadin/server/data/DataProvider.java index a373128358..ef71378b8f 100644 --- a/server/src/main/java/com/vaadin/server/data/DataProvider.java +++ b/server/src/main/java/com/vaadin/server/data/DataProvider.java @@ -101,7 +101,7 @@ public interface DataProvider extends Serializable { */ public default DataProvider setFilter(F filter) { Objects.requireNonNull(filter, "Filter can't be null"); - return FilteringDataProviderWrapper.filter(this, filter); + return DataProviderWrapper.filter(this, filter); } /** @@ -135,7 +135,7 @@ public interface DataProvider extends Serializable { public default DataProvider convertFilter( SerializableFunction mapper) { Objects.requireNonNull(mapper, "Filter mapper can't be null"); - return FilteringDataProviderWrapper.convert(this, mapper); + return DataProviderWrapper.convert(this, mapper); } /** diff --git a/server/src/main/java/com/vaadin/server/data/DataProviderWrapper.java b/server/src/main/java/com/vaadin/server/data/DataProviderWrapper.java new file mode 100644 index 0000000000..4bbb83b84c --- /dev/null +++ b/server/src/main/java/com/vaadin/server/data/DataProviderWrapper.java @@ -0,0 +1,211 @@ +/* + * Copyright 2000-2016 Vaadin Ltd. + * + * Licensed 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 com.vaadin.server.data; + +import java.util.stream.Stream; + +import com.vaadin.server.SerializableFunction; +import com.vaadin.shared.Registration; + +/** + * Wrapper class for modifying, chaining and replacing filters and sorting in a + * query. Used to create a suitable {@link Query} for the underlying data + * provider with correct filters and sorting. + * + * @author Vaadin Ltd. + * @since + * + * @param + * data provider data type + * @param + * wrapper query filter type + * @param + * underlying data provider filter type + */ +public abstract class DataProviderWrapper + implements DataProvider { + + /** + * Variant of data provider wrapper that supports chaining filters. + * + * @param + * the data provider data type + * @param + * the data provider filter type + */ + protected abstract static class AppendableFilterDataProviderWrapper + extends DataProviderWrapper + implements AppendableFilterDataProvider { + + /** + * Constructs a filtering wrapper for a data provider with filter + * chaining. + * + * @param dataProvider + * the wrapped data provider + */ + protected AppendableFilterDataProviderWrapper( + AppendableFilterDataProvider dataProvider) { + super(dataProvider); + } + + @Override + public F combineFilters(F filter1, F filter2) { + return ((AppendableFilterDataProvider) dataProvider) + .combineFilters(filter1, filter2); + } + } + + /** + * The actual data provider behind this wrapper. + */ + protected DataProvider dataProvider; + + /** + * Constructs a filtering wrapper for a data provider. + * + * @param dataProvider + * the wrapped data provider + */ + protected DataProviderWrapper(DataProvider dataProvider) { + this.dataProvider = dataProvider; + } + + @Override + public boolean isInMemory() { + return dataProvider.isInMemory(); + } + + @Override + public void refreshAll() { + dataProvider.refreshAll(); + } + + @Override + public Registration addDataProviderListener(DataProviderListener listener) { + return dataProvider.addDataProviderListener(listener); + } + + @Override + public int size(Query t) { + return dataProvider.size(new Query<>(t.getOffset(), t.getLimit(), + t.getSortOrders(), t.getInMemorySorting(), getFilter(t))); + } + + @Override + public Stream fetch(Query t) { + return dataProvider.fetch(new Query<>(t.getOffset(), t.getLimit(), + t.getSortOrders(), t.getInMemorySorting(), getFilter(t))); + } + + /** + * Gets the filter that should be used in the modified Query. + * + * @param query + * the current query + * @return filter for the modified Query + */ + protected abstract M getFilter(Query query); + + /** + * Creates a data provider wrapper with a static filter set to each Query. + * This {@code DataProvider} will deliberately ignore any possible filters + * from the Query. + * + * @see DataProvider#setFilter(Object) + * + * @param dataProvider + * the underlying data provider + * @param filter + * the static filter for each query + * + * @param + * data provider data type + * @param + * query filter type + * + * @return wrapped data provider with static filter + */ + public static DataProvider filter( + DataProvider dataProvider, F filter) { + return new DataProviderWrapper(dataProvider) { + + @Override + protected F getFilter(Query query) { + return filter; + } + }; + } + + /** + * Creates a data provider wrapper with filter type mapping. The mapper + * function will be applied to a query filter if it is present. + * + * @see DataProvider#convertFilter(SerializableFunction) + * + * @param dataProvider + * the underlying data provider + * @param mapper + * the function to map from one filter type to another + * + * @param + * data provider data type + * @param + * wrapper query filter type + * @param + * underlying data provider filter type + * + * @return wrapped data provider with filter conversion + */ + public static DataProvider convert( + DataProvider dataProvider, + SerializableFunction mapper) { + return new DataProviderWrapper(dataProvider) { + + @Override + protected M getFilter(Query query) { + return query.getFilter().map(mapper).orElse(null); + } + }; + } + + /** + * Creates a data provider wrapper with a chained filter. The filter will be + * combined to existing filters using + * {@link AppendableFilterDataProvider#combineFilters(Object, java.util.Optional)}. + * + * @param dataProvider + * the underlying data provider + * @param filter + * the chained filter + * + * @param + * data provider data type + * @param + * query filter type + * @return wrapped data provider with chained filter + */ + public static AppendableFilterDataProvider chain( + AppendableFilterDataProvider dataProvider, F filter) { + return new AppendableFilterDataProviderWrapper(dataProvider) { + + @Override + protected F getFilter(Query query) { + return combineFilters(filter, query.getFilter()); + } + }; + } +} diff --git a/server/src/main/java/com/vaadin/server/data/FilteringDataProviderWrapper.java b/server/src/main/java/com/vaadin/server/data/FilteringDataProviderWrapper.java deleted file mode 100644 index b888fd79c7..0000000000 --- a/server/src/main/java/com/vaadin/server/data/FilteringDataProviderWrapper.java +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright 2000-2016 Vaadin Ltd. - * - * Licensed 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 com.vaadin.server.data; - -import java.util.stream.Stream; - -import com.vaadin.server.SerializableFunction; -import com.vaadin.shared.Registration; - -/** - * Wrapper class for modifying, chaining and replacing filters in a query. Used - * to create a suitable {@link Query} for the underlying data provider with - * correct filters. - * - * @author Vaadin Ltd. - * @since - * - * @param - * data provider data type - * @param - * wrapper query filter type - * @param - * underlying data provider filter type - */ -public abstract class FilteringDataProviderWrapper - implements DataProvider { - - /** - * Variant of data provider wrapper that supports chaining filters. - * - * @param - * the data provider data type - * @param - * the data provider filter type - */ - protected abstract static class AppendableFilterDataProviderWrapper - extends FilteringDataProviderWrapper - implements AppendableFilterDataProvider { - - /** - * Constructs a filtering wrapper for a data provider with filter - * chaining. - * - * @param dataProvider - * the wrapped data provider - */ - protected AppendableFilterDataProviderWrapper( - AppendableFilterDataProvider dataProvider) { - super(dataProvider); - } - - @Override - public F combineFilters(F filter1, F filter2) { - return ((AppendableFilterDataProvider) dataProvider) - .combineFilters(filter1, filter2); - } - } - - /** - * The actual data provider behind this wrapper. - */ - protected DataProvider dataProvider; - - /** - * Constructs a filtering wrapper for a data provider. - * - * @param dataProvider - * the wrapped data provider - */ - protected FilteringDataProviderWrapper(DataProvider dataProvider) { - this.dataProvider = dataProvider; - } - - @Override - public boolean isInMemory() { - return dataProvider.isInMemory(); - } - - @Override - public void refreshAll() { - dataProvider.refreshAll(); - } - - @Override - public Registration addDataProviderListener(DataProviderListener listener) { - return dataProvider.addDataProviderListener(listener); - } - - @Override - public int size(Query t) { - return dataProvider.size(new Query<>(t.getOffset(), t.getLimit(), - t.getSortOrders(), t.getInMemorySorting(), getFilter(t))); - } - - @Override - public Stream fetch(Query t) { - return dataProvider.fetch(new Query<>(t.getOffset(), t.getLimit(), - t.getSortOrders(), t.getInMemorySorting(), getFilter(t))); - } - - /** - * Gets the filter that should be used in the modified Query. - * - * @param query - * the current query - * @return filter for the modified Query - */ - protected abstract M getFilter(Query query); - - /** - * Creates a data provider wrapper with a static filter set to each Query. - * This {@code DataProvider} will deliberately ignore any possible filters - * from the Query. - * - * @see DataProvider#setFilter(Object) - * - * @param dataProvider - * the underlying data provider - * @param filter - * the static filter for each query - * - * @param - * data provider data type - * @param - * query filter type - * - * @return wrapped data provider with static filter - */ - public static DataProvider filter( - DataProvider dataProvider, F filter) { - return new FilteringDataProviderWrapper(dataProvider) { - - @Override - protected F getFilter(Query query) { - return filter; - } - }; - } - - /** - * Creates a data provider wrapper with filter type mapping. The mapper - * function will be applied to a query filter if it is present. - * - * @see DataProvider#convertFilter(SerializableFunction) - * - * @param dataProvider - * the underlying data provider - * @param mapper - * the function to map from one filter type to another - * - * @param - * data provider data type - * @param - * wrapper query filter type - * @param - * underlying data provider filter type - * - * @return wrapped data provider with filter conversion - */ - public static DataProvider convert( - DataProvider dataProvider, - SerializableFunction mapper) { - return new FilteringDataProviderWrapper(dataProvider) { - - @Override - protected M getFilter(Query query) { - return query.getFilter().map(mapper).orElse(null); - } - }; - } - - /** - * Creates a data provider wrapper with a chained filter. The filter will be - * combined to existing filters using - * {@link AppendableFilterDataProvider#combineFilters(Object, java.util.Optional)}. - * - * @param dataProvider - * the underlying data provider - * @param filter - * the chained filter - * - * @param - * data provider data type - * @param - * query filter type - * @return wrapped data provider with chained filter - */ - public static AppendableFilterDataProvider chain( - AppendableFilterDataProvider dataProvider, F filter) { - return new AppendableFilterDataProviderWrapper(dataProvider) { - - @Override - protected F getFilter(Query query) { - return combineFilters(filter, query.getFilter()); - } - }; - } -} -- cgit v1.2.3