Electroneum
GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator > Class Template Reference

JSON Schema Validator. More...

#include <fwd.h>

Inheritance diagram for GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >:
Collaboration diagram for GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >:

Public Types

typedef SchemaDocumentType::SchemaType SchemaType
 
typedef SchemaDocumentType::PointerType PointerType
 
typedef SchemaType::EncodingType EncodingType
 
typedef SchemaType::SValue SValue
 
typedef EncodingType::Ch Ch
 
typedef GenericStringRef< ChStringRefType
 
typedef GenericValue< EncodingType, StateAllocator > ValueType
 
- Public Types inherited from internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >
typedef SchemaDocumentType::SchemaType ::Ch Ch
 
typedef SchemaDocumentType::SchemaType ::SValue SValue
 

Public Member Functions

 GenericSchemaValidator (const SchemaDocumentType &schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)
 Constructor without output handler. More...
 
 GenericSchemaValidator (const SchemaDocumentType &schemaDocument, OutputHandler &outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)
 Constructor with output handler. More...
 
 ~GenericSchemaValidator ()
 Destructor. More...
 
void Reset ()
 Reset the internal states. More...
 
virtual bool IsValid () const
 Checks whether the current state is valid. More...
 
ValueTypeGetError ()
 Gets the error object. More...
 
const ValueTypeGetError () const
 
PointerType GetInvalidSchemaPointer () const
 Gets the JSON pointer pointed to the invalid schema. More...
 
const ChGetInvalidSchemaKeyword () const
 Gets the keyword of invalid schema. More...
 
PointerType GetInvalidDocumentPointer () const
 Gets the JSON pointer pointed to the invalid value. More...
 
void NotMultipleOf (int64_t actual, const SValue &expected)
 
void NotMultipleOf (uint64_t actual, const SValue &expected)
 
void NotMultipleOf (double actual, const SValue &expected)
 
void AboveMaximum (int64_t actual, const SValue &expected, bool exclusive)
 
void AboveMaximum (uint64_t actual, const SValue &expected, bool exclusive)
 
void AboveMaximum (double actual, const SValue &expected, bool exclusive)
 
void BelowMinimum (int64_t actual, const SValue &expected, bool exclusive)
 
void BelowMinimum (uint64_t actual, const SValue &expected, bool exclusive)
 
void BelowMinimum (double actual, const SValue &expected, bool exclusive)
 
void TooLong (const Ch *str, SizeType length, SizeType expected)
 
void TooShort (const Ch *str, SizeType length, SizeType expected)
 
void DoesNotMatch (const Ch *str, SizeType length)
 
void DisallowedItem (SizeType index)
 
void TooFewItems (SizeType actualCount, SizeType expectedCount)
 
void TooManyItems (SizeType actualCount, SizeType expectedCount)
 
void DuplicateItems (SizeType index1, SizeType index2)
 
void TooManyProperties (SizeType actualCount, SizeType expectedCount)
 
void TooFewProperties (SizeType actualCount, SizeType expectedCount)
 
void StartMissingProperties ()
 
void AddMissingProperty (const SValue &name)
 
bool EndMissingProperties ()
 
void PropertyViolations (ISchemaValidator **subvalidators, SizeType count)
 
void DisallowedProperty (const Ch *name, SizeType length)
 
void StartDependencyErrors ()
 
void StartMissingDependentProperties ()
 
void AddMissingDependentProperty (const SValue &targetName)
 
void EndMissingDependentProperties (const SValue &sourceName)
 
void AddDependencySchemaError (const SValue &sourceName, ISchemaValidator *subvalidator)
 
bool EndDependencyErrors ()
 
void DisallowedValue ()
 
void StartDisallowedType ()
 
void AddExpectedType (const typename SchemaType::ValueType &expectedType)
 
void EndDisallowedType (const typename SchemaType::ValueType &actualType)
 
void NotAllOf (ISchemaValidator **subvalidators, SizeType count)
 
void NoneOf (ISchemaValidator **subvalidators, SizeType count)
 
void NotOneOf (ISchemaValidator **subvalidators, SizeType count)
 
void Disallowed ()
 
bool Null ()
 
bool Bool (bool b)
 
bool Int (int i)
 
bool Uint (unsigned u)
 
bool Int64 (int64_t i)
 
bool Uint64 (uint64_t u)
 
bool Double (double d)
 
bool RawNumber (const Ch *str, SizeType length, bool copy)
 
bool String (const Ch *str, SizeType length, bool copy)
 
bool StartObject ()
 
