001/*
002 * Copyright 2012-2017 the original author or authors.
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
017package org.springframework.boot.autoconfigure.data.web;
018
019import org.springframework.boot.context.properties.ConfigurationProperties;
020
021/**
022 * Configuration properties for Spring Data Web.
023 *
024 * @author Vedran Pavic
025 * @since 2.0.0
026 */
027@ConfigurationProperties("spring.data.web")
028public class SpringDataWebProperties {
029
030        private final Pageable pageable = new Pageable();
031
032        private final Sort sort = new Sort();
033
034        public Pageable getPageable() {
035                return this.pageable;
036        }
037
038        public Sort getSort() {
039                return this.sort;
040        }
041
042        /**
043         * Pageable properties.
044         */
045        public static class Pageable {
046
047                /**
048                 * Page index parameter name.
049                 */
050                private String pageParameter = "page";
051
052                /**
053                 * Page size parameter name.
054                 */
055                private String sizeParameter = "size";
056
057                /**
058                 * Whether to expose and assume 1-based page number indexes. Defaults to "false",
059                 * meaning a page number of 0 in the request equals the first page.
060                 */
061                private boolean oneIndexedParameters = false;
062
063                /**
064                 * General prefix to be prepended to the page number and page size parameters.
065                 */
066                private String prefix = "";
067
068                /**
069                 * Delimiter to be used between the qualifier and the actual page number and size
070                 * properties.
071                 */
072                private String qualifierDelimiter = "_";
073
074                /**
075                 * Default page size.
076                 */
077                private int defaultPageSize = 20;
078
079                /**
080                 * Maximum page size to be accepted.
081                 */
082                private int maxPageSize = 2000;
083
084                public String getPageParameter() {
085                        return this.pageParameter;
086                }
087
088                public void setPageParameter(String pageParameter) {
089                        this.pageParameter = pageParameter;
090                }
091
092                public String getSizeParameter() {
093                        return this.sizeParameter;
094                }
095
096                public void setSizeParameter(String sizeParameter) {
097                        this.sizeParameter = sizeParameter;
098                }
099
100                public boolean isOneIndexedParameters() {
101                        return this.oneIndexedParameters;
102                }
103
104                public void setOneIndexedParameters(boolean oneIndexedParameters) {
105                        this.oneIndexedParameters = oneIndexedParameters;
106                }
107
108                public String getPrefix() {
109                        return this.prefix;
110                }
111
112                public void setPrefix(String prefix) {
113                        this.prefix = prefix;
114                }
115
116                public String getQualifierDelimiter() {
117                        return this.qualifierDelimiter;
118                }
119
120                public void setQualifierDelimiter(String qualifierDelimiter) {
121                        this.qualifierDelimiter = qualifierDelimiter;
122                }
123
124                public int getDefaultPageSize() {
125                        return this.defaultPageSize;
126                }
127
128                public void setDefaultPageSize(int defaultPageSize) {
129                        this.defaultPageSize = defaultPageSize;
130                }
131
132                public int getMaxPageSize() {
133                        return this.maxPageSize;
134                }
135
136                public void setMaxPageSize(int maxPageSize) {
137                        this.maxPageSize = maxPageSize;
138                }
139
140        }
141
142        /**
143         * Sort properties.
144         */
145        public static class Sort {
146
147                /**
148                 * Sort parameter name.
149                 */
150                private String sortParameter = "sort";
151
152                public String getSortParameter() {
153                        return this.sortParameter;
154                }
155
156                public void setSortParameter(String sortParameter) {
157                        this.sortParameter = sortParameter;
158                }
159
160        }
161
162}