@@ -33,6 +33,32 @@ private static void validateRun(Runnable runnable, String message) throws Illega
3333 }
3434 }
3535
36+ private static void validateAllRuns (List <Runnable > runnables , String message ) throws IllegalStateException {
37+ boolean exception = false ;
38+ for (Runnable runnable : runnables ) {
39+ try {
40+ runnable .run ();
41+ } catch (Exception ex ) {
42+ exception = true ;
43+ if (ex .getMessage () != null && ! ex .getMessage ().isEmpty ()) message = message + " (" + ex .getMessage ().trim () + ")" ;
44+ }
45+ }
46+ if (exception ) throw new IllegalStateException (message );
47+ }
48+
49+ private static void validateOneOfRuns (List <Runnable > runnables , String message ) throws IllegalStateException {
50+ boolean exception = true ;
51+ for (Runnable runnable : runnables ) {
52+ try {
53+ runnable .run ();
54+ exception = false ;
55+ } catch (Exception ex ) {
56+ if (ex .getMessage () != null && ! ex .getMessage ().isEmpty ()) message = message + " (" + ex .getMessage ().trim () + ")" ;
57+ }
58+ }
59+ if (exception ) throw new IllegalStateException (message );
60+ }
61+
3662 public static void validate (VerifiableCredential verifiableCredential ) throws IllegalStateException {
3763
3864 foundation .identity .jsonld .validation .Validation .validate (verifiableCredential );
@@ -65,7 +91,7 @@ public static void validate(VerifiablePresentation verifiablePresentation) throw
6591
6692 validateRun (() -> validateTrue (! verifiablePresentation .getTypes ().isEmpty ()), "Bad or missing 'type'." );
6793 validateRun (() -> validateTrue (verifiablePresentation .getTypes ().contains (VerifiablePresentation .DEFAULT_JSONLD_TYPES [0 ])), "type must contain VerifiablePresentation: " + verifiablePresentation .getTypes ());
68- validateRun (( ) -> validateTrue (verifiablePresentation .getVerifiableCredential () != null || verifiablePresentation .getJwtVerifiableCredentialString () != null ), "Bad or missing 'verifiableCredential'." );
94+ validateOneOfRuns ( List . of (( ) -> validateTrue (verifiablePresentation .getVerifiableCredential () != null ), () -> validateTrue ( verifiablePresentation .getJwtVerifiableCredentialString () != null ) ), "Bad or missing 'verifiableCredential'." );
6995 }
7096
7197 public static void validate (VerifiableCredentialV2 verifiableCredential ) throws IllegalStateException {
0 commit comments