bool Key (const Ch *str, SizeType len, bool copy)
 
bool EndObject (SizeType memberCount)
 
bool StartArray ()
 
bool EndArray (SizeType elementCount)
 
virtual ISchemaValidator * CreateSchemaValidator (const SchemaType &root)
 
virtual void DestroySchemaValidator (ISchemaValidator *validator)
 
virtual void * CreateHasher ()
 
virtual uint64_t GetHashCode (void *hasher)
 
virtual void DestroryHasher (void *hasher)
 
virtual void * MallocState (size_t size)
 
virtual void FreeState (void *p)
 
- Public Member Functions inherited from internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >
virtual ~ISchemaStateFactory ()
 
virtual void DestroySchemaValidator (ISchemaValidator *validator)=0
 
- Public Member Functions inherited from internal::ISchemaValidator
virtual ~ISchemaValidator ()
 
- Public Member Functions inherited from internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >
virtual ~IValidationErrorHandler ()
 
virtual void NotMultipleOf (int64_t actual, const SValue &expected)=0
 
virtual void NotMultipleOf (uint64_t actual, const SValue &expected)=0
 
virtual void NotMultipleOf (double actual, const SValue &expected)=0
 
virtual void AboveMaximum (int64_t actual, const SValue &expected, bool exclusive)=0
 
virtual void AboveMaximum (uint64_t actual, const SValue &expected, bool exclusive)=0
 
virtual void AboveMaximum (double actual, const SValue &expected, bool exclusive)=0
 
virtual void BelowMinimum (int64_t actual, const SValue &expected, bool exclusive)=0
 
virtual void BelowMinimum (uint64_t actual, const SValue &expected, bool exclusive)=0
 
virtual void BelowMinimum (double actual, const SValue &expected, bool exclusive)=0
 
virtual void TooLong (const Ch *str, SizeType length, SizeType expected)=0
 
virtual void TooShort (const Ch *str, SizeType length, SizeType expected)=0
 
virtual void DoesNotMatch (const Ch *str, SizeType length)=0
 
virtual void AddMissingProperty (const SValue &name)=0
 
virtual void PropertyViolations (ISchemaValidator **subvalidators, SizeType count)=0
 
virtual void DisallowedProperty (const Ch *name, SizeType length)=0
 
virtual void AddMissingDependentProperty (const SValue &targetName)=0
 
virtual void EndMissingDependentProperties (const SValue &sourceName)=0
 
virtual void AddDependencySchemaError (const SValue &souceName, ISchemaValidator *subvalidator)=0
 
virtual void AddExpectedType (const typename SchemaDocumentType::SchemaType ::ValueType &expectedType)=0
 
virtual void EndDisallowedType (const typename SchemaDocumentType::SchemaType ::ValueType &actualType)=0
 
virtual void NotAllOf (ISchemaValidator **subvalidators, SizeType count)=0
 
virtual void NoneOf (ISchemaValidator **subvalidators, SizeType count)=0
 
virtual void NotOneOf (ISchemaValidator **subvalidators, SizeType count)=0
 

Detailed Description

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
class GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >

JSON Schema Validator.

A SAX style JSON schema validator. It uses a GenericSchemaDocument to validate SAX events. It delegates the incoming SAX events to an output handler. The default output handler does nothing. It can be reused multiple times by calling Reset().

Template Parameters
SchemaDocumentTypeType of schema document.
OutputHandlerType of output handler. Default handler does nothing.
StateAllocatorAllocator for storing the internal validation states.

Definition at line 145 of file fwd.h.

Member Typedef Documentation

◆ Ch

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef EncodingType::Ch GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Ch

Definition at line 1771 of file schema.h.

◆ EncodingType

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef SchemaType::EncodingType GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EncodingType

Definition at line 1769 of file schema.h.

◆ PointerType

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef SchemaDocumentType::PointerType GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::PointerType

Definition at line 1768 of file schema.h.

◆ SchemaType

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef SchemaDocumentType::SchemaType GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::SchemaType

Definition at line 1767 of file schema.h.

◆ StringRefType

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef GenericStringRef<Ch> GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StringRefType

Definition at line 1772 of file schema.h.

◆ SValue

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef SchemaType::SValue GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::SValue

Definition at line 1770 of file schema.h.

◆ ValueType

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
typedef GenericValue<EncodingType, StateAllocator> GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::ValueType

Definition at line 1773 of file schema.h.

Constructor & Destructor Documentation

