package Ġau . com . di us . p act . consumer . dsl Ċ Ċ import Ġau . com . di us . p act . consumer . Invalid Matcher Exception Ċ import Ġau . com . di us . p act . core . matchers . Url Matcher Support Ċ import Ġau . com . di us . p act . core . model . generators . Category Ċ import Ġau . com . di us . p act . core . model . generators . Date Generator Ċ import Ġau . com . di us . p act . core . model . generators . DateTime Generator Ċ import Ġau . com . di us . p act . core . model . generators . Mock Server URL Generator Ċ import Ġau . com . di us . p act . core . model . generators . Provider State Generator Ċ import Ġau . com . di us . p act . core . model . generators . Random Boolean Generator Ċ import Ġau . com . di us . p act . core . model . generators . Random Decimal Generator Ċ import Ġau . com . di us . p act . core . model . generators . Random Hex adecimal Generator Ċ import Ġau . com . di us . p act . core . model . generators . Random Int Generator Ċ import Ġau . com . di us . p act . core . model . generators . Random String Generator Ċ import Ġau . com . di us . p act . core . model . generators . Time Generator Ċ import Ġau . com . di us . p act . core . model . generators . Uuid Generator Ċ import Ġau . com . di us . p act . core . model . matching rules . Equals Ignore Order Matcher Ċ import Ġau . com . di us . p act . core . model . matching rules . Equals Matcher Ċ import Ġau . com . di us . p act . core . model . matching rules . Matching Rule Ċ import Ġau . com . di us . p act . core . model . matching rules . Matching Rule Group Ċ import Ġau . com . di us . p act . core . model . matching rules . Max Equals Ignore Order Matcher Ċ import Ġau . com . di us . p act . core . model . matching rules . Min Equals Ignore Order Matcher Ċ import Ġau . com . di us . p act . core . model . matching rules . MinMax Equals Ignore Order Matcher Ċ import Ġau . com . di us . p act . core . model . matching rules . Number Type Matcher Ċ import Ġau . com . di us . p act . core . model . matching rules . Rule Logic Ċ import Ġau . com . di us . p act . core . model . matching rules . Type Matcher Ċ import Ġau . com . di us . p act . core . support . Json Ċ import Ġau . com . di us . p act . core . support . Json . toJson Ċ import Ġau . com . di us . p act . core . support . expressions . DataType . Companion . from Ċ import Ġau . com . di us . p act . core . support . json . JsonValue Ċ import Ġorg . apache . commons . lang 3 . StringUtils Ċ import Ġorg . apache . commons . lang 3 . time . DateFormat Utils Ċ import Ġorg . apache . commons . lang 3 . time . Fast DateFormat Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . time . Instant Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util . Date Ċ Ċ /** Ċ Ġ* ĠDSL Ġto Ġdefine Ġa ĠJSON Ġarray Ċ Ġ*/ Ċ @ Suppress (" Large Class ", Ġ" Too Many Functions ", Ġ" Spread Operator ") Ċ open Ġclass ĠP act Dsl JsonArray Ġ: ĠD sl Part Ġ{ ĊĠ Ġfinal Ġoverride Ġvar Ġbody : ĠJson Value ĊĠ Ġprivate Ġvar Ġwild Card : ĠBoolean ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSets Ġthe Ġnumber Ġof Ġexample Ġelements Ġto Ġgenerate Ġfor Ġsample Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġvar Ġnumber Examples Ġ= Ġ 1 ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConstruct Ġan Ġarray Ġas Ġa Ġchild Ġcopied Ġfrom Ġan Ġexisting Ġarray ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġroot Path ĠPath Ġto Ġthe Ġchild Ġarray ĊĠĠ Ġ* Ġ@ param Ġroot Name ĠName Ġto Ġassociate Ġthe Ġchild Ġas ĊĠĠ Ġ* Ġ@ param Ġparent ĠĠ ĠParent Ġto Ġattach Ġthe Ġchild Ġto ĊĠĠ Ġ* Ġ@ param Ġarray ĠĠĠ ĠArray Ġto Ġcopy ĊĠĠ Ġ*/ ĊĠ Ġconstructor ( rootPath : ĠString , Ġroot Name : ĠString , Ġparent : ĠD sl Part ?, Ġarray : ĠP act Dsl JsonArray ) ĊĠĠĠ Ġ: Ġsuper ( parent , Ġroot Path , Ġroot Name ) Ġ{ ĊĠĠĠ Ġbody Ġ= Ġarray . body ĊĠĠĠ Ġwild Card Ġ= Ġarray . wild Card ĊĠĠĠ Ġmatch ers Ġ= Ġarray . matchers . copy With Updated Matcher Root Prefix ( rootPath ) ĊĠĠĠ Ġgenerators Ġ= Ġarray . generators ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConstruct Ġa Ġarray Ġas Ġa Ġchild ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġroot Path ĠPath Ġto Ġthe Ġchild Ġarray ĊĠĠ Ġ* Ġ@ param Ġroot Name ĠName Ġto Ġassociate Ġthe Ġchild Ġas ĊĠĠ Ġ* Ġ@ param Ġparent ĠĠ ĠParent Ġto Ġattach Ġthe Ġchild Ġto ĊĠĠ Ġ* Ġ@ param Ġwild Card ĠIf Ġit Ġshould Ġbe Ġmatched Ġas Ġa Ġwild Ġcard ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġconstructor ( rootPath : ĠString Ġ= Ġ"", Ġroot Name : ĠString Ġ= Ġ"", Ġparent : ĠD sl Part ? Ġ= Ġnull , Ġwild Card : ĠBoolean Ġ= Ġfalse ) ĊĠĠĠ Ġ: Ġsuper ( parent , Ġroot Path , Ġroot Name ) Ġ{ ĊĠĠĠ Ġthis . wild Card Ġ= Ġwild Card ĊĠĠĠ Ġbody Ġ= ĠJson Value . Array () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCloses Ġthe Ġcurrent Ġarray ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġclose Array (): ĠD sl Part ? Ġ{ ĊĠĠĠ Ġif Ġ( parent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Array Private ( this ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġmatch ers . apply Matcher Root Prefix ("$ ") ĊĠĠĠĠĠ Ġgenerators . apply Root Prefix ("$ ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġclosed Ġ= Ġtrue ĊĠĠĠ Ġreturn Ġparent ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Like ( name : ĠString ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Like () Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Like ( name : ĠString , Ġobj : ĠD sl Part ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Like ( Dsl Part Ġobject ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Like ( name : ĠString , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Like ( number Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġan Ġarray Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġeach Like (): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġreturn Ġeach Like ( 1 ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Like ( obj : ĠD sl Part ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠType Matcher ) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġif Ġ( obj Ġis ĠP act Dsl Json Body ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Object Private ( obj ) ĊĠĠĠ Ġ} Ġelse Ġif Ġ( obj Ġis ĠP act Dsl JsonArray ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Array Private ( obj ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġparent . close Array () !!. as Array () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġan Ġarray Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġeach Like ( number Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠType Matcher ) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Array Like ( name : ĠString , Ġsize : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmin Array Like ( Integer Ġsize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġan Ġarray Ġwith Ġa Ġminimum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsize Ġminimum Ġsize Ġof Ġthe Ġarray ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġmin Array Like ( size : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġreturn Ġmin Array Like ( size , Ġsize ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Array Like ( name : ĠString , Ġsize : ĠInt , Ġobj : ĠD sl Part ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmin Array Like ( Integer Ġsize , ĠD sl Part Ġobject ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Array Like ( size : ĠInt , Ġobj : ĠD sl Part ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Min ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġsize ĊĠĠĠ Ġif Ġ( obj Ġis ĠP act Dsl Json Body ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Object Private ( obj ) ĊĠĠĠ Ġ} Ġelse Ġif Ġ( obj Ġis ĠP act Dsl JsonArray ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Array Private ( obj ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġparent . close Array () !!. as Array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Array Like ( name : ĠString , Ġsize : ĠInt , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmin Array Like ( Integer Ġsize , Ġint Ġnumber Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġan Ġarray Ġwith Ġa Ġminimum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsize ĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġsize Ġof Ġthe Ġarray ĊĠĠ Ġ* Ġ@ param Ġnumber Examples Ġnumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġmin Array Like ( size : ĠInt , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ>= Ġsize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġsize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Min ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmax Array Like ( name : ĠString , Ġsize : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmax Array Like ( Integer Ġsize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġan Ġarray Ġwith Ġa Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsize Ġmaximum Ġsize Ġof Ġthe Ġarray ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġmax Array Like ( size : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġreturn Ġmax Array Like ( size , Ġ 1 ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmax Array Like ( name : ĠString , Ġsize : ĠInt , Ġobj : ĠD sl Part ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmax Array Like ( Integer Ġsize , ĠD sl Part Ġobject ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmax Array Like ( size : ĠInt , Ġobj : ĠD sl Part ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Max ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġif Ġ( obj Ġis ĠP act Dsl Json Body ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Object Private ( obj ) ĊĠĠĠ Ġ} Ġelse Ġif Ġ( obj Ġis ĠP act Dsl JsonArray ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Array Private ( obj ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġparent . close Array () !!. as Array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmax Array Like ( name : ĠString , Ġsize : ĠInt , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmax Array Like ( Integer Ġsize , Ġint Ġnumber Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġan Ġarray Ġwith Ġa Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsize ĠĠĠĠĠĠĠĠĠĠ Ġmaximum Ġsize Ġof Ġthe Ġarray ĊĠĠ Ġ* Ġ@ param Ġnumber Examples Ġnumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġmax Array Like ( size : ĠInt , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ<= Ġsize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġsize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Max ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġput Object Private ( obj : ĠD sl Part ) Ġ{ ĊĠĠĠ Ġfor Ġ( matcher Name Ġin Ġobj . matchers . matching Rules . keys ) Ġ{ ĊĠĠĠĠĠ Ġmatch ers . set Rules ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ) Ġ+ Ġmatcher Name , ĊĠĠĠĠĠĠĠ Ġobj . matchers . matching Rules [ matcher Name ] !! ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġgenerators . add Generators ( obj . generators , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 )) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnumber Examples ) Ġ{ ĊĠĠĠĠĠ Ġbody . add ( obj . body ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġput Array Private ( obj : ĠD sl Part ) Ġ{ ĊĠĠĠ Ġfor Ġ( matcher Name Ġin Ġobj . matchers . matching Rules . keys ) Ġ{ ĊĠĠĠĠĠ Ġmatch ers . set Rules ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ) Ġ+ Ġmatcher Name , ĊĠĠĠĠĠĠĠ Ġobj . matchers . matching Rules [ matcher Name ] !! ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġgenerators . add Generators ( obj . generators , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 )) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnumber Examples ) Ġ{ ĊĠĠĠĠĠ Ġbody . add ( obj . body ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġthe Ġspecified Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue Ġstring Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstring Value ( value : ĠString ?): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġbody . add ( JsonValue . Null ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġbody . add ( JsonValue . StringValue ( value . toCharArray ())) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġthe Ġspecified Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue Ġstring Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstring ( value : ĠString ?): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn Ġstring Value ( value ) ĊĠ Ġ} ĊĊĠ Ġfun Ġnumber Value ( value : ĠNumber ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Decimal ( value . toString (). toCharArray ())) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġthe Ġspecified Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue Ġnumber Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġnumber ( value : ĠNumber ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn Ġnumber Value ( value ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġthe Ġspecified Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue Ġboolean Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġboolean Value ( value : ĠBoolean ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( if Ġ( value ) ĠJson Value . True Ġelse ĠJson Value . False ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġthe Ġsame Ġtype Ġas Ġthe Ġexample ĊĠĠ Ġ*/ ĊĠ Ġfun Ġlike ( example : ĠAny ?): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( toJson ( example )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġcan Ġbe Ġany Ġstring ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstring Type (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . StringValue (" string ". toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠRandom String Generator ( 2 0 )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġcan Ġbe Ġany Ġstring ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġvalue Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstring Type ( example : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( example . toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġcan Ġbe Ġany Ġnumber ĊĠĠ Ġ*/ ĊĠ Ġfun Ġnumber Type (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 ), ĠRandom Int Generator ( 0 , ĠInt . MAX _ VALUE )) ĊĠĠĠ Ġreturn Ġnumber Type ( 1 0 0 ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġcan Ġbe Ġany Ġnumber ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġnumber Ġexample Ġnumber Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġnumber Type ( number : ĠNumber ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Decimal ( number . toString (). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠNumber Type Matcher ( Number Type Matcher . Number Type . NUMBER )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġan Ġinteger ĊĠĠ Ġ*/ ĊĠ Ġfun Ġinteger Type (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 ), ĠRandom Int Generator ( 0 , ĠInt . MAX _ VALUE )) ĊĠĠĠ Ġreturn Ġinteger Type ( 1 0 0 L ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġan Ġinteger ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġnumber Ġexample Ġinteger Ġvalue Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġinteger Type ( number : ĠLong ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Integer ( number . toString (). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠNumber Type Matcher ( Number Type Matcher . Number Type . INTEGER )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġa Ġdecimal Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdecimal Type (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 ), ĠRandom Decimal Generator ( 1 0 )) ĊĠĠĠ Ġreturn Ġdecimal Type ( BigDecimal (" 1 0 0 ")) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġa Ġdecimal Type Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġnumber Ġexample Ġdecimal Type Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdecimal Type ( number : ĠBigDecimal ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Decimal ( number . toString (). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠNumber Type Matcher ( Number Type Matcher . Number Type . DECIMAL )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAttribute Ġthat Ġmust Ġbe Ġa Ġdecimal Type Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġnumber Ġexample Ġdecimal Type Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdecimal Type ( number : ĠDouble ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Decimal ( number . toString (). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠNumber Type Matcher ( Number Type Matcher . Number Type . DECIMAL )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġa Ġboolean ĊĠĠ Ġ*/ ĊĠ Ġfun Ġboolean Type (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 ), ĠRandom Boolean Generator ) ĊĠĠĠ Ġbody . add ( JsonValue . True ) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġa Ġboolean ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġboolean Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġboolean Type ( example : ĠBoolean ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( if Ġ( example ) ĠJson Value . True Ġelse ĠJson Value . False ) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġregular Ġexpression ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġregex Ġregular Ġexpression ĊĠĠ Ġ* Ġ@ param Ġvalue Ġexample Ġvalue Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstring Matcher ( regex : ĠString , Ġvalue : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġif Ġ(! value . matches ( Regex ( regex ))) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠInvalid Matcher Exception (" Example Ġ\"$ value \" Ġdoes Ġnot Ġmatch Ġregular Ġexpression Ġ\"$ regex \" ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( value . toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġregexp ( regex )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġan ĠISO Ġformatted Ġtimestamp ĊĠĠ Ġ*/ ĊĠ Ġ@ Deprecated (" use Ġdatetime ") ĊĠ Ġfun Ġtimestamp (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġpattern Ġ= ĠDate Format Utils . ISO _ DATETIME _ FORMAT . pattern ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( ĊĠĠĠĠĠ ĠDate Format Utils . ISO _ DATETIME _ FORMAT . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDateTime Generator ( pattern )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( pattern )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtimestamp Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġtimestamp Ġformat ĊĠĠ Ġ*/ ĊĠ Ġ@ Deprecated (" use Ġdatetime ") ĊĠ Ġfun Ġtimestamp ( format : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDateTime Generator ( format )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtimestamp Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġ Ġtimestamp Ġformat ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġdate Ġand Ġtime Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġ@ Deprecated (" use Ġdatetime ") ĊĠ Ġfun Ġtimestamp ( format : ĠString , Ġexample : ĠDate ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( example ). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtimestamp Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġ Ġtimestamp Ġformat ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġdate Ġand Ġtime Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġ@ Deprecated (" use Ġdatetime ") ĊĠ Ġfun Ġtimestamp ( format : ĠString , Ġexample : ĠInstant ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( formatter . format ( example ). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġan ĠISO Ġformatted Ġtimestamp ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdatetime (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġpattern Ġ= ĠDate Format Utils . ISO _ DATETIME _ FORMAT . pattern ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( ĊĠĠĠĠĠ ĠDate Format Utils . ISO _ DATETIME _ FORMAT . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDateTime Generator ( pattern )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( pattern )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtimestamp Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġtimestamp Ġformat ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdatetime ( format : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDateTime Generator ( format )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtimestamp Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġ Ġtimestamp Ġformat ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġdate Ġand Ġtime Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdatetime ( format : ĠString , Ġexample : ĠDate ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( example ). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtimestamp Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġ Ġtimestamp Ġformat ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġdate Ġand Ġtime Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdatetime ( format : ĠString , Ġexample : ĠInstant ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( formatter . format ( example ). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġformatted Ġas Ġan ĠISO Ġdate ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdate (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġpattern Ġ= ĠDate Format Utils . ISO _ DATE _ FORMAT . pattern ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( DateFormat Utils . ISO _ DATE _ FORMAT . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDate Generator ( pattern )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Date ( pattern )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġprovided Ġdate Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġdate Ġformat Ġto Ġmatch ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdate ( format : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDateTime Generator ( format )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Date ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġprovided Ġdate Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġ Ġdate Ġformat Ġto Ġmatch ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġdate Ġto Ġuse Ġfor Ġgenerated Ġvalues ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdate ( format : ĠString , Ġexample : ĠDate ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( example ). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Date ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġan ĠISO Ġformatted Ġtime ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtime (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġpattern Ġ= ĠDate Format Utils . ISO _ TIME _ FORMAT . pattern ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( DateFormat Utils . ISO _ TIME _ FORMAT . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠTime Generator ( pattern )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Time ( pattern )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtime Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġtime Ġformat Ġto Ġmatch ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtime ( format : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠTime Generator ( format )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Time ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġmatch Ġthe Ġgiven Ġtime Ġformat ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġformat Ġ Ġtime Ġformat Ġto Ġmatch ĊĠĠ Ġ* Ġ@ param Ġexample Ġexample Ġtime Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtime ( format : ĠString , Ġexample : ĠDate ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( example ). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Time ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġan ĠIP 4 Ġaddress ĊĠĠ Ġ*/ ĊĠ Ġfun Ġip Address (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . StringValue (" 1 2 7 . 0 . 0 . 1 ". toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġregexp ("( \\ d { 1 , 3 }\\ . )+ \\ d { 1 , 3 } ")) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġ` object `( name : ĠString ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġobject () Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġa ĠJSON Ġobject ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġ` object ` (): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġthis ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġclose Object (): ĠD sl Part ? Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" can 't Ġcall Ġclose Object Ġon Ġan ĠArray ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġclose (): ĠD sl Part ? Ġ{ ĊĠĠĠ Ġvar Ġparent To Return : ĠD sl Part ? Ġ= Ġthis ĊĠĠĠ Ġif Ġ(! closed ) Ġ{ ĊĠĠĠĠĠ Ġvar Ġparent : ĠD sl Part ? Ġ= Ġclose Array () ĊĠĠĠĠĠ Ġwhile Ġ( parent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparent To Return Ġ= Ġparent ĊĠĠĠĠĠĠĠ Ġparent Ġ= Ġif Ġ( parent Ġis ĠP act Dsl JsonArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġparent . close Array () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġparent . close Object () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġparent To Return ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġarray Containing ( name : ĠString ): ĠD sl Part Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException ( ĊĠĠĠĠĠ Ġ" array Containing Ġis Ġnot Ġcurrently Ġsupported Ġfor Ġarrays ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġarray ( name : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġarray () Ġform ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġis Ġa ĠJSON Ġarray ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġarray (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn ĠP act Dsl JsonArray ("", Ġ"", Ġthis ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered Array ( name : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġunordered Array () Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered Array (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠEquals Ignore Order Matcher ) ĊĠĠĠ Ġreturn Ġthis . array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered Min Array ( name : ĠString , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġunordered Min Array ( int Ġsize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered Min Array ( size : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠMin Equals Ignore Order Matcher ( size )) ĊĠĠĠ Ġreturn Ġthis . array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered Max Array ( name : ĠString , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġunordered Max Array ( int Ġsize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered Max Array ( size : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠMax Equals Ignore Order Matcher ( size )) ĊĠĠĠ Ġreturn Ġthis . array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered MinMax Array ( name : ĠString , Ġmin Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġunordered MinMax Array ( int Ġmin Size , Ġint ĠmaxSize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunordered MinMax Array ( min Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( min Size Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" The Ġminimum Ġsize Ġof Ġ% d Ġis Ġgreater Ġthan Ġthe Ġmaximum Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġmin Size , ĠmaxSize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠMin Max Equals Ignore Order Matcher ( min Size , ĠmaxSize )) ĊĠĠĠ Ġreturn Ġthis . array () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMat ches Ġrule Ġfor Ġall Ġelements Ġin Ġarray ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġrule ĠMatch ing Ġrule Ġto Ġapply Ġacross Ġarray ĊĠĠ Ġ*/ ĊĠ Ġfun Ġwildcard Array Matcher ( rule : ĠMatch ing Rule ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġwild Card Ġ= Ġtrue ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġrule ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġa Ġnumeric Ġidentifier ĊĠĠ Ġ*/ ĊĠ Ġfun Ġid (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Integer (" 1 0 0 ". toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠRandom Int Generator ( 0 , ĠInt . MAX _ VALUE )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġa Ġnumeric Ġidentifier ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġid Ġexample Ġid Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġid ( id : ĠLong ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Integer ( id . toString (). toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġencoded Ġas Ġa Ġhexadecimal Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġfun Ġhex Value (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 ), ĠRandom Hex adecimal Generator ( 1 0 )) ĊĠĠĠ Ġreturn Ġhex Value (" 1 2 3 4 a ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġencoded Ġas Ġa Ġhexadecimal Ġvalue ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġhex Value Ġexample Ġvalue Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġhex Value ( hex Value : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġif Ġ(! hex Value . matches ( HEX A DECIMAL )) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠInvalid Matcher Exception (" Example Ġ\"$ hex Value \" Ġis Ġnot Ġa Ġhexadecimal Ġvalue ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( hex Value . toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġregexp ("[ 0 - 9 a - fA - F ]+ ")) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġencoded Ġas Ġan ĠUUID ĊĠĠ Ġ*/ ĊĠ Ġfun Ġuuid (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 1 ), ĠU uid Generator ()) ĊĠĠĠ Ġreturn Ġuuid (" e 2 4 9 0 de 5 - 5 bd 3 - 4 3 d 5 - b 7 c 4 - 5 2 6 e 3 3 f 7 1 3 0 4 ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġthat Ġmust Ġbe Ġencoded Ġas Ġan ĠUUID ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġuuid Ġexample ĠUUID Ġto Ġuse Ġfor Ġgenerated Ġbodies ĊĠĠ Ġ*/ ĊĠ Ġfun Ġuuid ( uuid : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġif Ġ(! uuid . matches ( UUID _ REGEX )) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠInvalid Matcher Exception (" Example Ġ\"$ uuid \" Ġis Ġnot Ġan ĠUUID ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( uuid . toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġregexp ( UUID _ REGEX . pattern )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġthe Ġtemplate Ġobject Ġto Ġthe Ġarray ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġtemplate Ġtemplate Ġobject ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtemplate ( template : ĠD sl Part ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġput Object Private ( template ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġa Ġnumber Ġof Ġtemplate Ġobjects Ġto Ġthe Ġarray ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġtemplate ĠĠĠ Ġtemplate Ġobject ĊĠĠ Ġ* Ġ@ param Ġoccurrences Ġnumber Ġto Ġadd ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtemplate ( template : ĠD sl Part , Ġoccurrences : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġoccurrences ) Ġ{ ĊĠĠĠĠĠ Ġtemplate ( template ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġbody . toString () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġappend ArrayIndex ( offset : ĠInt ): ĠString Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ"*" ĊĠĠĠ Ġif Ġ(! wild Card ) Ġ{ ĊĠĠĠĠĠ Ġindex Ġ= Ġ( body . size () Ġ- Ġ 1 Ġ+ Ġoffset ). toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ" [$ index ]" ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġa Ġnull Ġvalue Ġto Ġthe Ġlist ĊĠĠ Ġ*/ ĊĠ Ġfun Ġnull Value (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . Null ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array Like ( name : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array Like () Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array Like ( name : ĠString , Ġnumber Examples : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array Like ( number Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array Like (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn Ġeach Array Like ( 1 ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array Like ( number Examples : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠType Matcher ) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl JsonArray ("", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Max Like ( name : ĠString , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array With Max Like () Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Max Like ( name : ĠString , Ġnumber Examples : ĠInt , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array With Max Like ( number Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Max Like ( size : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn Ġeach Array With Max Like ( 1 , Ġsize ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Max Like ( number Examples : ĠInt , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ<= Ġsize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġsize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Max ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl JsonArray ("", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Min Like ( name : ĠString , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array With Min Like () Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Min Like ( name : ĠString , Ġnumber Examples : ĠInt , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array With Min Like ( number Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Min Like ( size : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn Ġeach Array With Min Like ( size , Ġsize ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With Min Like ( number Examples : ĠInt , Ġsize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ>= Ġsize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġsize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Min ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl JsonArray ("", Ġ"", Ġparent ) ĊĠ Ġ} ĊĠ Ġ/** ĊĠĠ Ġ* ĠArray Ġof Ġvalues Ġthat Ġare Ġnot Ġobjects Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠĠĠĠĠĠ ĠValue Ġto Ġuse Ġto Ġmatch Ġeach Ġitem ĊĠĠ Ġ* Ġ@ param Ġnumber Examples Ġnumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠ Ġ*/ ĊĠ Ġ/** ĊĠĠ Ġ* ĠArray Ġof Ġvalues Ġthat Ġare Ġnot Ġobjects Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue ĠValue Ġto Ġuse Ġto Ġmatch Ġeach Ġitem ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġeach Like ( value : ĠP act Dsl Json Root Value ?, Ġnumber Examples : ĠInt Ġ= Ġ 1 ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġ" Testing ĠZero Ġexamples Ġis Ġunsafe . ĠPlease Ġmake Ġsure Ġto Ġprovide Ġat Ġleast Ġone Ġ" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" example Ġin Ġthe ĠP act Ġprovider Ġimplementation . ĠSee Ġhttps :// github . com / Di US / p act - jvm / issues / 5 4 6 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), ĠType Matcher ) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġparent . put Object Private ( value !! ) ĊĠĠĠ Ġreturn Ġparent . close Array () Ġas ĠP act Dsl JsonArray ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠArray Ġof Ġvalues Ġwith Ġa Ġminimum Ġsize Ġthat Ġare Ġnot Ġobjects Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsize ĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġsize Ġof Ġthe Ġarray ĊĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠĠĠĠĠĠ ĠValue Ġto Ġuse Ġto Ġmatch Ġeach Ġitem ĊĠĠ Ġ* Ġ@ param Ġnumber Examples Ġnumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġmin Array Like ( size : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ?, Ġnumber Examples : ĠInt Ġ= Ġsize ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ>= Ġsize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġsize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Min ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġparent . put Object Private ( value !! ) ĊĠĠĠ Ġreturn Ġparent . close Array () Ġas ĠP act Dsl JsonArray ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠArray Ġof Ġvalues Ġwith Ġa Ġmaximum Ġsize Ġthat Ġare Ġnot Ġobjects Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġexample ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsize ĠĠĠĠĠĠĠĠĠĠ Ġmaximum Ġsize Ġof Ġthe Ġarray ĊĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠĠĠĠĠĠ ĠValue Ġto Ġuse Ġto Ġmatch Ġeach Ġitem ĊĠĠ Ġ* Ġ@ param Ġnumber Examples Ġnumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġmax Array Like ( size : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ?, Ġnumber Examples : ĠInt Ġ= Ġ 1 ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( number Examples Ġ<= Ġsize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġsize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch Max ( size )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġparent . put Object Private ( value !! ) ĊĠĠĠ Ġreturn Ġparent . close Array () Ġas ĠP act Dsl JsonArray ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠList Ġitem Ġthat Ġmust Ġinclude Ġthe Ġprovided Ġstring ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue ĠValue Ġthat Ġmust Ġbe Ġincluded ĊĠĠ Ġ*/ ĊĠ Ġfun Ġincludes Str ( value : ĠString ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( value . toCharArray ())) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġincludes Matcher ( value )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAttribute Ġthat Ġmust Ġbe Ġequal Ġto Ġthe Ġprovided Ġvalue . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue ĠValue Ġthat Ġwill Ġbe Ġused Ġfor Ġcomparisons ĊĠĠ Ġ*/ ĊĠ Ġfun Ġequals To ( value : ĠAny ?): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( toJson ( value )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠEquals Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCombine Ġall Ġthe Ġmatch ers Ġusing ĠAND ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue ĠAttribute Ġexample Ġvalue ĊĠĠ Ġ* Ġ@ param Ġrules ĠMatch ing Ġrules Ġto Ġapply ĊĠĠ Ġ*/ ĊĠ Ġfun Ġand ( value : ĠAny ?, Ġvar arg Ġrules : ĠMatch ing Rule ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( toJson ( value )) ĊĠĠĠ Ġmatch ers . set Rules ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠMatch ing Rule Group ( mutable ListOf (* rules ), ĠRule Logic . AND )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCombine Ġall Ġthe Ġmatch ers Ġusing ĠOR ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġvalue ĠAttribute Ġexample Ġvalue ĊĠĠ Ġ* Ġ@ param Ġrules ĠMatch ing Ġrules Ġto Ġapply ĊĠĠ Ġ*/ ĊĠ Ġfun Ġor ( value : ĠAny ?, Ġvar arg Ġrules : ĠMatch ing Rule ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( toJson ( value )) ĊĠĠĠ Ġmatch ers . set Rules ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠMatch ing Rule Group ( mutable ListOf (* rules ), ĠRule Logic . OR )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMat ches Ġa ĠURL Ġthat Ġis Ġcomposed Ġof Ġa Ġbase Ġpath Ġand Ġa Ġsequence Ġof Ġpath Ġexpressions ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param ĠbasePath ĠĠĠĠĠ ĠThe Ġbase Ġpath Ġfor Ġthe ĠURL Ġ( like Ġ" http :// localhost : 8 0 8 0 /") Ġwhich Ġwill Ġbe ĊĠĠ Ġ* Ġexcluded Ġfrom Ġthe Ġmatching ĊĠĠ Ġ* Ġ@ param Ġpath Fragments ĠSeries Ġof Ġpath Ġfragments Ġto Ġmatch Ġon . ĠThese Ġcan Ġbe Ġstrings Ġor Ġregular Ġexpressions . ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġmatch Url ( basePath : ĠString ?, Ġvar arg Ġpath Fragments : ĠAny ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġurl Matcher Ġ= ĠUrl Matcher Support ( basePath , ĠlistOf (* path Fragments )) ĊĠĠĠ Ġval Ġexample Value Ġ= Ġurl Matcher . get Example Value () ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( example Value . toCharArray ())) ĊĠĠĠ Ġval Ġregex Expression Ġ= Ġurl Matcher . get Regex Expression () ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġregexp ( regex Expression )) ĊĠĠĠ Ġif Ġ( StringUtils . isEmpty ( basePath )) Ġ{ ĊĠĠĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĊĠĠĠĠĠĠĠ ĠMock Server URL Generator ( example Value , Ġregex Expression )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmatch Url ( name : ĠString , ĠbasePath : ĠString ?, Ġvar arg Ġpath Fragments : ĠAny ): ĠD sl Part Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException ( ĊĠĠĠĠĠ Ġ" URL Ġmatcher Ġwith Ġan Ġattribute Ġname Ġis Ġnot Ġsupported Ġfor Ġarrays . Ġ" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" Use Ġmatch Url ( String Ġbase , ĠObject ... Ġfragments )") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmatch Url 2 ( name : ĠString , Ġvar arg Ġpath Fragments : ĠAny ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException ( ĊĠĠĠĠĠ Ġ" URL Ġmatcher Ġwith Ġan Ġattribute Ġname Ġis Ġnot Ġsupported Ġfor Ġarrays . Ġ" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" Use Ġmatch Url 2 ( Object ... Ġpath Fragments )") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMat ches Ġa ĠURL Ġthat Ġis Ġcomposed Ġof Ġa Ġbase Ġpath Ġand Ġa Ġsequence Ġof Ġpath Ġexpressions . ĠBase Ġpath Ġfrom Ġthe Ġmock Ġserver ĊĠĠ Ġ* Ġwill Ġbe Ġused . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġpath Fragments ĠSeries Ġof Ġpath Ġfragments Ġto Ġmatch Ġon . ĠThese Ġcan Ġbe Ġstrings Ġor Ġregular Ġexpressions . ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġmatch Url 2 ( var arg Ġpath Fragments : ĠAny ): ĠD sl Part Ġ{ ĊĠĠĠ Ġreturn Ġmatch Url ( null , Ġ* path Fragments ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Max Array Like ( name : ĠString , Ġmin Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmin Max Array Like ( min Size , ĠmaxSize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Max Array Like ( name : ĠString , Ġmin Size : ĠInt , ĠmaxSize : ĠInt , Ġobj : ĠD sl Part ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmin Max Array Like ( min Size , ĠmaxSize , Ġobject ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Max Array Like ( min Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġreturn Ġmin Max Array Like ( min Size , ĠmaxSize , Ġmin Size ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Max Array Like ( min Size : ĠInt , ĠmaxSize : ĠInt , Ġobj : ĠD sl Part ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch MinMax ( min Size , ĠmaxSize )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġmin Size ĊĠĠĠ Ġif Ġ( obj Ġis ĠP act Dsl Json Body ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Object Private ( obj ) ĊĠĠĠ Ġ} Ġelse Ġif Ġ( obj Ġis ĠP act Dsl JsonArray ) Ġ{ ĊĠĠĠĠĠ Ġparent . put Array Private ( obj ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġparent . close Array () !!. as Array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Max Array Like ( name : ĠString , Ġmin Size : ĠInt , ĠmaxSize : ĠInt , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġmin Max Array Like ( min Size , ĠmaxSize , Ġnumber Examples ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġmin Max Array Like ( min Size : ĠInt , ĠmaxSize : ĠInt , Ġnumber Examples : ĠInt ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠ Ġrequire ( min Size Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" The Ġminimum Ġsize Ġof Ġ% d Ġis Ġgreater Ġthan Ġthe Ġmaximum Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġmin Size , ĠmaxSize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġrequire ( number Examples Ġ>= Ġmin Size ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġmin Size ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġrequire ( number Examples Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġgreater Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , ĠmaxSize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch MinMax ( min Size , ĠmaxSize )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With MinMax Like ( name : ĠString , Ġmin Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array With MinMax Like ( min Size , ĠmaxSize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With MinMax Like ( min Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġreturn Ġeach Array With MinMax Like ( min Size , Ġmin Size , ĠmaxSize ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With MinMax Like ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġnumber Examples : ĠInt , ĊĠĠĠ Ġmin Size : ĠInt , ĊĠĠĠ ĠmaxSize : ĠInt ĊĠ Ġ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" use Ġthe Ġeach Array With MinMax Like ( number Examples , Ġmin Size , ĠmaxSize ) Ġform ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġeach Array With MinMax Like ( number Examples : ĠInt , Ġmin Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġrequire ( min Size Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" The Ġminimum Ġsize Ġof Ġ% d Ġis Ġgreater Ġthan Ġthe Ġmaximum Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġmin Size , ĠmaxSize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġrequire ( number Examples Ġ>= Ġmin Size ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , Ġmin Size ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġrequire ( number Examples Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġgreater Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠ Ġnumber Examples , ĠmaxSize ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 1 ), Ġmatch MinMax ( min Size , ĠmaxSize )) ĊĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ( rootPath , Ġ"", Ġthis , Ġtrue ) ĊĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠ Ġreturn ĠP act Dsl JsonArray ("", Ġ"", Ġparent ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġan Ġelement Ġthat Ġwill Ġhave Ġit 's Ġvalue Ġinjected Ġfrom Ġthe Ġprovider Ġstate ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġexpression ĠExpression Ġto Ġbe Ġevaluated Ġfrom Ġthe Ġprovider Ġstate ĊĠĠ Ġ* Ġ@ param Ġexample ĠĠĠ ĠExample Ġvalue Ġto Ġbe Ġused Ġin Ġthe Ġconsumer Ġtest ĊĠĠ Ġ*/ ĊĠ Ġfun Ġvalue From Provider State ( expression : ĠString ?, Ġexample : ĠAny ?): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġbody . add ( toJson ( example )) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĊĠĠĠĠĠ ĠProvider State Generator ( expression !! , Ġfrom ( example !! ))) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), ĠType Matcher ) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġa Ġdate Ġvalue Ġwith Ġthe Ġvalue Ġgenerated Ġby Ġthe Ġdate Ġexpression ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġexpression ĠDate Ġexpression Ġto Ġuse Ġto Ġgenerate Ġthe Ġvalues ĊĠĠ Ġ* Ġ@ param Ġformat ĠĠĠĠ ĠDate Ġformat Ġto Ġuse ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġdate Expression ( expression : ĠString , Ġformat : ĠString Ġ= ĠDate Format Utils . ISO _ DATE _ FORMAT . pattern ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDate Generator ( format , Ġexpression )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Date ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġa Ġtime Ġvalue Ġwith Ġthe Ġvalue Ġgenerated Ġby Ġthe Ġtime Ġexpression ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġexpression ĠTime Ġexpression Ġto Ġuse Ġto Ġgenerate Ġthe Ġvalues ĊĠĠ Ġ* Ġ@ param Ġformat ĠĠĠĠ ĠTime Ġformat Ġto Ġuse ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġtime Expression ( ĊĠĠĠ Ġexpression : ĠString , ĊĠĠĠ Ġformat : ĠString Ġ= ĠDate Format Utils . ISO _ TIME _ NO _ T _ FORMAT . pattern ĊĠ Ġ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠTime Generator ( format , Ġexpression )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Time ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAdds Ġa Ġdatetime Ġvalue Ġwith Ġthe Ġvalue Ġgenerated Ġby Ġthe Ġexpression ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġexpression ĠDate time Ġexpression Ġto Ġuse Ġto Ġgenerate Ġthe Ġvalues ĊĠĠ Ġ* Ġ@ param Ġformat ĠĠĠĠ ĠDate time Ġformat Ġto Ġuse ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġdatetime Expression ( ĊĠĠĠ Ġexpression : ĠString , ĊĠĠĠ Ġformat : ĠString Ġ= ĠDate Format Utils . ISO _ DATETIME _ FORMAT . pattern ĊĠ Ġ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠ Ġval Ġinstance Ġ= ĠFast DateFormat . getInstance ( format ) ĊĠĠĠ Ġbody . add ( JsonValue . StringValue ( instance . format ( Date ( DATE _ 2 0 0 0 )). toCharArray ())) ĊĠĠĠ Ġgenerators . add Generator ( Category . BODY , Ġroot Path Ġ+ Ġappend ArrayIndex ( 0 ), ĠDateTime Generator ( format , Ġexpression )) ĊĠĠĠ Ġmatch ers . add Rule ( rootPath Ġ+ Ġappend ArrayIndex ( 0 ), Ġmatch Timestamp ( format )) ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠArray Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Each Like ( number Examples : ĠInt Ġ= Ġ 1 ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", ĠType Matcher ) ĊĠĠĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Each Like ( root Value : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġreturn Ġarray Each Like ( 1 , Ġroot Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Each Like ( number Examples : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", ĠType Matcher ) ĊĠĠĠĠĠ Ġparent . put Object Private ( value ) ĊĠĠĠĠĠ Ġreturn Ġparent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠArray Ġwith Ġa Ġminimum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size ĠĠĠĠĠĠĠ Ġminimum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Min Like ( min Size : ĠInt , Ġnumber Examples : ĠInt Ġ= Ġmin Size ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ>= Ġmin Size ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , Ġmin Size ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", Ġparent . match Min ( min Size )) ĊĠĠĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwith Ġminimum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size Ġminimum Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Min Like ( min Size : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġreturn Ġarray Min Like ( min Size , Ġmin Size , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwith Ġminimum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size ĠĠĠĠĠĠĠ Ġminimum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Min Like ( min Size : ĠInt , Ġnumber Examples : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ>= Ġmin Size ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , Ġmin Size ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", Ġparent . match Min ( min Size )) ĊĠĠĠĠĠ Ġparent . put Object Private ( value ) ĊĠĠĠĠĠ Ġreturn Ġparent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠArray Ġwith Ġa Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize ĠĠĠĠĠĠĠ Ġmaximum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Max Like ( maxSize : ĠInt , Ġnumber Examples : ĠInt Ġ= Ġ 1 ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , ĠmaxSize ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", Ġparent . match Max ( maxSize )) ĊĠĠĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwith Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize Ġmaximum Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Max Like ( maxSize : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġreturn Ġarray Max Like ( maxSize , Ġ 1 , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwith Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize ĠĠĠĠĠĠĠ Ġmaximum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray Max Like ( maxSize : ĠInt , Ġnumber Examples : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , ĠmaxSize ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", Ġparent . match Max ( maxSize )) ĊĠĠĠĠĠ Ġparent . put Object Private ( value ) ĊĠĠĠĠĠ Ġreturn Ġparent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠArray Ġwith Ġa Ġminimum Ġand Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġfollowing Ġexample ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size ĠĠĠĠĠĠĠ Ġminimum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize ĠĠĠĠĠĠĠ Ġmaximum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray MinMax Like ( min Size : ĠInt , ĠmaxSize : ĠInt , Ġnumber Examples : ĠInt Ġ= Ġmin Size ): ĠP act Dsl Json Body Ġ{ ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ>= Ġmin Size ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , Ġmin Size ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , ĠmaxSize ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", Ġparent . match MinMax ( min Size , ĠmaxSize )) ĊĠĠĠĠĠ Ġreturn ĠP act Dsl Json Body (".", Ġ"", Ġparent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwith Ġminimum Ġand Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size Ġminimum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize Ġmaximum Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray MinMax Like ( min Size : ĠInt , ĠmaxSize : ĠInt , Ġvalue : ĠP act Dsl Json Root Value ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġreturn Ġarray MinMax Like ( min Size , ĠmaxSize , Ġmin Size , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwith Ġminimum Ġand Ġmaximum Ġsize Ġwhere Ġeach Ġitem Ġmust Ġmatch Ġthe Ġprovided Ġmatcher ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size ĠĠĠĠĠĠĠ Ġminimum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize ĠĠĠĠĠĠĠ Ġmaximum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Examples ĠNumber Ġof Ġexamples Ġto Ġgenerate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġarray MinMax Like ( ĊĠĠĠĠĠ Ġmin Size : ĠInt , ĊĠĠĠĠĠ ĠmaxSize : ĠInt , ĊĠĠĠĠĠ Ġnumber Examples : ĠInt , ĊĠĠĠĠĠ Ġvalue : ĠP act Dsl Json Root Value ĊĠĠĠ Ġ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ>= Ġmin Size ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġless Ġthan Ġthe Ġminimum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , Ġmin Size ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrequire ( number Examples Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" Number Ġof Ġexample Ġ% d Ġis Ġmore Ġthan Ġthe Ġmaximum Ġsize Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġnumber Examples , ĠmaxSize ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġparent Ġ= ĠP act Dsl JsonArray ("", Ġ"", Ġnull , Ġtrue ) ĊĠĠĠĠĠ Ġparent . number Examples Ġ= Ġnumber Examples ĊĠĠĠĠĠ Ġparent . matchers . add Rule ("", Ġparent . match MinMax ( min Size , ĠmaxSize )) ĊĠĠĠĠĠ Ġparent . put Object Private ( value ) ĊĠĠĠĠĠ Ġreturn Ġparent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġwhere Ġorder Ġis Ġignored ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġnew Un ordered Array (): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġval Ġroot Ġ= ĠP act Dsl JsonArray () ĊĠĠĠĠĠ Ġroot . matchers . add Rule ( root . rootPath , ĠEquals Ignore Order Matcher ) ĊĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġof Ġmin Ġsize Ġwhere Ġorder Ġis Ġignored ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsize Ġminimum Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġnew Un ordered Min Array ( size : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġval Ġroot Ġ= ĠP act Dsl JsonArray () ĊĠĠĠĠĠ Ġroot . matchers . add Rule ( root . rootPath , ĠMin Equals Ignore Order Matcher ( size )) ĊĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġof Ġmax Ġsize Ġwhere Ġorder Ġis Ġignored ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsize Ġmaximum Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġnew Un ordered Max Array ( size : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġval Ġroot Ġ= ĠP act Dsl JsonArray () ĊĠĠĠĠĠ Ġroot . matchers . add Rule ( root . rootPath , ĠMax Equals Ignore Order Matcher ( size )) ĊĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġlevel Ġarray Ġof Ġmin Ġand Ġmax Ġsize Ġwhere Ġorder Ġis Ġignored ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmin Size Ġminimum Ġsize ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxSize Ġmaximum Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġnew Un ordered MinMax Array ( min Size : ĠInt , ĠmaxSize : ĠInt ): ĠP act Dsl JsonArray Ġ{ ĊĠĠĠĠĠ Ġrequire ( min Size Ġ<= ĠmaxSize ) Ġ{ ĊĠĠĠĠĠĠĠ ĠString . format (" The Ġminimum Ġsize Ġof Ġ% d Ġis Ġgreater Ġthan Ġthe Ġmaximum Ġof Ġ% d ", ĊĠĠĠĠĠĠĠĠĠ Ġmin Size , ĠmaxSize ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġroot Ġ= ĠP act Dsl JsonArray () ĊĠĠĠĠĠ Ġroot . matchers . add Rule ( root . rootPath , ĠMin Max Equals Ignore Order Matcher ( min Size , ĠmaxSize )) ĊĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