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 java.lang.ObjectSuperclass of all other schema validator classes of this package.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSchema.Builder<S extends Schema>Abstract builder class for the builder classes ofSchemasubclasses.
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringschemaLocationDeprecated.
-
Constructor Summary
Constructors Modifier Constructor Description protectedSchema(Schema.Builder<?> builder)Constructor.
-
Method Summary
Modifier and Type Method Description protected booleancanEqual(java.lang.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.booleandefinesProperty(java.lang.String field)Determines if thisSchemainstance defines any restrictions for the object property denoted byfield.voiddescribeTo(JSONPrinter writer)Describes the instance as a JSONObject towriter.booleanequals(java.lang.Object o)protected ValidationExceptionfailure(java.lang.Class<?> expectedType, java.lang.Object actualValue)Deprecated.protected ValidationExceptionfailure(java.lang.String message, java.lang.String keyword)Deprecated.java.lang.ObjectgetDefaultValue()java.lang.StringgetDescription()java.lang.StringgetId()SchemaLocationgetLocation()java.lang.StringgetSchemaLocation()java.lang.StringgetTitle()java.util.Map<java.lang.String,java.lang.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).booleanhasDefaultValue()inthashCode()java.lang.BooleanisNullable()java.lang.BooleanisReadOnly()java.lang.BooleanisWriteOnly()java.lang.StringtoString()voidvalidate(java.lang.Object subject)Performs the schema validation.
-
-
-
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(java.lang.Object subject)
Performs the schema validation.- Parameters:
subject- the object to be validated- Throws:
ValidationException- if thesubjectis invalid against this schema.
-
definesProperty
public boolean definesProperty(java.lang.String field)
Determines if thisSchemainstance defines any restrictions for the object property denoted byfield. Thefieldshould be a JSON pointer, denoting the property to be queried.For example the field
"#/rectangle/a"is defined by the following schema:
The default implementation of this method always returns false.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:
trueif the propertty denoted byfieldis defined by this schema instance
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
getTitle
public java.lang.String getTitle()
-
getDescription
public java.lang.String getDescription()
-
getId
public java.lang.String getId()
-
getSchemaLocation
public java.lang.String getSchemaLocation()
-
getLocation
public SchemaLocation getLocation()
-
getDefaultValue
public java.lang.Object getDefaultValue()
-
hasDefaultValue
public boolean hasDefaultValue()
-
isNullable
public java.lang.Boolean isNullable()
-
isReadOnly
public java.lang.Boolean isReadOnly()
-
isWriteOnly
public java.lang.Boolean isWriteOnly()
-
getUnprocessedProperties
public java.util.Map<java.lang.String,java.lang.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
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
failure
@Deprecated protected ValidationException failure(java.lang.String message, java.lang.String keyword)
Deprecated.
-
failure
@Deprecated protected ValidationException failure(java.lang.Class<?> expectedType, java.lang.Object actualValue)
Deprecated.
-
canEqual
protected boolean canEqual(java.lang.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:
trueifthiscan be equal toother
-
-