public static void restoreFromCheckpoint ( CheckpointInputStream input , List < ? extends Checkpointed > components ) throws IOException { CompoundCheckpointReader reader = new CompoundCheckpointReader ( input ) ; Optional < Entry > next ; while ( ( next = reader . nextCheckpoint ( ) ) . isPresent ( ) ) { Entry nextEntry = next . get ( ) ; boolean found = false ; for ( Checkpointed component : components ) { if ( component . getCheckpointName ( ) . equals ( nextEntry . getName ( ) ) ) { component . restoreFromCheckpoint ( nextEntry . getStream ( ) ) ; found = true ; break ; } } if ( ! found ) { throw new RuntimeException ( String . format ( "Unrecognized checkpoint name: %s. Existing components: %s" , nextEntry . getName ( ) , Arrays . toString ( StreamUtils . map ( Checkpointed :: getCheckpointName , components ) . toArray ( ) ) ) ) ; } } }
Restores the given checkpointed components from a composite checkpoint .