package org.signalml.plugin.newstager.helper; import org.signalml.plugin.export.Plugin; import org.signalml.plugin.newstager.NewStagerPlugin; import org.signalml.plugin.newstager.data.NewStagerFASPThreshold; import org.signalml.plugin.newstager.data.NewStagerFixedParameters; import org.signalml.plugin.newstager.data.NewStagerParameterThresholds; import org.signalml.plugin.newstager.data.NewStagerParameters; import org.signalml.plugin.newstager.data.NewStagerRules; import org.signalml.plugin.tool.PluginConfigurationDefaultsHelper; public class NewStagerConfigurationDefaultsHelper extends PluginConfigurationDefaultsHelper { private static NewStagerConfigurationDefaultsHelper SharedInstance = new NewStagerConfigurationDefaultsHelper(); public static NewStagerConfigurationDefaultsHelper GetSharedInstance() { return SharedInstance; } public static void SetSharedInstance( NewStagerConfigurationDefaultsHelper helper) { SharedInstance = helper; } @Override protected String getConfigurationDefaultsPath( Class<? extends Plugin> pluginClass) { if (pluginClass != NewStagerPlugin.class) { return null; } return "stager_defaults.properties"; } public void setDefaults(NewStagerParameters parameters) { if (!this.hasProperties()) { return; } try { parameters.rules = NewStagerRules.valueOf(get("stager.rules")); parameters.analyseEEGChannelsFlag = bool_("stager.mtEegThresholdEnabled"); parameters.analyseEMGChannelFlag = bool_("stager.mtArtifactsThresholdEnabled"); } catch (ConfigurationDefaultsException e) { return; } this.setDefaults(parameters.thresholds); } public void setDefaults(NewStagerFixedParameters fixedParameters) { if (!this.hasProperties()) { return; } try { fixedParameters.widthCoeff = double_("stager.fixed.widthCoeff"); fixedParameters.swaWidthCoeff = double_("stager.fixed.swaWidthCoeff"); fixedParameters.alphaPerc1 = double_("stager.fixed.alphaPerc1"); fixedParameters.alphaPerc2 = double_("stager.fixed.alphaPerc2"); fixedParameters.corrCoeffRems = double_("stager.fixed.corrCoeffRems"); fixedParameters.corrCoeffSems = double_("stager.fixed.corrCoeffSems"); } catch (ConfigurationDefaultsException e) { return; } } public void setDefaults(NewStagerParameterThresholds thresholds) { if (!this.hasProperties()) { return; } try { thresholds.toneEMG = double_("stager.emgToneThreshold"); thresholds.montageEEGThreshold = double_("stager.mtEegThreshold"); thresholds.montageEMGThreshold = double_("stager.mtEmgThreshold"); thresholds.montageToneEMGThreshold = double_("stager.mtToneEmgThreshold"); thresholds.remEogDeflectionThreshold = double_("stager.remEogDeflectionThreshold"); thresholds.semEogDeflectionThreshold = double_("stager.semEogDeflectionThreshold"); } catch (NumberFormatException e) { logger.error("Invalid default value", e); return; } catch (ConfigurationDefaultsException e) { return; } this.setAlphaThresholdDefaults(thresholds.alphaThreshold); this.setDeltaThresholdDefaults(thresholds.deltaThreshold); this.setThetaThresholdDefaults(thresholds.thetaThreshold); this.setSpindleThresholdDefaults(thresholds.spindleThreshold); this.setkCThresholdDefaults(thresholds.kCThreshold); } public void setAlphaThresholdDefaults(NewStagerFASPThreshold threshold) { this.setDefaults(threshold, "alpha", false); } public void setDeltaThresholdDefaults(NewStagerFASPThreshold threshold) { this.setDefaults(threshold, "delta", false); } public void setThetaThresholdDefaults(NewStagerFASPThreshold threshold) { this.setDefaults(threshold, "theta", false); } public void setSpindleThresholdDefaults(NewStagerFASPThreshold threshold) { this.setDefaults(threshold, "spindle", false); } public void setkCThresholdDefaults(NewStagerFASPThreshold threshold) { this.setDefaults(threshold, "kComplex", true); } private void setDefaults(NewStagerFASPThreshold threshold, String type, boolean parsePhase) { try { setRange(threshold.amplitude, "stager." + type + "Amplitude"); setRange(threshold.frequency, "stager." + type + "Frequency"); setRange(threshold.scale, "stager." + type + "Scale"); if (parsePhase && threshold.phase != null) { setRange(threshold.phase, "stager." + type + "Phase"); } } catch (NumberFormatException e) { logger.error("Invalid default value", e); return; } catch (ConfigurationDefaultsException e) { return; } } }