/* * 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.data.provider; import com.vaadin.shared.data.sort.SortDirection; import com.vaadin.ui.Grid.Column; /** * Helper classes with fluent API for constructing {@link GridSortOrder} lists. * When the sort order is ready to be passed on, calling {@link #build()} will * create the list of sort orders. * * @see GridSortOrder * @see #thenAsc(Column) * @see #thenDesc(Column) * @see #build() * * @param <T> * the type of the grid * @since 8.0 */ public class GridSortOrderBuilder<T> extends SortOrderBuilder<GridSortOrder<T>, Column<T, ?>> { @Override public GridSortOrderBuilder<T> thenAsc(Column<T, ?> by) { return (GridSortOrderBuilder<T>) super.thenAsc(by); } @Override public GridSortOrderBuilder<T> thenDesc(Column<T, ?> by) { return (GridSortOrderBuilder<T>) super.thenDesc(by); } @Override protected GridSortOrder<T> createSortOrder(Column<T, ?> by, SortDirection direction) { return new GridSortOrder<>(by, direction); } }