001/* 002 * (C) Copyright 2013 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * Thomas Roger 018 */ 019 020package org.nuxeo.ecm.automation.core.util; 021 022import java.util.ArrayList; 023import java.util.Map; 024 025import org.nuxeo.ecm.platform.query.api.Aggregate; 026import org.nuxeo.ecm.platform.query.api.Bucket; 027import org.nuxeo.ecm.platform.query.api.PageProvider; 028 029/** 030 * Wraps a {@link org.nuxeo.ecm.platform.query.api.PageProvider}. 031 * 032 * @since 5.7.3 033 */ 034public class PaginablePageProvider<T> extends ArrayList<T> implements Paginable<T> { 035 036 private static final long serialVersionUID = 1L; 037 038 protected PageProvider<T> pageProvider; 039 040 public PaginablePageProvider(PageProvider<T> pageProvider) { 041 super(pageProvider.getCurrentPage()); 042 this.pageProvider = pageProvider; 043 } 044 045 @Override 046 public long getPageSize() { 047 return pageProvider.getPageSize(); 048 } 049 050 @Override 051 public long getMaxPageSize() { 052 return pageProvider.getMaxPageSize(); 053 } 054 055 @Override 056 public long getResultsCount() { 057 return pageProvider.getResultsCount(); 058 } 059 060 @Override 061 public long getNumberOfPages() { 062 return pageProvider.getNumberOfPages(); 063 } 064 065 @Override 066 public boolean isNextPageAvailable() { 067 return pageProvider.isNextPageAvailable(); 068 } 069 070 @Override 071 public boolean isLastPageAvailable() { 072 return pageProvider.isLastPageAvailable(); 073 } 074 075 @Override 076 public boolean isPreviousPageAvailable() { 077 return pageProvider.isPreviousPageAvailable(); 078 } 079 080 @Override 081 public long getCurrentPageSize() { 082 return pageProvider.getCurrentPageSize(); 083 } 084 085 @Override 086 public long getCurrentPageIndex() { 087 return pageProvider.getCurrentPageIndex(); 088 } 089 090 @Override 091 public boolean isSortable() { 092 return pageProvider.isSortable(); 093 } 094 095 @Override 096 public boolean hasError() { 097 return pageProvider.hasError(); 098 } 099 100 @Override 101 public String getErrorMessage() { 102 return pageProvider.getErrorMessage(); 103 } 104 105 @Override 106 public Map<String, Aggregate<? extends Bucket>> getAggregates() { 107 return pageProvider.getAggregates(); 108 } 109 110 @Override 111 public boolean hasAggregateSupport() { 112 return pageProvider.hasAggregateSupport(); 113 } 114}