GenericSchemaDocument< ValueT, Allocator > Class Template Reference

GenericSchemaDocument&lt; ValueT, Allocator &gt; Class Template Reference#

Composable Kernel: GenericSchemaDocument< ValueT, Allocator > Class Template Reference
GenericSchemaDocument< ValueT, Allocator > Class Template Reference

JSON schema document. More...

#include <schema.h>

Public Types

typedef ValueT ValueType
typedef IGenericRemoteSchemaDocumentProvider< GenericSchemaDocumentIRemoteSchemaDocumentProviderType
typedef Allocator AllocatorType
typedef ValueType::EncodingType EncodingType
typedef EncodingType::Ch Ch
typedef internal::Schema< GenericSchemaDocumentSchemaType
typedef GenericPointer< ValueType, AllocatorPointerType
typedef GenericValue< EncodingType, AllocatorTypeGValue
typedef GenericUri< ValueType, AllocatorUriType
typedef GenericStringRef< ChStringRefType

Public Member Functions

 GenericSchemaDocument (const ValueType &document, const Ch *uri=0, SizeType uriLength=0, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0, const PointerType &pointer=PointerType(), const Specification &spec=Specification(kDraft04))
 Constructor.
 ~GenericSchemaDocument ()
 Destructor.
const GValueGetURI () const
const SpecificationGetSpecification () const
bool IsSupportedSpecification () const
const SchemaTypeGetRoot () const
 Get the root schema.
GValueGetError ()
 Gets the error object.
const GValueGetError () const
void SchemaError (const SchemaErrorCode code, const PointerType &location)
 Default error method.
void SchemaErrorValue (const SchemaErrorCode code, const PointerType &location, const Ch *value, SizeType length)
 Method for error with single string value insert.
void SchemaErrorPointer (const SchemaErrorCode code, const PointerType &location, const Ch *value, SizeType length, const PointerType &pointer)
 Method for error with invalid pointer.

Static Public Member Functions

static const Specification GetSpecification (const ValueType &document)
 Static method to get the specification of any schema document.
static const StringRefTypeGetSchemaErrorKeyword (SchemaErrorCode schemaErrorCode)

Friends

class internal::Schema< GenericSchemaDocument >
template<typename, typename, typename>
class GenericSchemaValidator

Detailed Description

template<typename ValueT, typename Allocator = CrtAllocator>
class GenericSchemaDocument< ValueT, Allocator >

JSON schema document.

A JSON schema document is a compiled version of a JSON schema. It is basically a tree of internal::Schema.

Note
This is an immutable class (i.e. its instance cannot be modified after construction).
Template Parameters
ValueTType of JSON value (e.g. Value ), which also determine the encoding.
AllocatorAllocator type for allocating memory of this document.

Member Typedef Documentation

◆ AllocatorType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef Allocator GenericSchemaDocument< ValueT, Allocator >::AllocatorType

◆ Ch

template<typename ValueT, typename Allocator = CrtAllocator>
typedef EncodingType::Ch GenericSchemaDocument< ValueT, Allocator >::Ch

◆ EncodingType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef ValueType::EncodingType GenericSchemaDocument< ValueT, Allocator >::EncodingType

◆ GValue

template<typename ValueT, typename Allocator = CrtAllocator>
typedef GenericValue<EncodingType, AllocatorType> GenericSchemaDocument< ValueT, Allocator >::GValue

◆ IRemoteSchemaDocumentProviderType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef IGenericRemoteSchemaDocumentProvider<GenericSchemaDocument> GenericSchemaDocument< ValueT, Allocator >::IRemoteSchemaDocumentProviderType

◆ PointerType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef GenericPointer<ValueType, Allocator> GenericSchemaDocument< ValueT, Allocator >::PointerType

◆ SchemaType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef internal::Schema<GenericSchemaDocument> GenericSchemaDocument< ValueT, Allocator >::SchemaType

◆ StringRefType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef GenericStringRef<Ch> GenericSchemaDocument< ValueT, Allocator >::StringRefType

◆ UriType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef GenericUri<ValueType, Allocator> GenericSchemaDocument< ValueT, Allocator >::UriType

◆ ValueType

template<typename ValueT, typename Allocator = CrtAllocator>
typedef ValueT GenericSchemaDocument< ValueT, Allocator >::ValueType

