Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,18 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Map)) {
return null;
}
Map<String, Object> castArg = (Map<String, Object>) arg;
Map<String, Class<JsonSchema>> properties = (Map<String, Class<JsonSchema>>) extra;
if (properties == null) {
properties = new LinkedHashMap<>();
}
Set<String> presentAdditionalProperties = new LinkedHashSet<>(castArg.keySet());
presentAdditionalProperties.removeAll(properties.keySet());
if (schema.keywordToValidator != null) {
KeywordValidator propertiesValidator = schema.keywordToValidator.get("properties");
if (propertiesValidator instanceof PropertiesValidator) {
presentAdditionalProperties.removeAll(((PropertiesValidator) propertiesValidator).properties.keySet());
}
}
PathToSchemasMap pathToSchemas = new PathToSchemasMap();
// todo add handling for validatedPatternProperties
for(String addPropName: presentAdditionalProperties) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
PathToSchemasMap pathToSchemas = new PathToSchemasMap();
for(Class<? extends JsonSchema> allOfClass: allOf) {
JsonSchema allOfSchema = JsonSchemaFactory.getInstance(allOfClass);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
PathToSchemasMap pathToSchemas = new PathToSchemasMap();
List<Class<? extends JsonSchema>> validatedAnyOfClasses = new ArrayList<>();
for(Class<? extends JsonSchema> anyOfClass: anyOf) {
if (anyOfClass == cls) {
if (anyOfClass == schema.getClass()) {
/*
optimistically assume that cls schema will pass validation
optimistically assume that schema will pass validation
do not invoke _validate on it because that is recursive
*/
validatedAnyOfClasses.add(anyOfClass);
Expand All @@ -40,7 +40,7 @@ public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, Va
}
}
if (validatedAnyOfClasses.isEmpty()) {
throw new ValidationException("Invalid inputs given to generate an instance of "+cls+". None "+
throw new ValidationException("Invalid inputs given to generate an instance of "+schema.getClass()+". None "+
"of the anyOf schemas matched the input data."
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (enumValues.isEmpty()) {
throw new ValidationException("No value can match enum because enum is empty");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Number)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Number)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ private Void validateStringFormat(String arg, ValidationMetadata validationMetad
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (arg instanceof Number) {
validateNumericFormat(
(Number) arg,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof List)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,11 @@ public static PathToSchemasMap validate(
if (disabledKeywords.contains(jsonKeyword)) {
continue;
}
if (jsonKeyword.equals("additionalProperties") && thisKeywordToValidator.containsKey("properties")) {
extra = thisKeywordToValidator.get("properties").getConstraint();
}
KeywordValidator validator = entry.getValue();
PathToSchemasMap otherPathToSchemas = validator.validate(
jsonSchema.getClass(),
jsonSchema,
arg,
validationMetadata,
extra
validationMetadata
);
if (otherPathToSchemas == null) {
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@

public interface KeywordValidator {
PathToSchemasMap validate(
Class<? extends JsonSchema> cls,
JsonSchema schema,
Object arg,
ValidationMetadata validationMetadata,
Object extra) throws ValidationException;
ValidationMetadata validationMetadata) throws ValidationException;

Object getConstraint();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof List)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof String)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Map)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Number)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof List)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof String)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Map)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Number)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ private BigDecimal getBigDecimal(Number arg) {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Number)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
PathToSchemasMap pathToSchemas;
try {
JsonSchema notSchema = JsonSchemaFactory.getInstance(not);
Expand All @@ -32,7 +32,7 @@ public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, Va
}
if (!pathToSchemas.isEmpty()) {
throw new ValidationException(
"Invalid value "+arg+" was passed in to "+cls+". "+
"Invalid value "+arg+" was passed in to "+schema.getClass()+". "+
"Value is invalid because it is disallowed by not "+not
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
PathToSchemasMap pathToSchemas = new PathToSchemasMap();
List<Class<? extends JsonSchema>> validatedOneOfClasses = new ArrayList<>();
for(Class<? extends JsonSchema> oneOfClass: oneOf) {
if (oneOfClass == cls) {
if (oneOfClass == schema.getClass()) {
/*
optimistically assume that cls schema will pass validation
optimistically assume that schema will pass validation
do not invoke validate on it because that is recursive
*/
validatedOneOfClasses.add(oneOfClass);
Expand All @@ -40,12 +40,12 @@ public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, Va
}
}
if (validatedOneOfClasses.isEmpty()) {
throw new ValidationException("Invalid inputs given to generate an instance of "+cls+". None "+
throw new ValidationException("Invalid inputs given to generate an instance of "+schema.getClass()+". None "+
"of the oneOf schemas matched the input data."
);
}
if (validatedOneOfClasses.size() > 1) {
throw new ValidationException("Invalid inputs given to generate an instance of "+cls+". Multiple "+
throw new ValidationException("Invalid inputs given to generate an instance of "+schema.getClass()+". Multiple "+
"oneOf schemas validated the data, but a max of one is allowed."
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof String)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Map)) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof Map)) {
return null;
}
Expand All @@ -34,7 +34,7 @@ public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, Va
pluralChar = "s";
}
throw new ValidationException(
cls+" is missing "+missingRequiredProperties.size()+" required argument"+pluralChar+": "+missingReqProps
schema.getClass()+" is missing "+missingRequiredProperties.size()+" required argument"+pluralChar+": "+missingReqProps
);
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
Class<?> argClass;
if (arg == null) {
argClass = Void.class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public Object getConstraint() {
}

@Override
public PathToSchemasMap validate(Class<? extends JsonSchema> cls, Object arg, ValidationMetadata validationMetadata, Object extra) {
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
if (!(arg instanceof List)) {
return null;
}
Expand Down
Loading