, , , . , .
- :
let reasons be a new, empty collection of failure reasons
let checkers be the list of relevant checkers
for each checker in checkers
if checker passes, continue
if checker fails, add explanation to reasons
if number of reasons is zero,
voucher is valid, success
if number of reasons > zero,
the voucher is invalid, format each element in reasons for display to the user
, , , . , , . , . , , ( - ).
, , , .
. , .
... . . , , .
:
:
- . , .
- , , . . , . , , , , , , , , , .
Java, . , .