◆ GenericSchemaValidator() [1/2]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GenericSchemaValidator ( const SchemaDocumentType &  schemaDocument,
StateAllocator *  allocator = 0,
size_t  schemaStackCapacity = kDefaultSchemaStackCapacity,
size_t  documentStackCapacity = kDefaultDocumentStackCapacity 
)
inline

Constructor without output handler.

Parameters
schemaDocumentThe schema document to conform to.
allocatorOptional allocator for storing internal validation states.
schemaStackCapacityOptional initial capacity of schema path stack.
documentStackCapacityOptional initial capacity of document path stack.

Definition at line 1782 of file schema.h.

1787  :
1788  schemaDocument_(&schemaDocument),
1789  root_(schemaDocument.GetRoot()),
1790  stateAllocator_(allocator),
1791  ownStateAllocator_(0),
1792  schemaStack_(allocator, schemaStackCapacity),
1793  documentStack_(allocator, documentStackCapacity),
1794  outputHandler_(0),
1795  error_(kObjectType),
1796  currentError_(),
1797  missingDependents_(),
1798  valid_(true)
1799 #if RAPIDJSON_SCHEMA_VERBOSE
1800  , depth_(0)
1801 #endif
1802  {
1803  }
object
Definition: rapidjson.h:624
Here is the caller graph for this function:

◆ GenericSchemaValidator() [2/2]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GenericSchemaValidator ( const SchemaDocumentType &  schemaDocument,
OutputHandler &  outputHandler,
StateAllocator *  allocator = 0,
size_t  schemaStackCapacity = kDefaultSchemaStackCapacity,
size_t  documentStackCapacity = kDefaultDocumentStackCapacity 
)
inline

Constructor with output handler.

Parameters
schemaDocumentThe schema document to conform to.
allocatorOptional allocator for storing internal validation states.
schemaStackCapacityOptional initial capacity of schema path stack.
documentStackCapacityOptional initial capacity of document path stack.

Definition at line 1812 of file schema.h.

1818  :
1819  schemaDocument_(&schemaDocument),
1820  root_(schemaDocument.GetRoot()),
1821  stateAllocator_(allocator),
1822  ownStateAllocator_(0),
1823  schemaStack_(allocator, schemaStackCapacity),
1824  documentStack_(allocator, documentStackCapacity),
1825  outputHandler_(&outputHandler),
1826  error_(kObjectType),
1827  currentError_(),
1828  missingDependents_(),
1829  valid_(true)
1830 #if RAPIDJSON_SCHEMA_VERBOSE
1831  , depth_(0)
1832 #endif
1833  {
1834  }
object
Definition: rapidjson.h:624

◆ ~GenericSchemaValidator()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::~GenericSchemaValidator ( )
inline

Destructor.

Definition at line 1837 of file schema.h.

