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.net.*; 020import java.util.*; 021 022import org.apache.juneau.*; 023 024/** 025 * Convenience class for representing a schema reference such as <js>"{'$ref':'/url/to/ref'}"</js>. 026 * 027 * <p> 028 * An instance of this object is equivalent to calling... 029 * 030 * <p class='bjava'> 031 * JsonSchema <jv>schema</jv> = <jk>new</jk> JsonSchema().setRef(<jv>uri</jv>); 032 * </p> 033 */ 034public class JsonSchemaRef extends JsonSchema { 035 036 /** 037 * Constructor. 038 * 039 * <p> 040 * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}. 041 * Strings must be valid URIs. 042 * 043 * <p> 044 * URIs defined by {@link UriResolver} can be used for values. 045 * 046 * @param uri The URI of the target reference. Can be <jk>null</jk>. 047 */ 048 public JsonSchemaRef(Object uri) { 049 this.setRef(uri); 050 } 051 052 @Override /* Overridden from JsonSchema */ 053 public JsonSchemaRef addAdditionalItems(JsonSchema...additionalItems) { 054 super.addAdditionalItems(additionalItems); 055 return this; 056 } 057 058 @Override /* Overridden from JsonSchema */ 059 public JsonSchemaRef addAllOf(JsonSchema...allOf) { 060 super.addAllOf(allOf); 061 return this; 062 } 063 064 @Override /* Overridden from JsonSchema */ 065 public JsonSchemaRef addAnyOf(JsonSchema...anyOf) { 066 super.addAnyOf(anyOf); 067 return this; 068 } 069 070 @Override /* Overridden from JsonSchema */ 071 public JsonSchemaRef addDef(String name, JsonSchema def) { 072 super.addDef(name, def); 073 return this; 074 } 075 076 @Override /* Overridden from JsonSchema */ 077 public JsonSchemaRef addDefinition(String name, JsonSchema definition) { 078 super.addDefinition(name, definition); 079 return this; 080 } 081 082 @Override /* Overridden from JsonSchema */ 083 public JsonSchemaRef addDependency(String name, JsonSchema dependency) { 084 super.addDependency(name, dependency); 085 return this; 086 } 087 088 @Override /* Overridden from JsonSchema */ 089 public JsonSchemaRef addDependentRequired(String name, List<String> required) { 090 super.addDependentRequired(name, required); 091 return this; 092 } 093 094 @Override /* Overridden from JsonSchema */ 095 public JsonSchemaRef addDependentSchema(String name, JsonSchema schema) { 096 super.addDependentSchema(name, schema); 097 return this; 098 } 099 100 @Override /* Overridden from JsonSchema */ 101 public JsonSchemaRef addEnum(Object...enum_) { 102 super.addEnum(enum_); 103 return this; 104 } 105 106 @Override /* Overridden from JsonSchema */ 107 public JsonSchemaRef addExamples(Object...examples) { 108 super.addExamples(examples); 109 return this; 110 } 111 112 @Override /* Overridden from JsonSchema */ 113 public JsonSchemaRef addItems(JsonSchema...items) { 114 super.addItems(items); 115 return this; 116 } 117 118 @Override /* Overridden from JsonSchema */ 119 public JsonSchemaRef addOneOf(JsonSchema...oneOf) { 120 super.addOneOf(oneOf); 121 return this; 122 } 123 124 @Override /* Overridden from JsonSchema */ 125 public JsonSchemaRef addPatternProperties(JsonSchemaProperty...properties) { 126 super.addPatternProperties(properties); 127 return this; 128 } 129 130 @Override /* Overridden from JsonSchema */ 131 public JsonSchemaRef addPrefixItems(JsonSchema...prefixItems) { 132 super.addPrefixItems(prefixItems); 133 return this; 134 } 135 136 @Override /* Overridden from JsonSchema */ 137 public JsonSchemaRef addProperties(JsonSchema...properties) { 138 super.addProperties(properties); 139 return this; 140 } 141 142 @Override /* Overridden from JsonSchema */ 143 public JsonSchemaRef addRequired(JsonSchemaProperty...properties) { 144 super.addRequired(properties); 145 return this; 146 } 147 148 @Override /* Overridden from JsonSchema */ 149 public JsonSchemaRef addRequired(List<String> required) { 150 super.addRequired(required); 151 return this; 152 } 153 154 @Override /* Overridden from JsonSchema */ 155 public JsonSchemaRef addRequired(String...required) { 156 super.addRequired(required); 157 return this; 158 } 159 160 @Override /* Overridden from JsonSchema */ 161 public JsonSchemaRef addTypes(JsonType...types) { 162 super.addTypes(types); 163 return this; 164 } 165 166 @Override /* Overridden from JsonSchema */ 167 public JsonSchema getNot() { return super.getNot(); } 168 169 @Override /* Overridden from JsonSchema */ 170 public JsonSchema getUnevaluatedItems() { return super.getUnevaluatedItems(); } 171 172 @Override /* Overridden from JsonSchema */ 173 public JsonSchema resolve() { 174 return super.resolve(); 175 } 176 177 @Override /* Overridden from JsonSchema */ 178 public JsonSchemaRef setAllOf(List<JsonSchema> allOf) { 179 super.setAllOf(allOf); 180 return this; 181 } 182 183 @Override /* Overridden from JsonSchema */ 184 public JsonSchemaRef setAnyOf(List<JsonSchema> anyOf) { 185 super.setAnyOf(anyOf); 186 return this; 187 } 188 189 @Override /* Overridden from JsonSchema */ 190 public JsonSchemaRef setConst(Object const_) { 191 super.setConst(const_); 192 return this; 193 } 194 195 @Override /* Overridden from JsonSchema */ 196 public JsonSchemaRef setContentEncoding(String contentEncoding) { 197 super.setContentEncoding(contentEncoding); 198 return this; 199 } 200 201 @Override /* Overridden from JsonSchema */ 202 public JsonSchemaRef setContentMediaType(String contentMediaType) { 203 super.setContentMediaType(contentMediaType); 204 return this; 205 } 206 207 @Override /* Overridden from JsonSchema */ 208 public JsonSchemaRef setDefinitions(Map<String,JsonSchema> definitions) { 209 super.setDefinitions(definitions); 210 return this; 211 } 212 213 @Override /* Overridden from JsonSchema */ 214 public JsonSchemaRef setDependencies(Map<String,JsonSchema> dependencies) { 215 super.setDependencies(dependencies); 216 return this; 217 } 218 219 @Override /* Overridden from JsonSchema */ 220 public JsonSchemaRef setDependentRequired(Map<String,List<String>> dependentRequired) { 221 super.setDependentRequired(dependentRequired); 222 return this; 223 } 224 225 @Override /* Overridden from JsonSchema */ 226 public JsonSchemaRef setDependentSchemas(Map<String,JsonSchema> dependentSchemas) { 227 super.setDependentSchemas(dependentSchemas); 228 return this; 229 } 230 231 @Override /* Overridden from JsonSchema */ 232 public JsonSchemaRef setDescription(String description) { 233 super.setDescription(description); 234 return this; 235 } 236 237 @Override /* Overridden from JsonSchema */ 238 public JsonSchemaRef setEnum(List<Object> enum_) { 239 super.setEnum(enum_); 240 return this; 241 } 242 243 @Override /* Overridden from JsonSchema */ 244 public JsonSchemaRef setExamples(List<Object> examples) { 245 super.setExamples(examples); 246 return this; 247 } 248 249 @Override /* Overridden from JsonSchema */ 250 public JsonSchemaRef setExclusiveMaximum(Number exclusiveMaximum) { 251 super.setExclusiveMaximum(exclusiveMaximum); 252 return this; 253 } 254 255 @Override /* Overridden from JsonSchema */ 256 public JsonSchemaRef setExclusiveMinimum(Number exclusiveMinimum) { 257 super.setExclusiveMinimum(exclusiveMinimum); 258 return this; 259 } 260 261 @SuppressWarnings("deprecation") 262 @Override /* Overridden from JsonSchema */ 263 public JsonSchemaRef setId(Object id) { 264 super.setId(id); 265 return this; 266 } 267 268 @Override /* Overridden from JsonSchema */ 269 public JsonSchemaRef setMaximum(Number maximum) { 270 super.setMaximum(maximum); 271 return this; 272 } 273 274 @Override /* Overridden from JsonSchema */ 275 public JsonSchemaRef setMaxItems(Integer maxItems) { 276 super.setMaxItems(maxItems); 277 return this; 278 } 279 280 @Override /* Overridden from JsonSchema */ 281 public JsonSchemaRef setMaxLength(Integer maxLength) { 282 super.setMaxLength(maxLength); 283 return this; 284 } 285 286 @Override /* Overridden from JsonSchema */ 287 public JsonSchemaRef setMaxProperties(Integer maxProperties) { 288 super.setMaxProperties(maxProperties); 289 return this; 290 } 291 292 @Override /* Overridden from JsonSchema */ 293 public JsonSchemaRef setMinimum(Number minimum) { 294 super.setMinimum(minimum); 295 return this; 296 } 297 298 @Override /* Overridden from JsonSchema */ 299 public JsonSchemaRef setMinItems(Integer minItems) { 300 super.setMinItems(minItems); 301 return this; 302 } 303 304 @Override /* Overridden from JsonSchema */ 305 public JsonSchemaRef setMinLength(Integer minLength) { 306 super.setMinLength(minLength); 307 return this; 308 } 309 310 @Override /* Overridden from JsonSchema */ 311 public JsonSchemaRef setMinProperties(Integer minProperties) { 312 super.setMinProperties(minProperties); 313 return this; 314 } 315 316 @Override /* Overridden from JsonSchema */ 317 public JsonSchemaRef setMultipleOf(Number multipleOf) { 318 super.setMultipleOf(multipleOf); 319 return this; 320 } 321 322 @Override /* Overridden from JsonSchema */ 323 public JsonSchemaRef setName(String name) { 324 super.setName(name); 325 return this; 326 } 327 328 @Override /* Overridden from JsonSchema */ 329 public JsonSchemaRef setNot(JsonSchema not) { 330 super.setNot(not); 331 return this; 332 } 333 334 @Override /* Overridden from JsonSchema */ 335 public JsonSchemaRef setOneOf(List<JsonSchema> oneOf) { 336 super.setOneOf(oneOf); 337 return this; 338 } 339 340 @Override /* Overridden from JsonSchema */ 341 public JsonSchemaRef setPattern(String pattern) { 342 super.setPattern(pattern); 343 return this; 344 } 345 346 @Override /* Overridden from JsonSchema */ 347 public JsonSchemaRef setPatternProperties(Map<String,JsonSchema> patternProperties) { 348 super.setPatternProperties(patternProperties); 349 return this; 350 } 351 352 @Override /* Overridden from JsonSchema */ 353 public JsonSchemaRef setPrefixItems(JsonSchemaArray prefixItems) { 354 super.setPrefixItems(prefixItems); 355 return this; 356 } 357 358 @Override /* Overridden from JsonSchema */ 359 public JsonSchemaRef setProperties(Map<String,JsonSchema> properties) { 360 super.setProperties(properties); 361 return this; 362 } 363 364 @Override /* Overridden from JsonSchema */ 365 public JsonSchemaRef setReadOnly(Boolean readOnly) { 366 super.setReadOnly(readOnly); 367 return this; 368 } 369 370 @Override /* Overridden from JsonSchema */ 371 public JsonSchemaRef setRequired(List<String> required) { 372 super.setRequired(required); 373 return this; 374 } 375 376 @Override /* Overridden from JsonSchema */ 377 public JsonSchemaRef setSchemaMap(JsonSchemaMap schemaMap) { 378 super.setSchemaMap(schemaMap); 379 return this; 380 } 381 382 @Override /* Overridden from JsonSchema */ 383 public JsonSchemaRef setTitle(String title) { 384 super.setTitle(title); 385 return this; 386 } 387 388 @Override /* Overridden from JsonSchema */ 389 public JsonSchemaRef setType(Object type) { 390 super.setType(type); 391 return this; 392 } 393 394 @Override /* Overridden from JsonSchema */ 395 public JsonSchemaRef setUnevaluatedItems(JsonSchema unevaluatedItems) { 396 super.setUnevaluatedItems(unevaluatedItems); 397 return this; 398 } 399 400 @Override /* Overridden from JsonSchema */ 401 public JsonSchemaRef setUnevaluatedProperties(JsonSchema unevaluatedProperties) { 402 super.setUnevaluatedProperties(unevaluatedProperties); 403 return this; 404 } 405 406 @Override /* Overridden from JsonSchema */ 407 public JsonSchemaRef setUniqueItems(Boolean uniqueItems) { 408 super.setUniqueItems(uniqueItems); 409 return this; 410 } 411 412 @Override /* Overridden from JsonSchema */ 413 public JsonSchemaRef setWriteOnly(Boolean writeOnly) { 414 super.setWriteOnly(writeOnly); 415 return this; 416 } 417}