package org.signalml.plugin.newartifact.logic.mgr; import java.util.Map; import org.signalml.plugin.newartifact.data.NewArtifactComputationType; import org.signalml.plugin.newartifact.data.NewArtifactData; import org.signalml.plugin.newartifact.data.NewArtifactParameters; public class NewArtifactParameterHelper { public static boolean IsParameterEnabled( NewArtifactComputationType algorithmType, NewArtifactData artifactData) { NewArtifactParameters parameters = artifactData.getParameters(); Map<String, Integer> channelMap = artifactData.getChannelMap(); int idx = -1; int chosenTypes[] = parameters.getChosenArtifactTypes(); boolean channelsEnabled = true; switch (algorithmType) { case GALV: idx = 0; break; case EYE_MOVEMENT: channelsEnabled = NewArtifactParameterHelper .CheckChannelAvailability(channelMap, "EOGL", "EOGP", "F7", "F8", "T3", "T4"); idx = 1; break; case MUSCLE_ACTIVITY: idx = 2; break; case MUSCLE_PLUS_POWER: return chosenTypes[2] != 0 || chosenTypes[5] != 0; case EYEBLINKS: channelsEnabled = NewArtifactParameterHelper .CheckChannelAvailability(channelMap, "Fp1", "F3", "F3", "C3", "Fp2", "F4", "F4", "C4"); idx = 3; break; case TECHNICAL: idx = 4; break; case POWER: idx = 5; break; case ECG: channelsEnabled = NewArtifactParameterHelper .CheckChannelAvailability(channelMap, "ECG"); idx = 6; break; case UNKNOWN: idx = 7; break; default: return false; } return channelsEnabled && (idx == -1 || chosenTypes[idx] != 0); } private static boolean CheckChannelAvailability( Map<String, Integer> channelMap, String... channelNames) { for (String channelName : channelNames) { if (channelMap.get(channelName) == null) { return false; } } return true; } }