IN2OSM  1.0.1
SchemaValidatingReader< parseFlags, InputStream, SourceEncoding, SchemaDocumentType, StackAllocator >

A helper class for parsing with validation. More...

#include <schema.h>

Collaboration diagram for SchemaValidatingReader< parseFlags, InputStream, SourceEncoding, SchemaDocumentType, StackAllocator >:
Collaboration graph

Public Types

typedef SchemaDocumentType::PointerType PointerType
 
typedef InputStream::Ch Ch
 
typedef GenericValue< SourceEncoding, StackAllocator > ValueType
 

Public Member Functions

 SchemaValidatingReader (InputStream &is, const SchemaDocumentType &sd)
 Constructor. More...
 
template<typename Handler >
bool operator() (Handler &handler)
 
const ParseResultGetParseResult () const
 
bool IsValid () const
 
const PointerTypeGetInvalidSchemaPointer () const
 
const ChGetInvalidSchemaKeyword () const
 
const PointerTypeGetInvalidDocumentPointer () const
 
const ValueTypeGetError () const
 

Private Attributes

InputStream & is_
 
const SchemaDocumentType & sd_
 
ParseResult parseResult_
 
PointerType invalidSchemaPointer_
 
const ChinvalidSchemaKeyword_
 
PointerType invalidDocumentPointer_
 
StackAllocator allocator_
 
ValueType error_
 
bool isValid_
 

Detailed Description

template<unsigned parseFlags, typename InputStream, typename SourceEncoding, typename SchemaDocumentType = SchemaDocument, typename StackAllocator = CrtAllocator>
class SchemaValidatingReader< parseFlags, InputStream, SourceEncoding, SchemaDocumentType, StackAllocator >

A helper class for parsing with validation.

This helper class is a functor, designed as a parameter of GenericDocument::Populate().

Template Parameters
parseFlagsCombination of ParseFlag.
InputStreamType of input stream, implementing Stream concept.
SourceEncodingEncoding of the input stream.
SchemaDocumentTypeType of schema document.
StackAllocatorAllocator type for stack.

Definition at line 2437 of file schema.h.

Member Typedef Documentation

◆ Ch

typedef InputStream::Ch Ch

Definition at line 2440 of file schema.h.

◆ PointerType

typedef SchemaDocumentType::PointerType PointerType

Definition at line 2439 of file schema.h.

◆ ValueType

typedef GenericValue<SourceEncoding, StackAllocator> ValueType

Definition at line 2441 of file schema.h.

Constructor & Destructor Documentation

◆ SchemaValidatingReader()

SchemaValidatingReader ( InputStream &  is,
const SchemaDocumentType &  sd 
)
inline

Constructor.

Parameters
isInput stream.
sdSchema document.

Definition at line 2448 of file schema.h.

2448 : is_(is), sd_(sd), invalidSchemaKeyword_(), error_(kObjectType), isValid_(true) {}
object
Definition: rapidjson.h:646
const Ch * invalidSchemaKeyword_
Definition: schema.h:2486
InputStream & is_
Definition: schema.h:2481
const SchemaDocumentType & sd_
Definition: schema.h:2482

Member Function Documentation

◆ GetError()

const ValueType& GetError ( ) const
inline

Definition at line 2478 of file schema.h.

2478 { return error_; }

◆ GetInvalidDocumentPointer()

const PointerType& GetInvalidDocumentPointer ( ) const
inline

Definition at line 2477 of file schema.h.

2477 { return invalidDocumentPointer_; }
PointerType invalidDocumentPointer_
Definition: schema.h:2487

◆ GetInvalidSchemaKeyword()

const Ch* GetInvalidSchemaKeyword ( ) const
inline

Definition at line 2476 of file schema.h.

2476 { return invalidSchemaKeyword_; }
const Ch * invalidSchemaKeyword_
Definition: schema.h:2486

◆ GetInvalidSchemaPointer()

const PointerType& GetInvalidSchemaPointer ( ) const
inline

Definition at line 2475 of file schema.h.

2475 { return invalidSchemaPointer_; }
PointerType invalidSchemaPointer_
Definition: schema.h:2485

◆ GetParseResult()

const ParseResult& GetParseResult ( ) const
inline

Definition at line 2473 of file schema.h.

2473 { return parseResult_; }
ParseResult parseResult_
Definition: schema.h:2484

◆ IsValid()

bool IsValid ( ) const
inline

Definition at line 2474 of file schema.h.

2474 { return isValid_; }

◆ operator()()

bool operator() ( Handler &  handler)
inline

Definition at line 2451 of file schema.h.

2451  {
2454  parseResult_ = reader.template Parse<parseFlags>(is_, validator);
2455 
2456  isValid_ = validator.IsValid();
2457  if (isValid_) {
2461  error_.SetObject();
2462  }
2463  else {
2464  invalidSchemaPointer_ = validator.GetInvalidSchemaPointer();
2465  invalidSchemaKeyword_ = validator.GetInvalidSchemaKeyword();
2466  invalidDocumentPointer_ = validator.GetInvalidDocumentPointer();
2467  error_.CopyFrom(validator.GetError(), allocator_);
2468  }
2469 
2470  return parseResult_;
2471  }
StackAllocator allocator_
Definition: schema.h:2488
SchemaDocumentType::PointerType PointerType
Definition: schema.h:2439
JSON Schema Validator.
Definition: fwd.h:145
const Ch * invalidSchemaKeyword_
Definition: schema.h:2486
PointerType invalidDocumentPointer_
Definition: schema.h:2487
PointerType invalidSchemaPointer_
Definition: schema.h:2485
InputStream & is_
Definition: schema.h:2481
SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator.
Definition: fwd.h:88
const SchemaDocumentType & sd_
Definition: schema.h:2482
ParseResult parseResult_
Definition: schema.h:2484
Here is the call graph for this function:

Member Data Documentation

◆ allocator_

StackAllocator allocator_
private

Definition at line 2488 of file schema.h.

◆ error_

ValueType error_
private

Definition at line 2489 of file schema.h.

◆ invalidDocumentPointer_

PointerType invalidDocumentPointer_
private

Definition at line 2487 of file schema.h.

◆ invalidSchemaKeyword_

const Ch* invalidSchemaKeyword_
private

Definition at line 2486 of file schema.h.

◆ invalidSchemaPointer_

PointerType invalidSchemaPointer_
private

Definition at line 2485 of file schema.h.

◆ is_

InputStream& is_
private

Definition at line 2481 of file schema.h.

◆ isValid_

bool isValid_
private

Definition at line 2490 of file schema.h.

◆ parseResult_

ParseResult parseResult_
private

Definition at line 2484 of file schema.h.

◆ sd_

const SchemaDocumentType& sd_
private

Definition at line 2482 of file schema.h.


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