package org.signalml.domain.montage.system;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import java.util.ArrayList;
import java.util.List;
import org.signalml.app.config.preset.Preset;
import org.signalml.domain.montage.generators.IMontageGenerator;
import org.signalml.domain.montage.generators.MontageGeneratorsConverter;
/**
* This class holds {@link IMontageGenerator montage generators} for a single
* EEG system.
*
* @author Piotr Szachewicz
*/
@XStreamAlias("montageGenerators")
public class MontageGenerators implements Preset {
/**
* The name of the EEG system for which these montage generators are
* intended.
*/
private EegSystemName eegSystemName;
/**
* The list of {@link IMontageGenerator} that can be used by the
* specified EEG system.
*/
@XStreamAlias("generators")
@XStreamConverter(MontageGeneratorsConverter.class)
private List<IMontageGenerator> generators = new ArrayList<IMontageGenerator>();
/**
* Constructor.
*/
public MontageGenerators() {
MontageGeneratorsConverter.addDefaultMontageGenerators(generators);
}
/**
* Returns the name of the EEG system for which the montage generators
* stored in this {@link MontageGenerators} are intended.
* @return the name of the EEG system
*/
public EegSystemName getEegSystemName() {
return eegSystemName;
}
/**
* Returns a montage generators at the given index.
* @param index the index of the montage generator on the montage
* generators list.
* @return a montage generator from the specified index
*/
public IMontageGenerator get(int index) {
return generators.get(index);
}
/**
* Returns the number of montage generators defined.
* @return the number of montage generators defined
*/
public int size() {
return generators.size();
}
@Override
public String getName() {
return "";
}
@Override
public void setName(String name) {
}
}