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 * dmetzler 018 */ 019package org.nuxeo.ecm.automation.jaxrs.io.documents; 020 021import java.util.ArrayList; 022import java.util.List; 023import java.util.Map; 024 025import org.nuxeo.ecm.automation.core.util.Paginable; 026import org.nuxeo.ecm.platform.query.api.Aggregate; 027import org.nuxeo.ecm.platform.query.api.Bucket; 028import org.nuxeo.ecm.platform.query.api.QuickFilter; 029 030/** 031 * Paginable object that uses a delegate to handle pagination. 032 * 033 * @since 5.8 034 */ 035public class PaginableWithDelegate<T> extends ArrayList<T> implements Paginable<T> { 036 037 private static final long serialVersionUID = 1L; 038 039 private Paginable<T> delegate; 040 041 /** 042 * @param delegate 043 */ 044 public PaginableWithDelegate(Paginable<T> delegate) { 045 this.delegate = delegate; 046 } 047 048 @Override 049 public long getPageSize() { 050 return delegate.getPageSize(); 051 } 052 053 @Override 054 public long getMaxPageSize() { 055 return delegate.getMaxPageSize(); 056 } 057 058 @Override 059 public long getResultsCount() { 060 return delegate.getResultsCount(); 061 } 062 063 @Override 064 public long getNumberOfPages() { 065 return delegate.getNumberOfPages(); 066 } 067 068 @Override 069 public boolean isNextPageAvailable() { 070 return delegate.isNextPageAvailable(); 071 } 072 073 @Override 074 public boolean isLastPageAvailable() { 075 return delegate.isLastPageAvailable(); 076 } 077 078 @Override 079 public boolean isPreviousPageAvailable() { 080 return delegate.isPreviousPageAvailable(); 081 } 082 083 @Override 084 public long getCurrentPageSize() { 085 return delegate.getCurrentPageSize(); 086 } 087 088 @Override 089 public long getCurrentPageIndex() { 090 return delegate.getCurrentPageIndex(); 091 } 092 093 @Override 094 public boolean isSortable() { 095 return delegate.isSortable(); 096 } 097 098 @Override 099 public boolean hasError() { 100 return delegate.hasError(); 101 } 102 103 @Override 104 public String getErrorMessage() { 105 return delegate.getErrorMessage(); 106 } 107 108 @Override 109 public Map<String, Aggregate<? extends Bucket>> getAggregates() { 110 return delegate.getAggregates(); 111 } 112 113 @Override 114 public boolean hasAggregateSupport() { 115 return delegate.hasAggregateSupport(); 116 } 117 118 @Override 119 public List<QuickFilter> getActiveQuickFilters() { 120 return delegate.getActiveQuickFilters(); 121 } 122 123 @Override 124 public List<QuickFilter> getAvailableQuickFilters() { 125 return delegate.getAvailableQuickFilters(); 126 } 127 128 @Override 129 public long getCurrentPageOffset() { 130 return delegate.getCurrentPageOffset(); 131 } 132 133 @Override 134 public long getResultsCountLimit() { 135 return delegate.getResultsCountLimit(); 136 } 137 138}