001/*
002 * Copyright (c) 2011-2019 Nexmo Inc
003 *
004 * Permission is hereby granted, free of charge, to any person obtaining a copy
005 * of this software and associated documentation files (the "Software"), to deal
006 * in the Software without restriction, including without limitation the rights
007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
008 * copies of the Software, and to permit persons to whom the Software is
009 * furnished to do so, subject to the following conditions:
010 *
011 * The above copyright notice and this permission notice shall be included in
012 * all copies or substantial portions of the Software.
013 *
014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
020 * THE SOFTWARE.
021 */
022package com.nexmo.client.application;
023
024public class ListApplicationRequest {
025    private long pageSize;
026    private long page;
027
028    private ListApplicationRequest(Builder builder) {
029        this.pageSize = builder.pageSize;
030        this.page = builder.page;
031    }
032
033    public long getPageSize() {
034        return pageSize;
035    }
036
037    public long getPage() {
038        return page;
039    }
040
041    public static Builder builder() {
042        return new Builder();
043    }
044
045    public static class Builder {
046        private long pageSize;
047        private long page;
048
049        /**
050         * @param pageSize The number of applications per page.
051         *
052         * @return The {@link Builder} to keep building.
053         */
054        public Builder pageSize(long pageSize) {
055            this.pageSize = pageSize;
056            return this;
057        }
058
059        /**
060         * @param page The current page number, starts at 1.
061         *
062         * @return The {@link Builder} to keep building.
063         */
064        public Builder page(long page) {
065            this.page = page;
066            return this;
067        }
068
069        /**
070         * @return A new {@link ListApplicationRequest} from the stored configuration.
071         */
072        public ListApplicationRequest build() {
073            return new ListApplicationRequest(this);
074        }
075    }
076}