/******************************************************************************* * Copyright (c) 2011 GitHub Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Kevin Sawicki (GitHub Inc.) - initial API and implementation *******************************************************************************/ package org.eclipse.egit.github.core.client; import static org.eclipse.egit.github.core.client.IGitHubConstants.PARAM_PAGE; import static org.eclipse.egit.github.core.client.IGitHubConstants.PARAM_PER_PAGE; import org.eclipse.egit.github.core.util.UrlUtils; /** * Paged request class that contains the initial page size and page number of * the request. * * @param <V> */ public class PagedRequest<V> extends GitHubRequest { /** * First page */ public static final int PAGE_FIRST = 1; /** * Default page size */ public static final int PAGE_SIZE = 100; private final int pageSize; private final int page; /** * Create paged request with default size */ public PagedRequest() { this(PAGE_FIRST, PAGE_SIZE); } /** * Create paged request with given starting page and page size. * * @param start * @param size */ public PagedRequest(int start, int size) { page = start; pageSize = size; } /** * Get initial page size * * @return pageSize */ public int getPageSize() { return pageSize; } @Override protected void addParams(final StringBuilder uri) { super.addParams(uri); final int size = getPageSize(); if (size > 0) UrlUtils.addParam(PARAM_PER_PAGE, Integer.toString(size), uri); final int number = getPage(); if (number > 0) UrlUtils.addParam(PARAM_PAGE, Integer.toString(number), uri); } /** * Get initial page number * * @return page */ public int getPage() { return page; } }