Constructor & Destructor Documentation

◆ GenericSchemaDocument()

template<typename ValueT, typename Allocator = CrtAllocator>
GenericSchemaDocument< ValueT, Allocator >::GenericSchemaDocument ( const ValueType & document,
const Ch * uri = 0,
SizeType uriLength = 0,
IRemoteSchemaDocumentProviderType * remoteProvider = 0,
Allocator * allocator = 0,
const PointerType & pointer = PointerType(),
const Specification & spec = Specification(kDraft04) )
inlineexplicit

Constructor.

Compile a JSON document into schema document.

Parameters
documentA JSON document as source.
uriThe base URI of this schema document for purposes of violation reporting.
uriLengthLength of name, in code points.
remoteProviderAn optional remote schema document provider for resolving remote reference. Can be null.
allocatorAn optional allocator instance for allocating memory. Can be null.
pointerAn optional JSON pointer to the start of the schema document
specOptional schema draft or OpenAPI version. Used if no specification in document. Defaults to draft-04.

◆ ~GenericSchemaDocument()

template<typename ValueT, typename Allocator = CrtAllocator>
GenericSchemaDocument< ValueT, Allocator >::~GenericSchemaDocument ( )
inline

Destructor.

Member Function Documentation

◆ GetError() [1/2]

template<typename ValueT, typename Allocator = CrtAllocator>
GValue & GenericSchemaDocument< ValueT, Allocator >::GetError ( )
inline

Gets the error object.

◆ GetError() [2/2]

template<typename ValueT, typename Allocator = CrtAllocator>
const GValue & GenericSchemaDocument< ValueT, Allocator >::GetError ( ) const
inline

◆ GetRoot()

template<typename ValueT, typename Allocator = CrtAllocator>
const SchemaType & GenericSchemaDocument< ValueT, Allocator >::GetRoot ( ) const
inline

Get the root schema.

◆ GetSchemaErrorKeyword()

template<typename ValueT, typename Allocator = CrtAllocator>
const StringRefType & GenericSchemaDocument< ValueT, Allocator >::GetSchemaErrorKeyword ( SchemaErrorCode schemaErrorCode)
inlinestatic

◆ GetSpecification() [1/2]

template<typename ValueT, typename Allocator = CrtAllocator>
const Specification & GenericSchemaDocument< ValueT, Allocator >::GetSpecification ( ) const
inline

◆ GetSpecification() [2/2]

template<typename ValueT, typename Allocator = CrtAllocator>
const Specification GenericSchemaDocument< ValueT, Allocator >::GetSpecification ( const ValueType & document)
inlinestatic

Static method to get the specification of any schema document.

◆ GetURI()

template<typename ValueT, typename Allocator = CrtAllocator>
const GValue & GenericSchemaDocument< ValueT, Allocator >::GetURI ( ) const
inline

◆ IsSupportedSpecification()

template<typename ValueT, typename Allocator = CrtAllocator>
bool GenericSchemaDocument< ValueT, Allocator >::IsSupportedSpecification ( ) const
inline

◆ SchemaError()

template<typename ValueT, typename Allocator = CrtAllocator>
void GenericSchemaDocument< ValueT, Allocator >::SchemaError ( const SchemaErrorCode code,
const PointerType & location )
inline

Default error method.

◆ SchemaErrorPointer()

template<typename ValueT, typename Allocator = CrtAllocator>
void GenericSchemaDocument< ValueT, Allocator >::SchemaErrorPointer ( const SchemaErrorCode code,
const PointerType & location,
const Ch * value,
SizeType length,
const PointerType & pointer )
inline

Method for error with invalid pointer.

◆ SchemaErrorValue()

template<typename ValueT, typename Allocator = CrtAllocator>
void GenericSchemaDocument< ValueT, Allocator >::SchemaErrorValue ( const SchemaErrorCode code,
const PointerType & location,
const Ch * value,
SizeType length )
inline

Method for error with single string value insert.

◆ GenericSchemaValidator

template<typename ValueT, typename Allocator = CrtAllocator>
template<typename, typename, typename>
friend class GenericSchemaValidator
friend

◆ internal::Schema< GenericSchemaDocument >

template<typename ValueT, typename Allocator = CrtAllocator>
friend class internal::Schema< GenericSchemaDocument >
friend

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