@Override
public void init(final Metadata metadata,
final Command callback) {
if (null != canvas) {
throw new IllegalStateException("Session is already loaded!");
}
sessionLoader.load(metadata,
prefs -> {
final Annotation qualifier = definitionUtils.getQualifier(metadata.getDefinitionSetId());
canvas = lookup(canvasInstances, qualifier);
canvasHandler = lookup(canvasHandlerInstances, qualifier);
canvasControlRegistrationEntries
.forEach(entry -> registerCanvasControlEntry(entry,
qualifier));
canvasHandlerControlRegistrationEntries
.forEach(entry -> registerCanvasHandlerControlEntry(entry,
qualifier));
callback.execute();
},
throwable -> {
if (LogConfiguration.loggingIsEnabled()) {
LOGGER.log(Level.SEVERE,
"An error was produced during StunnerPreferences initialization.",
throwable);
}
throw new RuntimeException(throwable);
});
}