001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.juneau.bean.jsonschema;
018
019import java.util.*;
020
021/**
022 * Convenience class for representing a property that's an array of simple types.
023 *
024 * <p>
025 * An instance of this object is equivalent to calling...
026 *
027 * <p class='bjava'>
028 *    JsonSchemaProperty <jv>property</jv> = <jk>new</jk> JsonSchemaProperty(<jv>name</jv>)
029 *       .setType(JsonType.<jsf>ARRAY</jsf>)
030 *       .setItems(
031 *          <jk>new</jk> JsonSchema().setType(<jv>elementType</jv>)
032 *       );
033 * </p>
034 */
035public class JsonSchemaPropertySimpleArray extends JsonSchemaProperty {
036
037   /**
038    * Constructor.
039    *
040    * @param name The name of the schema property.
041    * @param elementType The JSON type of the elements in the array.
042    */
043   public JsonSchemaPropertySimpleArray(String name, JsonType elementType) {
044      setName(name);
045      setType(JsonType.ARRAY);
046      setItems(new JsonSchema().setType(elementType));
047   }
048
049   @Override /* Overridden from JsonSchemaProperty */
050   public JsonSchemaPropertySimpleArray addAdditionalItems(JsonSchema...additionalItems) {
051      super.addAdditionalItems(additionalItems);
052      return this;
053   }
054
055   @Override /* Overridden from JsonSchemaProperty */
056   public JsonSchemaPropertySimpleArray addAllOf(JsonSchema...allOf) {
057      super.addAllOf(allOf);
058      return this;
059   }
060
061   @Override /* Overridden from JsonSchemaProperty */
062   public JsonSchemaPropertySimpleArray addAnyOf(JsonSchema...anyOf) {
063      super.addAnyOf(anyOf);
064      return this;
065   }
066
067   @Override /* Overridden from JsonSchemaProperty */
068   public JsonSchemaPropertySimpleArray addDef(String name, JsonSchema def) {
069      super.addDef(name, def);
070      return this;
071   }
072
073   @Override /* Overridden from JsonSchemaProperty */
074   public JsonSchemaPropertySimpleArray addDefinition(String name, JsonSchema definition) {
075      super.addDefinition(name, definition);
076      return this;
077   }
078
079   @Override /* Overridden from JsonSchemaProperty */
080   public JsonSchemaPropertySimpleArray addDependency(String name, JsonSchema dependency) {
081      super.addDependency(name, dependency);
082      return this;
083   }
084
085   @Override /* Overridden from JsonSchemaProperty */
086   public JsonSchemaPropertySimpleArray addDependentRequired(String name, List<String> required) {
087      super.addDependentRequired(name, required);
088      return this;
089   }
090
091   @Override /* Overridden from JsonSchemaProperty */
092   public JsonSchemaPropertySimpleArray addDependentSchema(String name, JsonSchema schema) {
093      super.addDependentSchema(name, schema);
094      return this;
095   }
096
097   @Override /* Overridden from JsonSchemaProperty */
098   public JsonSchemaPropertySimpleArray addEnum(Object...enum_) {
099      super.addEnum(enum_);
100      return this;
101   }
102
103   @Override /* Overridden from JsonSchemaProperty */
104   public JsonSchemaPropertySimpleArray addExamples(Object...examples) {
105      super.addExamples(examples);
106      return this;
107   }
108
109   @Override /* Overridden from JsonSchemaProperty */
110   public JsonSchemaPropertySimpleArray addItems(JsonSchema...items) {
111      super.addItems(items);
112      return this;
113   }
114
115   @Override /* Overridden from JsonSchemaProperty */
116   public JsonSchemaPropertySimpleArray addOneOf(JsonSchema...oneOf) {
117      super.addOneOf(oneOf);
118      return this;
119   }
120
121   @Override /* Overridden from JsonSchemaProperty */
122   public JsonSchemaPropertySimpleArray addPatternProperties(JsonSchemaProperty...properties) {
123      super.addPatternProperties(properties);
124      return this;
125   }
126
127   @Override /* Overridden from JsonSchemaProperty */
128   public JsonSchemaPropertySimpleArray addPrefixItems(JsonSchema...prefixItems) {
129      super.addPrefixItems(prefixItems);
130      return this;
131   }
132
133   @Override /* Overridden from JsonSchemaProperty */
134   public JsonSchemaPropertySimpleArray addProperties(JsonSchema...properties) {
135      super.addProperties(properties);
136      return this;
137   }
138
139   @Override /* Overridden from JsonSchemaProperty */
140   public JsonSchemaPropertySimpleArray addRequired(JsonSchemaProperty...properties) {
141      super.addRequired(properties);
142      return this;
143   }
144
145   @Override /* Overridden from JsonSchemaProperty */
146   public JsonSchemaPropertySimpleArray addRequired(List<String> required) {
147      super.addRequired(required);
148      return this;
149   }
150
151   @Override /* Overridden from JsonSchemaProperty */
152   public JsonSchemaPropertySimpleArray addRequired(String...required) {
153      super.addRequired(required);
154      return this;
155   }
156
157   @Override /* Overridden from JsonSchemaProperty */
158   public JsonSchemaPropertySimpleArray addTypes(JsonType...types) {
159      super.addTypes(types);
160      return this;
161   }
162
163   @Override /* Overridden from JsonSchemaProperty */
164   public JsonSchemaPropertySimpleArray setAllOf(List<JsonSchema> allOf) {
165      super.setAllOf(allOf);
166      return this;
167   }
168
169   @Override /* Overridden from JsonSchemaProperty */
170   public JsonSchemaPropertySimpleArray setAnyOf(List<JsonSchema> anyOf) {
171      super.setAnyOf(anyOf);
172      return this;
173   }
174
175   @Override /* Overridden from JsonSchemaProperty */
176   public JsonSchemaPropertySimpleArray setConst(Object const_) {
177      super.setConst(const_);
178      return this;
179   }
180
181   @Override /* Overridden from JsonSchemaProperty */
182   public JsonSchemaPropertySimpleArray setContentEncoding(String contentEncoding) {
183      super.setContentEncoding(contentEncoding);
184      return this;
185   }
186
187   @Override /* Overridden from JsonSchemaProperty */
188   public JsonSchemaPropertySimpleArray setContentMediaType(String contentMediaType) {
189      super.setContentMediaType(contentMediaType);
190      return this;
191   }
192
193   @Override /* Overridden from JsonSchemaProperty */
194   public JsonSchemaPropertySimpleArray setDefinitions(Map<String,JsonSchema> definitions) {
195      super.setDefinitions(definitions);
196      return this;
197   }
198
199   @Override /* Overridden from JsonSchemaProperty */
200   public JsonSchemaPropertySimpleArray setDependencies(Map<String,JsonSchema> dependencies) {
201      super.setDependencies(dependencies);
202      return this;
203   }
204
205   @Override /* Overridden from JsonSchemaProperty */
206   public JsonSchemaPropertySimpleArray setDependentRequired(Map<String,List<String>> dependentRequired) {
207      super.setDependentRequired(dependentRequired);
208      return this;
209   }
210
211   @Override /* Overridden from JsonSchemaProperty */
212   public JsonSchemaPropertySimpleArray setDependentSchemas(Map<String,JsonSchema> dependentSchemas) {
213      super.setDependentSchemas(dependentSchemas);
214      return this;
215   }
216
217   @Override /* Overridden from JsonSchemaProperty */
218   public JsonSchemaPropertySimpleArray setDescription(String description) {
219      super.setDescription(description);
220      return this;
221   }
222
223   @Override /* Overridden from JsonSchemaProperty */
224   public JsonSchemaPropertySimpleArray setEnum(List<Object> enum_) {
225      super.setEnum(enum_);
226      return this;
227   }
228
229   @Override /* Overridden from JsonSchemaProperty */
230   public JsonSchemaPropertySimpleArray setExamples(List<Object> examples) {
231      super.setExamples(examples);
232      return this;
233   }
234
235   @Override /* Overridden from JsonSchemaProperty */
236   public JsonSchemaPropertySimpleArray setExclusiveMaximum(Number exclusiveMaximum) {
237      super.setExclusiveMaximum(exclusiveMaximum);
238      return this;
239   }
240
241   @Override /* Overridden from JsonSchemaProperty */
242   public JsonSchemaPropertySimpleArray setExclusiveMinimum(Number exclusiveMinimum) {
243      super.setExclusiveMinimum(exclusiveMinimum);
244      return this;
245   }
246
247   @Override /* Overridden from JsonSchemaProperty */
248   public JsonSchemaPropertySimpleArray setId(Object id) {
249      super.setId(id);
250      return this;
251   }
252
253   @Override /* Overridden from JsonSchemaProperty */
254   public JsonSchemaPropertySimpleArray setMaximum(Number maximum) {
255      super.setMaximum(maximum);
256      return this;
257   }
258
259   @Override /* Overridden from JsonSchemaProperty */
260   public JsonSchemaPropertySimpleArray setMaxItems(Integer maxItems) {
261      super.setMaxItems(maxItems);
262      return this;
263   }
264
265   @Override /* Overridden from JsonSchemaProperty */
266   public JsonSchemaPropertySimpleArray setMaxLength(Integer maxLength) {
267      super.setMaxLength(maxLength);
268      return this;
269   }
270
271   @Override /* Overridden from JsonSchemaProperty */
272   public JsonSchemaPropertySimpleArray setMaxProperties(Integer maxProperties) {
273      super.setMaxProperties(maxProperties);
274      return this;
275   }
276
277   @Override /* Overridden from JsonSchemaProperty */
278   public JsonSchemaPropertySimpleArray setMinimum(Number minimum) {
279      super.setMinimum(minimum);
280      return this;
281   }
282
283   @Override /* Overridden from JsonSchemaProperty */
284   public JsonSchemaPropertySimpleArray setMinItems(Integer minItems) {
285      super.setMinItems(minItems);
286      return this;
287   }
288
289   @Override /* Overridden from JsonSchemaProperty */
290   public JsonSchemaPropertySimpleArray setMinLength(Integer minLength) {
291      super.setMinLength(minLength);
292      return this;
293   }
294
295   @Override /* Overridden from JsonSchemaProperty */
296   public JsonSchemaPropertySimpleArray setMinProperties(Integer minProperties) {
297      super.setMinProperties(minProperties);
298      return this;
299   }
300
301   @Override /* Overridden from JsonSchemaProperty */
302   public JsonSchemaPropertySimpleArray setMultipleOf(Number multipleOf) {
303      super.setMultipleOf(multipleOf);
304      return this;
305   }
306
307   @Override /* Overridden from JsonSchemaProperty */
308   public JsonSchemaPropertySimpleArray setName(String name) {
309      super.setName(name);
310      return this;
311   }
312
313   @Override /* Overridden from JsonSchemaProperty */
314   public JsonSchemaPropertySimpleArray setNot(JsonSchema not) {
315      super.setNot(not);
316      return this;
317   }
318
319   @Override /* Overridden from JsonSchemaProperty */
320   public JsonSchemaPropertySimpleArray setOneOf(List<JsonSchema> oneOf) {
321      super.setOneOf(oneOf);
322      return this;
323   }
324
325   @Override /* Overridden from JsonSchemaProperty */
326   public JsonSchemaPropertySimpleArray setPattern(String pattern) {
327      super.setPattern(pattern);
328      return this;
329   }
330
331   @Override /* Overridden from JsonSchemaProperty */
332   public JsonSchemaPropertySimpleArray setPatternProperties(Map<String,JsonSchema> patternProperties) {
333      super.setPatternProperties(patternProperties);
334      return this;
335   }
336
337   @Override /* Overridden from JsonSchemaProperty */
338   public JsonSchemaPropertySimpleArray setPrefixItems(JsonSchemaArray prefixItems) {
339      super.setPrefixItems(prefixItems);
340      return this;
341   }
342
343   @Override /* Overridden from JsonSchemaProperty */
344   public JsonSchemaPropertySimpleArray setProperties(Map<String,JsonSchema> properties) {
345      super.setProperties(properties);
346      return this;
347   }
348
349   @Override /* Overridden from JsonSchemaProperty */
350   public JsonSchemaPropertySimpleArray setReadOnly(Boolean readOnly) {
351      super.setReadOnly(readOnly);
352      return this;
353   }
354
355   @Override /* Overridden from JsonSchemaProperty */
356   public JsonSchemaPropertySimpleArray setRequired(List<String> required) {
357      super.setRequired(required);
358      return this;
359   }
360
361   @Override /* Overridden from JsonSchemaProperty */
362   public JsonSchemaPropertySimpleArray setSchemaMap(JsonSchemaMap schemaMap) {
363      super.setSchemaMap(schemaMap);
364      return this;
365   }
366
367   @Override /* Overridden from JsonSchemaProperty */
368   public JsonSchemaPropertySimpleArray setTitle(String title) {
369      super.setTitle(title);
370      return this;
371   }
372
373   @Override /* Overridden from JsonSchemaProperty */
374   public JsonSchemaPropertySimpleArray setType(Object type) {
375      super.setType(type);
376      return this;
377   }
378
379   @Override /* Overridden from JsonSchemaProperty */
380   public JsonSchemaPropertySimpleArray setUnevaluatedItems(JsonSchema unevaluatedItems) {
381      super.setUnevaluatedItems(unevaluatedItems);
382      return this;
383   }
384
385   @Override /* Overridden from JsonSchemaProperty */
386   public JsonSchemaPropertySimpleArray setUnevaluatedProperties(JsonSchema unevaluatedProperties) {
387      super.setUnevaluatedProperties(unevaluatedProperties);
388      return this;
389   }
390
391   @Override /* Overridden from JsonSchemaProperty */
392   public JsonSchemaPropertySimpleArray setUniqueItems(Boolean uniqueItems) {
393      super.setUniqueItems(uniqueItems);
394      return this;
395   }
396
397   @Override /* Overridden from JsonSchemaProperty */
398   public JsonSchemaPropertySimpleArray setWriteOnly(Boolean writeOnly) {
399      super.setWriteOnly(writeOnly);
400      return this;
401   }
402}