public static boolean process( @NotNull PropertyProcessor processor, @NotNull JsonSchemaObject startSchema) { if (!processForVariants(processor, startSchema.getAnyOf()) || !processForVariants(processor, startSchema.getOneOf()) || !processForVariants(processor, startSchema.getAllOf())) { return false; } final Map<String, JsonSchemaObject> properties = startSchema.getProperties(); for (Map.Entry<String, JsonSchemaObject> entry : properties.entrySet()) { if (!processor.process(entry.getKey(), entry.getValue())) { return false; } } return true; }