/* MontagePresetManager.java created 2007-10-24
*
*/
package org.signalml.app.model.montage;
import java.io.File;
import java.io.IOException;
import org.signalml.app.config.preset.Preset;
import org.signalml.app.config.preset.managers.AbstractPresetManager;
import org.signalml.app.config.preset.managers.EegSystemsPresetManager;
import org.signalml.app.util.XMLUtils;
import org.signalml.domain.montage.Montage;
import org.signalml.domain.montage.system.EegSystem;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/** MontagePresetManager
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
@XStreamAlias("montages")
public class MontagePresetManager extends AbstractPresetManager {
private static final long serialVersionUID = 1L;
private EegSystemsPresetManager eegSystemsPresetManager;
public MontagePresetManager(EegSystemsPresetManager eegSystemsPresetManager) {
this.eegSystemsPresetManager = eegSystemsPresetManager;
}
@Override
public String getStandardFilename() {
return "montages.xml";
}
@Override
public Class<?> getPresetClass() {
return Montage.class;
}
@Override
public XStream getStreamer() {
if (streamer == null) {
streamer = createMontagePresetStreamer();
}
return streamer;
}
private XStream createMontagePresetStreamer() {
XStream streamer = XMLUtils.getDefaultStreamer();
XMLUtils.configureStreamerForMontage(streamer);
streamer.setMode(XStream.ID_REFERENCES);
return streamer;
}
@Override
public void readFromPersistence(File file) throws IOException {
super.readFromPersistence(file);
matchEegSystemsWithMontages();
}
protected void matchEegSystemsWithMontages() {
for (Preset preset : presets) {
Montage montagePreset = (Montage) preset;
EegSystem eegSystem = eegSystemsPresetManager.getEegSystem(montagePreset.getEegSystemName());
montagePreset.setEegSystem(eegSystem);
}
}
}