package org.signalml.plugin.newstager.io; import java.io.File; import org.signalml.plugin.exception.PluginThreadRuntimeException; import org.signalml.plugin.newstager.data.NewStagerBookData; import org.signalml.plugin.newstager.data.NewStagerBookReaderWorkerData; import org.signalml.plugin.newstager.exception.NewStagerBookReaderException; import pl.edu.fuw.MP.Core.NewBookLibrary; public class NewStagerBookReaderWorker implements Runnable { private final NewStagerBookReaderWorkerData data; public NewStagerBookReaderWorker(NewStagerBookReaderWorkerData data) { this.data = data; } @Override public void run() { INewStagerAtomReader reader; if (this.canUseFastV5BookReader()) { reader = new NewStagerFastBookV5AtomReader(new File( this.data.bookFilePath)); } else { // TODO throw new RuntimeException("Old books not supported"); } NewStagerBookData bookData; try { bookData = reader.read(); } catch (NewStagerBookReaderException e) { throw new PluginThreadRuntimeException(e); } this.data.bookProvider.setBookData(bookData); } private boolean canUseFastV5BookReader() { return NewBookLibrary.checkFormat(this.data.bookFilePath) == NewBookLibrary.VERSION_V; } }