package Ġcom . world turn er . me de ia . schema . validation Ċ Ċ import Ġcom . world turn er . me de ia . api . Failed Validation Result Ċ import Ġcom . world turn er . me de ia . api . Ok Validation Result Ċ import Ġcom . world turn er . me de ia . api . Validation Result Ċ import Ġcom . world turn er . me de ia . parser . Json Token Data Ċ import Ġcom . world turn er . me de ia . parser . Json Token Location Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . END _ ARRAY Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . END _ OBJECT Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . END _ OF _ STREAM Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . FIELD _ NAME Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . NONE Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . START _ ARRAY Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . START _ OBJECT Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . VALUE _ BOOLEAN _ FALSE Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . VALUE _ BOOLEAN _ TRUE Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . VALUE _ NULL Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . VALUE _ NUMBER Ċ import Ġcom . world turn er . me de ia . parser . Json TokenType . VALUE _ TEXT Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . ARRAY Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . BOOLEAN Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . INTEGER Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . NULL Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . NUMBER Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . OBJECT Ċ import Ġcom . world turn er . me de ia . schema . model . Simple Type . STRING Ċ import Ġcom . world turn er . me de ia . schema . validation . stream . Schema Validator Instance Ċ import Ġjava . net . URI Ċ import Ġjava . util . Enum Set Ċ Ċ class ĠType Validator ( ĊĠĠĠ Ġval Ġtype : ĠEnum Set < Simple Type > Ċ ) Ġ: ĠSchema Validator , ĠSchema Validator Instance Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Instance ( start Level : ĠInt ): ĠSchema Validator Instance Ġ= Ġthis ĊĊĠĠĠ Ġoverride Ġfun Ġrecord Unknown Refs ( unknown Refs : ĠMutable Collection < URI >) Ġ= ĠUnit ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate ( token : ĠJson Token Data , Ġlocation : ĠJson Token Location ): ĠValidation Result ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtype . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( when Ġ( token . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSTART _ ARRAY Ġ-> Ġit . contains ( Simple Type . ARRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUE _ TEXT Ġ-> Ġit . contains ( Simple Type . STRING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUE _ NULL Ġ-> Ġit . contains ( Simple Type . NULL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUE _ NUMBER Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . contains ( Simple Type . NUMBER ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . contains ( Simple Type . INTEGER ) Ġ&& Ġtoken . is Integer ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUE _ BOOLEAN _ TRUE , ĠVALUE _ BOOLEAN _ FALSE Ġ-> Ġit . contains ( Simple Type . BOOLEAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSTART _ OBJECT Ġ-> Ġit . contains ( Simple Type . OBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk Validation Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFailed Validation Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġlocation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrule Ġ= Ġ" type ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Type Ġmismatch , Ġdata Ġhas Ġ${ token . schema Type } Ġand Ġschema Ġhas Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ if Ġ( type . size Ġ== Ġ 1 ) Ġtype . first () Ġelse Ġtype }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( type : ĠEnum Set < Simple Type > ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype ?. let Ġ{ ĠType Validator ( type ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠJson Token Data . schema Type : ĠSimple Type ? ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ( this . type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSTART _ ARRAY , ĠEND _ ARRAY Ġ-> ĠARRAY ĊĠĠĠĠĠĠĠ ĠSTART _ OBJECT , ĠEND _ OBJECT Ġ-> ĠOBJECT ĊĠĠĠĠĠĠĠ ĠVALUE _ BOOLEAN _ FALSE , ĠVALUE _ BOOLEAN _ TRUE Ġ-> ĠBOOLEAN ĊĠĠĠĠĠĠĠ ĠVALUE _ NULL Ġ-> ĠNULL ĊĠĠĠĠĠĠĠ ĠVALUE _ NUMBER Ġ-> Ġif Ġ( is Integer ()) ĠINTEGER Ġelse ĠNUMBER ĊĠĠĠĠĠĠĠ ĠVALUE _ TEXT Ġ-> ĠSTRING ĊĠĠĠĠĠĠĠ ĠFIELD _ NAME , ĠEND _ OF _ STREAM , ĠNONE Ġ-> Ġnull ĊĠĠĠ Ġ}