package org.signalml.app.model.document.opensignal; import multiplexer.jmx.client.JmxClient; import org.signalml.app.config.preset.Preset; import org.signalml.app.model.document.opensignal.elements.Amplifier; import org.signalml.app.model.document.opensignal.elements.ExperimentStatus; import org.signalml.app.model.document.opensignal.elements.SignalParameters; import org.signalml.app.model.monitor.MonitorRecordingDescriptor; import org.signalml.domain.tag.StyledTagSet; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamOmitField; @XStreamAlias(value="experiment") public class ExperimentDescriptor extends AbstractOpenSignalDescriptor implements Preset { private String id; private String name; private String path; private Amplifier amplifier = new Amplifier(); private ExperimentStatus status; private String experimentIPAddress; private int experimentPort; private String multiplexerAddress; private int multiplexerPort; private JmxClient jmxClient; private Float backupFrequency; private MonitorRecordingDescriptor monitorRecordingDescriptor = new MonitorRecordingDescriptor(); @XStreamOmitField private StyledTagSet tagStyles; private String tagStylesName; private String peerId; private String recommendedScenario; /** * This value holds information whether Svarog has connected to this experiment or not. */ private transient boolean connected; public ExperimentDescriptor(ExperimentDescriptor other) { this(); this.id = other.id; this.name = other.name; this.path = other.path; this.amplifier = new Amplifier(other.getAmplifier()); this.status = other.status; this.experimentIPAddress = other.experimentIPAddress; this.signalParameters = new SignalParameters(other.signalParameters); this.backupFrequency = other.backupFrequency; this.eegSystemName = other.eegSystemName; this.tagStylesName = other.tagStylesName; //other fields should be filled after sending "join_experiment" request } public ExperimentDescriptor() { setBackupFrequency(10.0F); signalParameters = new SignalParameters(); } public void copyFromPreset(ExperimentDescriptor other) { this.amplifier.copyFromPreset(other.getAmplifier()); this.signalParameters = new SignalParameters(other.signalParameters); this.eegSystemName = other.eegSystemName; this.tagStylesName = other.tagStylesName; } @Override public String getName() { return name; } @Override public void setName(String experimentName) { this.name = experimentName; } public Amplifier getAmplifier() { return amplifier; } public void setAmplifier(Amplifier amplifier) { this.amplifier = amplifier; } public ExperimentStatus getStatus() { return status; } public void setStatus(ExperimentStatus experimentStatus) { this.status = experimentStatus; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getExperimentIPAddress() { return experimentIPAddress; } public void setExperimentIPAddress(String experimentAddress) { this.experimentIPAddress = experimentAddress; } public int getExperimentPort() { return experimentPort; } public void setExperimentPort(int experimentPort) { this.experimentPort = experimentPort; } public String getMultiplexerAddress() { return multiplexerAddress; } public void setMultiplexerAddress(String multiplexerAddress) { this.multiplexerAddress = multiplexerAddress; } public int getMultiplexerPort() { return multiplexerPort; } public void setMultiplexerPort(int multiplexerPort) { this.multiplexerPort = multiplexerPort; } public Float getBackupFrequency() { return backupFrequency; } public void setBackupFrequency(Float backupFrequency) { this.backupFrequency = backupFrequency; } public JmxClient getJmxClient() { return jmxClient; } public void setJmxClient(JmxClient jmxClient) { this.jmxClient = jmxClient; } public StyledTagSet getTagStyles() { return tagStyles; } public String getTagStylesName() { return tagStylesName; } public void setTagStyles(StyledTagSet tagStyles) { this.tagStyles = tagStyles; this.tagStylesName = tagStyles == null ? null : tagStyles.getName(); } public MonitorRecordingDescriptor getMonitorRecordingDescriptor() { return monitorRecordingDescriptor; } public void setMonitorRecordingDescriptor(MonitorRecordingDescriptor monitorRecordingDescriptor) { this.monitorRecordingDescriptor = monitorRecordingDescriptor; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getPeerId() { return peerId; } public void setPeerId(String peerId) { this.peerId = peerId; } @Override public String[] getChannelLabels() { return amplifier.getSelectedChannelsLabels(); } public String getRecommendedScenario() { return recommendedScenario; } public void setRecommendedScenario(String recommendedScenario) { this.recommendedScenario = recommendedScenario; } @Override public String toString() { return getName(); } public boolean isConnected() { return connected; } public void setConnected(boolean connected) { this.connected = connected; } }