1837  {
1838  Reset();
1839  RAPIDJSON_DELETE(ownStateAllocator_);
1840  }
void Reset()
Reset the internal states.
Definition: schema.h:1843
#define RAPIDJSON_DELETE(x)
! customization point for global delete
Definition: rapidjson.h:607
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ AboveMaximum() [1/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AboveMaximum ( int64_t  actual,
const SValue expected,
bool  exclusive 
)
inline

Definition at line 1890 of file schema.h.

1890  {
1891  AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected,
1892  exclusive ? &SchemaType::GetExclusiveMaximumString : 0);
1893  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ AboveMaximum() [2/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AboveMaximum ( uint64_t  actual,
const SValue expected,
bool  exclusive 
)
inline

Definition at line 1894 of file schema.h.

1894  {
1895  AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected,
1896  exclusive ? &SchemaType::GetExclusiveMaximumString : 0);
1897  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ AboveMaximum() [3/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AboveMaximum ( double  actual,
const SValue expected,
bool  exclusive 
)
inline

Definition at line 1898 of file schema.h.

1898  {
1899  AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected,
1900  exclusive ? &SchemaType::GetExclusiveMaximumString : 0);
1901  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ AddDependencySchemaError()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AddDependencySchemaError ( const SValue sourceName,
ISchemaValidator *  subvalidator 
)
inline

Definition at line 1998 of file schema.h.

1998  {
1999  currentError_.AddMember(ValueType(sourceName, GetStateAllocator()).Move(),
2000  static_cast<GenericSchemaValidator*>(subvalidator)->GetError(), GetStateAllocator());
2001  }
ValueType & GetError()
Gets the error object.
Definition: schema.h:1858
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
Here is the call graph for this function:

◆ AddExpectedType()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AddExpectedType ( const typename SchemaType::ValueType &  expectedType)
inline

Definition at line 2019 of file schema.h.

2019  {
2020  currentError_.PushBack(ValueType(expectedType, GetStateAllocator()).Move(), GetStateAllocator());
2021  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ AddMissingDependentProperty()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AddMissingDependentProperty ( const SValue targetName)
inline

Definition at line 1990 of file schema.h.

1990  {
1991  missingDependents_.PushBack(ValueType(targetName, GetStateAllocator()).Move(), GetStateAllocator());
1992  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ AddMissingProperty()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::AddMissingProperty ( const SValue name)
inline

Definition at line 1962 of file schema.h.

1962  {
1963  currentError_.PushBack(ValueType(name, GetStateAllocator()).Move(), GetStateAllocator());
1964  }
const char * name
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ BelowMinimum() [1/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::BelowMinimum ( int64_t  actual,
const SValue expected,
bool  exclusive 
)
inline

Definition at line 1902 of file schema.h.

1902  {
1903  AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected,
1904  exclusive ? &SchemaType::GetExclusiveMinimumString : 0);
1905  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ BelowMinimum() [2/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::BelowMinimum ( uint64_t  actual,
const SValue expected,
bool  exclusive 
)
inline

Definition at line 1906 of file schema.h.

1906  {
1907  AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected,
1908  exclusive ? &SchemaType::GetExclusiveMinimumString : 0);
1909  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ BelowMinimum() [3/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::BelowMinimum ( double  actual,
const SValue expected,
bool  exclusive 
)
inline

Definition at line 1910 of file schema.h.

1910  {
1911  AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected,
1912  exclusive ? &SchemaType::GetExclusiveMinimumString : 0);
1913  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ Bool()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Bool ( bool  b)
inline

Definition at line 2102 of file schema.h.

2102 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Bool, (CurrentContext(), b), (b)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
bool Bool(bool b)
Definition: schema.h:2102

◆ CreateHasher()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual void* GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::CreateHasher ( )
inlinevirtual

Implements internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >.

Definition at line 2167 of file schema.h.

2167  {
2168  return new (GetStateAllocator().Malloc(sizeof(HasherType))) HasherType(&GetStateAllocator());
2169  }

◆ CreateSchemaValidator()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual ISchemaValidator* GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::CreateSchemaValidator ( const SchemaType root)
inlinevirtual

Implements internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >.

Definition at line 2153 of file schema.h.

2153  {
2154  return new (GetStateAllocator().Malloc(sizeof(GenericSchemaValidator))) GenericSchemaValidator(*schemaDocument_, root, documentStack_.template Bottom<char>(), documentStack_.GetSize(),
2155 #if RAPIDJSON_SCHEMA_VERBOSE
2156  depth_ + 1,
2157 #endif
2158  &GetStateAllocator());
2159  }
JSON Schema Validator.
Definition: fwd.h:145
size_t GetSize() const
Definition: stack.h:177
GenericSchemaValidator(const SchemaDocumentType &schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)
Constructor without output handler.
Definition: schema.h:1782
Here is the call graph for this function:

◆ DestroryHasher()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DestroryHasher ( void *  hasher)
inlinevirtual

Implements internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >.

Definition at line 2175 of file schema.h.

2175  {
2176  HasherType* h = static_cast<HasherType*>(hasher);
2177  h->~HasherType();
2178  StateAllocator::Free(h);
2179  }

◆ DestroySchemaValidator()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DestroySchemaValidator ( ISchemaValidator *  validator)
inlinevirtual

Definition at line 2161 of file schema.h.

2161  {
2162  GenericSchemaValidator* v = static_cast<GenericSchemaValidator*>(validator);
2164  StateAllocator::Free(v);
2165  }
JSON Schema Validator.
Definition: fwd.h:145
~GenericSchemaValidator()
Destructor.
Definition: schema.h:1837
Here is the call graph for this function:

◆ Disallowed()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Disallowed ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 2040 of file schema.h.

2040  {
2041  currentError_.SetObject();
2042  AddCurrentError(SchemaType::GetNotString());
2043  }

◆ DisallowedItem()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DisallowedItem ( SizeType  index)
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1929 of file schema.h.

1929  {
1930  currentError_.SetObject();
1931  currentError_.AddMember(GetDisallowedString(), ValueType(index).Move(), GetStateAllocator());
1932  AddCurrentError(SchemaType::GetAdditionalItemsString(), true);
1933  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ DisallowedProperty()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DisallowedProperty ( const Ch name,
SizeType  length 
)
inline

Definition at line 1978 of file schema.h.

1978  {
1979  currentError_.SetObject();
1980  currentError_.AddMember(GetDisallowedString(), ValueType(name, length, GetStateAllocator()).Move(), GetStateAllocator());
1981  AddCurrentError(SchemaType::GetAdditionalPropertiesString(), true);
1982  }
const char * name
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ DisallowedValue()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DisallowedValue ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 2012 of file schema.h.

2012  {
2013  currentError_.SetObject();
2014  AddCurrentError(SchemaType::GetEnumString());
2015  }

◆ DoesNotMatch()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DoesNotMatch ( const Ch str,
SizeType  length 
)
inline

Definition at line 1923 of file schema.h.

1923  {
1924  currentError_.SetObject();
1925  currentError_.AddMember(GetActualString(), ValueType(str, length, GetStateAllocator()).Move(), GetStateAllocator());
1926  AddCurrentError(SchemaType::GetPatternString());
1927  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ Double()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Double ( double  d)
inline

Definition at line 2107 of file schema.h.

2107 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Double, (CurrentContext(), d), (d)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
bool Double(double d)
Definition: schema.h:2107

◆ DuplicateItems()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::DuplicateItems ( SizeType  index1,
SizeType  index2 
)
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1942 of file schema.h.

1942  {
1943  ValueType duplicates(kArrayType);
1944  duplicates.PushBack(index1, GetStateAllocator());
1945  duplicates.PushBack(index2, GetStateAllocator());
1946  currentError_.SetObject();
1947  currentError_.AddMember(GetDuplicatesString(), duplicates, GetStateAllocator());
1948  AddCurrentError(SchemaType::GetUniqueItemsString(), true);
1949  }
array
Definition: rapidjson.h:625
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ EndArray()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EndArray ( SizeType  elementCount)
inline

Definition at line 2140 of file schema.h.

2140  {
2141  if (!valid_) return false;
2143  if (!CurrentSchema().EndArray(CurrentContext(), elementCount)) return valid_ = false;
2144  RAPIDJSON_SCHEMA_HANDLE_END_(EndArray, (elementCount));
2145  }
bool EndArray(SizeType elementCount)
Definition: schema.h:2140
#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)
Definition: schema.h:2081
#define RAPIDJSON_SCHEMA_HANDLE_END_(method, arg2)
Definition: schema.h:2093

◆ EndDependencyErrors()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EndDependencyErrors ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 2002 of file schema.h.

2002  {
2003  if (currentError_.ObjectEmpty())
2004  return false;
2006  error.AddMember(GetErrorsString(), currentError_, GetStateAllocator());
2007  currentError_ = error;
2008  AddCurrentError(SchemaType::GetDependenciesString());
2009  return true;
2010  }
object
Definition: rapidjson.h:624
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
error
Tracks LMDB error codes.
Definition: error.h:44

◆ EndDisallowedType()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EndDisallowedType ( const typename SchemaType::ValueType &  actualType)
inline

Definition at line 2022 of file schema.h.

2022  {
2024  error.AddMember(GetExpectedString(), currentError_, GetStateAllocator());
2025  error.AddMember(GetActualString(), ValueType(actualType, GetStateAllocator()).Move(), GetStateAllocator());
2026  currentError_ = error;
2027  AddCurrentError(SchemaType::GetTypeString());
2028  }
object
Definition: rapidjson.h:624
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
error
Tracks LMDB error codes.
Definition: error.h:44

◆ EndMissingDependentProperties()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EndMissingDependentProperties ( const SValue sourceName)
inline

Definition at line 1993 of file schema.h.

1993  {
1994  if (!missingDependents_.Empty())
1995  currentError_.AddMember(ValueType(sourceName, GetStateAllocator()).Move(),
1996  missingDependents_, GetStateAllocator());
1997  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ EndMissingProperties()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EndMissingProperties ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1965 of file schema.h.

1965  {
1966  if (currentError_.Empty())
1967  return false;
1969  error.AddMember(GetMissingString(), currentError_, GetStateAllocator());
1970  currentError_ = error;
1971  AddCurrentError(SchemaType::GetRequiredString());
1972  return true;
1973  }
object
Definition: rapidjson.h:624
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
error
Tracks LMDB error codes.
Definition: error.h:44

◆ EndObject()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::EndObject ( SizeType  memberCount)
inline

Definition at line 2127 of file schema.h.

2127  {
2128  if (!valid_) return false;
2130  if (!CurrentSchema().EndObject(CurrentContext(), memberCount)) return valid_ = false;
2131  RAPIDJSON_SCHEMA_HANDLE_END_(EndObject, (memberCount));
2132  }
bool EndObject(SizeType memberCount)
Definition: schema.h:2127
#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)
Definition: schema.h:2081
#define RAPIDJSON_SCHEMA_HANDLE_END_(method, arg2)
Definition: schema.h:2093

◆ FreeState()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::FreeState ( void *  p)
inlinevirtual

Implements internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >.

Definition at line 2185 of file schema.h.

2185  {
2186  StateAllocator::Free(p);
2187  }

◆ GetError() [1/2]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
ValueType& GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GetError ( )
inline

Gets the error object.

Definition at line 1858 of file schema.h.

1858 { return error_; }
Here is the caller graph for this function:

◆ GetError() [2/2]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
const ValueType& GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GetError ( ) const
inline

Definition at line 1859 of file schema.h.

1859 { return error_; }

◆ GetHashCode()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual uint64_t GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GetHashCode ( void *  hasher)
inlinevirtual

Implements internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >.

Definition at line 2171 of file schema.h.

2171  {
2172  return static_cast<HasherType*>(hasher)->GetHashCode();
2173  }
virtual uint64_t GetHashCode(void *hasher)
Definition: schema.h:2171

◆ GetInvalidDocumentPointer()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
PointerType GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GetInvalidDocumentPointer ( ) const
inline

Gets the JSON pointer pointed to the invalid value.

Definition at line 1872 of file schema.h.

1872  {
1873  if (documentStack_.Empty()) {
1874  return PointerType();
1875  }
1876  else {
1877  return PointerType(documentStack_.template Bottom<Ch>(), documentStack_.GetSize() / sizeof(Ch));
1878  }
1879  }
EncodingType::Ch Ch
Definition: schema.h:1771
size_t GetSize() const
Definition: stack.h:177
bool Empty() const
Definition: stack.h:176
SchemaDocumentType::PointerType PointerType
Definition: schema.h:1768
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInvalidSchemaKeyword()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
const Ch* GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GetInvalidSchemaKeyword ( ) const
inline

Gets the keyword of invalid schema.

Definition at line 1867 of file schema.h.

1867  {
1868  return schemaStack_.Empty() ? 0 : CurrentContext().invalidKeyword;
1869  }
bool Empty() const
Definition: stack.h:176
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInvalidSchemaPointer()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
PointerType GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GetInvalidSchemaPointer ( ) const
inline

Gets the JSON pointer pointed to the invalid schema.

Definition at line 1862 of file schema.h.

1862  {
1863  return schemaStack_.Empty() ? PointerType() : CurrentSchema().GetPointer();
1864  }
bool Empty() const
Definition: stack.h:176
SchemaDocumentType::PointerType PointerType
Definition: schema.h:1768
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Int()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Int ( int  i)
inline

Definition at line 2103 of file schema.h.

2103 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Int, (CurrentContext(), i), (i)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
bool Int(int i)
Definition: schema.h:2103

◆ Int64()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Int64 ( int64_t  i)
inline

Definition at line 2105 of file schema.h.

2105 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Int64, (CurrentContext(), i), (i)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
bool Int64(int64_t i)
Definition: schema.h:2105

◆ IsValid()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::IsValid ( ) const
inlinevirtual

Checks whether the current state is valid.

Implements internal::ISchemaValidator.

Definition at line 1855 of file schema.h.

1855 { return valid_; }
Here is the caller graph for this function:

◆ Key()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Key ( const Ch str,
SizeType  len,
bool  copy 
)
inline

Definition at line 2119 of file schema.h.

2119  {
2120  if (!valid_) return false;
2121  AppendToken(str, len);
2122  if (!CurrentSchema().Key(CurrentContext(), str, len, copy)) return valid_ = false;
2124  return valid_ = !outputHandler_ || outputHandler_->Key(str, len, copy);
2125  }
void copy(key &AA, const key &A)
Definition: rctOps.h:79
bool Key(const Ch *str, SizeType len, bool copy)
Definition: schema.h:2119
#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)
Definition: schema.h:2081
Here is the call graph for this function:

◆ MallocState()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
virtual void* GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::MallocState ( size_t  size)
inlinevirtual

Implements internal::ISchemaStateFactory< SchemaDocumentType::SchemaType >.

Definition at line 2181 of file schema.h.

2181  {
2182  return GetStateAllocator().Malloc(size);
2183  }

◆ NoneOf()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::NoneOf ( ISchemaValidator **  subvalidators,
SizeType  count 
)
inline

Definition at line 2034 of file schema.h.

2034  {
2035  AddErrorArray(SchemaType::GetAnyOfString(), subvalidators, count);
2036  }
mdb_size_t count(MDB_cursor *cur)
Here is the call graph for this function:

◆ NotAllOf()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::NotAllOf ( ISchemaValidator **  subvalidators,
SizeType  count 
)
inline

Definition at line 2029 of file schema.h.

2029  {
2030  for (SizeType i = 0; i < count; ++i) {
2031  MergeError(static_cast<GenericSchemaValidator*>(subvalidators[i])->GetError());
2032  }
2033  }
RAPIDJSON_NAMESPACE_BEGIN typedef unsigned SizeType
Size type (for string lengths, array sizes, etc.)
Definition: rapidjson.h:389
ValueType & GetError()
Gets the error object.
Definition: schema.h:1858
mdb_size_t count(MDB_cursor *cur)
Here is the call graph for this function:

◆ NotMultipleOf() [1/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::NotMultipleOf ( int64_t  actual,
const SValue expected 
)
inline

Definition at line 1881 of file schema.h.

1881  {
1882  AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected);
1883  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ NotMultipleOf() [2/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::NotMultipleOf ( uint64_t  actual,
const SValue expected 
)
inline

Definition at line 1884 of file schema.h.

1884  {
1885  AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected);
1886  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ NotMultipleOf() [3/3]

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::NotMultipleOf ( double  actual,
const SValue expected 
)
inline

Definition at line 1887 of file schema.h.

1887  {
1888  AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected);
1889  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773

◆ NotOneOf()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::NotOneOf ( ISchemaValidator **  subvalidators,
SizeType  count 
)
inline

Definition at line 2037 of file schema.h.

2037  {
2038  AddErrorArray(SchemaType::GetOneOfString(), subvalidators, count);
2039  }
mdb_size_t count(MDB_cursor *cur)
Here is the call graph for this function:

◆ Null()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Null ( )
inline

Definition at line 2101 of file schema.h.

2101 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Null, (CurrentContext()), ( )); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096

◆ PropertyViolations()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::PropertyViolations ( ISchemaValidator **  subvalidators,
SizeType  count 
)
inline

Definition at line 1974 of file schema.h.

1974  {
1975  for (SizeType i = 0; i < count; ++i)
1976  MergeError(static_cast<GenericSchemaValidator*>(subvalidators[i])->GetError());
1977  }
RAPIDJSON_NAMESPACE_BEGIN typedef unsigned SizeType
Size type (for string lengths, array sizes, etc.)
Definition: rapidjson.h:389
ValueType & GetError()
Gets the error object.
Definition: schema.h:1858
mdb_size_t count(MDB_cursor *cur)
Here is the call graph for this function:

◆ RawNumber()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::RawNumber ( const Ch str,
SizeType  length,
bool  copy 
)
inline

Definition at line 2108 of file schema.h.

2109  { RAPIDJSON_SCHEMA_HANDLE_VALUE_(String, (CurrentContext(), str, length, copy), (str, length, copy)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
void copy(key &AA, const key &A)
Definition: rctOps.h:79
bool String(const Ch *str, SizeType length, bool copy)
Definition: schema.h:2110
Here is the call graph for this function:

◆ Reset()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Reset ( )
inline

Reset the internal states.

Definition at line 1843 of file schema.h.

1843  {
1844  while (!schemaStack_.Empty())
1845  PopSchema();
1846  documentStack_.Clear();
1847  error_.SetObject();
1848  currentError_.SetNull();
1849  missingDependents_.SetNull();
1850  valid_ = true;
1851  }
void Clear()
Definition: stack.h:98
bool Empty() const
Definition: stack.h:176
Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartArray()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StartArray ( )
inline

Definition at line 2134 of file schema.h.

2134  {
2135  RAPIDJSON_SCHEMA_HANDLE_BEGIN_(StartArray, (CurrentContext()));
2137  return valid_ = !outputHandler_ || outputHandler_->StartArray();
2138  }
#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_(method, arg1)
Definition: schema.h:2074
#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)
Definition: schema.h:2081

◆ StartDependencyErrors()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StartDependencyErrors ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1984 of file schema.h.

1984  {
1985  currentError_.SetObject();
1986  }

◆ StartDisallowedType()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StartDisallowedType ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 2016 of file schema.h.

2016  {
2017  currentError_.SetArray();
2018  }

◆ StartMissingDependentProperties()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StartMissingDependentProperties ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1987 of file schema.h.

1987  {
1988  missingDependents_.SetArray();
1989  }

◆ StartMissingProperties()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StartMissingProperties ( )
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1959 of file schema.h.

1959  {
1960  currentError_.SetArray();
1961  }

◆ StartObject()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::StartObject ( )
inline

Definition at line 2113 of file schema.h.

2113  {
2114  RAPIDJSON_SCHEMA_HANDLE_BEGIN_(StartObject, (CurrentContext()));
2116  return valid_ = !outputHandler_ || outputHandler_->StartObject();
2117  }
#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_(method, arg1)
Definition: schema.h:2074
#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)
Definition: schema.h:2081

◆ String()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::String ( const Ch str,
SizeType  length,
bool  copy 
)
inline

Definition at line 2110 of file schema.h.

2111  { RAPIDJSON_SCHEMA_HANDLE_VALUE_(String, (CurrentContext(), str, length, copy), (str, length, copy)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
void copy(key &AA, const key &A)
Definition: rctOps.h:79
bool String(const Ch *str, SizeType length, bool copy)
Definition: schema.h:2110
Here is the call graph for this function:
Here is the caller graph for this function:

◆ TooFewItems()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::TooFewItems ( SizeType  actualCount,
SizeType  expectedCount 
)
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1934 of file schema.h.

1934  {
1935  AddNumberError(SchemaType::GetMinItemsString(),
1936  ValueType(actualCount).Move(), SValue(expectedCount).Move());
1937  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
SchemaType::SValue SValue
Definition: schema.h:1770

◆ TooFewProperties()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::TooFewProperties ( SizeType  actualCount,
SizeType  expectedCount 
)
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1955 of file schema.h.

1955  {
1956  AddNumberError(SchemaType::GetMinPropertiesString(),
1957  ValueType(actualCount).Move(), SValue(expectedCount).Move());
1958  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
SchemaType::SValue SValue
Definition: schema.h:1770

◆ TooLong()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::TooLong ( const Ch str,
SizeType  length,
SizeType  expected 
)
inline

Definition at line 1915 of file schema.h.

1915  {
1916  AddNumberError(SchemaType::GetMaxLengthString(),
1917  ValueType(str, length, GetStateAllocator()).Move(), SValue(expected).Move());
1918  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
SchemaType::SValue SValue
Definition: schema.h:1770

◆ TooManyItems()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::TooManyItems ( SizeType  actualCount,
SizeType  expectedCount 
)
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1938 of file schema.h.

1938  {
1939  AddNumberError(SchemaType::GetMaxItemsString(),
1940  ValueType(actualCount).Move(), SValue(expectedCount).Move());
1941  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
SchemaType::SValue SValue
Definition: schema.h:1770

◆ TooManyProperties()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::TooManyProperties ( SizeType  actualCount,
SizeType  expectedCount 
)
inlinevirtual

Implements internal::IValidationErrorHandler< SchemaDocumentType::SchemaType >.

Definition at line 1951 of file schema.h.

1951  {
1952  AddNumberError(SchemaType::GetMaxPropertiesString(),
1953  ValueType(actualCount).Move(), SValue(expectedCount).Move());
1954  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
SchemaType::SValue SValue
Definition: schema.h:1770

◆ TooShort()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
void GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::TooShort ( const Ch str,
SizeType  length,
SizeType  expected 
)
inline

Definition at line 1919 of file schema.h.

1919  {
1920  AddNumberError(SchemaType::GetMinLengthString(),
1921  ValueType(str, length, GetStateAllocator()).Move(), SValue(expected).Move());
1922  }
GenericValue< EncodingType, StateAllocator > ValueType
Definition: schema.h:1773
SchemaType::SValue SValue
Definition: schema.h:1770

◆ Uint()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Uint ( unsigned  u)
inline

Definition at line 2104 of file schema.h.

2104 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Uint, (CurrentContext(), u), (u)); }
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096
bool Uint(unsigned u)
Definition: schema.h:2104

◆ Uint64()

template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
bool GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::Uint64 ( uint64_t  u)
inline

Definition at line 2106 of file schema.h.

2106 { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Uint64, (CurrentContext(), u), (u)); }
bool Uint64(uint64_t u)
Definition: schema.h:2106
#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2)
Definition: schema.h:2096

The documentation for this class was generated from the following files: