Package org.everit.json.schema
Class Schema
- java.lang.Object
-
- org.everit.json.schema.Schema
-
- Direct Known Subclasses:
ArraySchema
,BooleanSchema
,CombinedSchema
,ConditionalSchema
,ConstSchema
,EmptySchema
,EnumSchema
,FalseSchema
,NotSchema
,NullSchema
,NumberSchema
,ObjectSchema
,ReferenceSchema
,StringSchema
public abstract class Schema extends Object
Superclass of all other schema validator classes of this package.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Schema.Builder<S extends Schema>
Abstract builder class for the builder classes ofSchema
subclasses.
-
Field Summary
Fields Modifier and Type Field Description protected String
schemaLocation
Deprecated.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Schema(Schema.Builder<?> builder)
Constructor.
-
Method Summary
Modifier and Type Method Description 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 thisSchema
instance defines any restrictions for the object property denoted byfield
.void
describeTo(JSONPrinter writer)
Describes the instance as a JSONObject towriter
.boolean
equals(Object o)
protected ValidationException
failure(Class<?> expectedType, Object actualValue)
Deprecated.protected ValidationException
failure(String message, String keyword)
Deprecated.Object
getDefaultValue()
String
getDescription()
String
getId()
SchemaLocation
getLocation()
String
getSchemaLocation()
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).boolean
hasDefaultValue()
int
hashCode()
Boolean
isNullable()
Boolean
isReadOnly()
Boolean
isWriteOnly()
String
toString()
void
validate(Object subject)
Performs the schema validation.
-
-
-
Field Detail
-
schemaLocation
@Deprecated protected final String schemaLocation
Deprecated.
-
-
Constructor Detail
-
Schema
protected Schema(Schema.Builder<?> builder)
Constructor.- Parameters:
builder
- the builder containing the optional title, description and id attributes of the schema
-
-
Method Detail
-
validate
public void validate(Object subject)
Performs the schema validation.- Parameters:
subject
- the object to be validated- Throws:
ValidationException
- if thesubject
is invalid against this schema.
-
definesProperty
public boolean definesProperty(String field)
Determines if thisSchema
instance defines any restrictions for the object property denoted byfield
. Thefield
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" } } } }, "definitions" : { "size" : { "type" : "number", "minimum" : 0 }, "Rectangle" : { "type" : "object", "properties" : { "a" : {"$ref" : "#/definitions/size"}, "b" : {"$ref" : "#/definitions/size"} } } } }
- Parameters:
field
- should be a JSON pointer in its string representation.- Returns:
true
if the propertty denoted byfield
is defined by this schema instance
-
getTitle
public String getTitle()
-
getDescription
public String getDescription()
-
getId
public String getId()
-
getSchemaLocation
public String getSchemaLocation()
-
getLocation
public SchemaLocation getLocation()
-
getDefaultValue
public Object getDefaultValue()
-
hasDefaultValue
public boolean hasDefaultValue()
-
isNullable
public Boolean isNullable()
-
isReadOnly
public Boolean isReadOnly()
-
isWriteOnly
public Boolean isWriteOnly()
-
getUnprocessedProperties
public 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).
-
describeTo
public void describeTo(JSONPrinter writer)
Describes the instance as a JSONObject towriter
.First it adds the
"title
,"description"
and"id"
properties then callsdescribePropertiesTo(JSONPrinter)
, which will add the subclass-specific properties.It is used by
toString()
to serialize the schema instance into its JSON representation.- Parameters:
writer
- it will receive the schema description
-
failure
@Deprecated protected ValidationException failure(String message, String keyword)
Deprecated.
-
failure
@Deprecated protected ValidationException failure(Class<?> expectedType, Object actualValue)
Deprecated.
-
canEqual
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.http://www.artima.com/lejava/articles/equality.html
- Parameters:
other
- the subject of comparison- Returns:
true
ifthis
can be equal toother
-
-