public class ReferenceSchema extends Schema
SchemaLoader to resolve JSON pointers
during the construction of the schema. This class has been made mutable to permit the loading of
recursive schemas.| Modifier and Type | Class and Description |
|---|---|
static class |
ReferenceSchema.Builder
Builder class for
ReferenceSchema. |
| Constructor and Description |
|---|
ReferenceSchema(ReferenceSchema.Builder builder) |
| Modifier and Type | Method and Description |
|---|---|
static ReferenceSchema.Builder |
builder() |
protected boolean |
canEqual(Object other)
Since we add state in subclasses, but want those subclasses to be non final, this allows us to
have equals methods that satisfy the equals contract.
|
boolean |
definesProperty(String field)
Determines if this
Schema instance defines any restrictions for the object property
denoted by field. |
boolean |
equals(Object o) |
String |
getDescription() |
SchemaLocation |
getLocation() |
String |
getReferenceValue() |
Schema |
getReferredSchema() |
String |
getTitle() |
Map<String,Object> |
getUnprocessedProperties()
Returns the properties of the original schema JSON which aren't keywords of json schema
(therefore they weren't recognized during schema loading).
|
int |
hashCode() |
void |
setReferredSchema(Schema referredSchema)
Called by
SchemaLoader.load() to set the referred root
schema after completing the loading process of the entire schema document. |
describeTo, failure, failure, getDefaultValue, getId, getSchemaLocation, hasDefaultValue, isNullable, isReadOnly, isWriteOnly, toString, validatepublic ReferenceSchema(ReferenceSchema.Builder builder)
public static ReferenceSchema.Builder builder()
public boolean definesProperty(String field)
SchemaSchema instance defines any restrictions for the object property
denoted by field. The field should be a JSON pointer, denoting the property to
be queried.
For example the field "#/rectangle/a" is defined by the following schema:
objectWithSchemaRectangleDep" : {
"type" : "object",
"dependencies" : {
"d" : {
"type" : "object",
"properties" : {
"rectangle" : {
"$ref" : "#/definitions/Rectangle"
},
"list": {
"type": "array",
"items": {
"properties": {
"prop": {}
}
},
"minItems": 2,
"maxItems: 3
}
}
}
},
"definitions" : {
"size" : {
"type" : "number",
"minimum" : 0
},
"Rectangle" : {
"type" : "object",
"properties" : {
"a" : {"$ref" : "#/definitions/size"},
"b" : {"$ref" : "#/definitions/size"}
}
}
}
}
You can also check if a subschema of an array defines a property. In that case, to traverse the array, you can either use
an integer array index, or the "all" or "any" meta-indexes. For example, in the above schema
definesProperty("#/list/any/prop") returns truedefinesProperty("#/list/all/prop") returns truedefinesProperty("#/list/1/prop") returns truedefinesProperty("#/list/1/nonexistent") returns false (the property is not present in the
subschema)definesProperty("#/list/8/prop") returns false (the "list" does not define
property 8, since "maxItems" is 3)definesProperty in class Schemafield - should be a JSON pointer in its string representation.true if the propertty denoted by field is defined by this schema
instancepublic Schema getReferredSchema()
public String getReferenceValue()
public void setReferredSchema(Schema referredSchema)
SchemaLoader.load() to set the referred root
schema after completing the loading process of the entire schema document.referredSchema - the referred schemaprotected boolean canEqual(Object other)
Schemahttp://www.artima.com/lejava/articles/equality.html
public Map<String,Object> getUnprocessedProperties()
SchemagetUnprocessedProperties in class Schemapublic String getDescription()
getDescription in class Schemapublic SchemaLocation getLocation()
getLocation in class SchemaCopyright © 2023 Everit Kft.. All rights reserved.