/// <summary> /// Generates xml element containing the settings. /// </summary> /// <param name="rootElemName">Name to be used as a name of the root element.</param> /// <param name="suppressDefaults">Specifies whether to ommit optional nodes having set default values</param> /// <returns>XElement containing the settings</returns> public override XElement GetXml(string rootElemName, bool suppressDefaults) { XElement rootElem = new XElement(rootElemName, new XAttribute("name", Name), new XAttribute("relShare", RelShare.ToString(CultureInfo.InvariantCulture)), ActivationCfg.GetXml(suppressDefaults) ); if (!suppressDefaults || !IsDefaultFiringThreshold) { rootElem.Add(new XAttribute("firingThreshold", FiringThreshold.ToString(CultureInfo.InvariantCulture))); } if (!suppressDefaults || !IsDefaultThresholdMaxRefDeepness) { rootElem.Add(new XAttribute("thresholdMaxRefDeepness", ThresholdMaxRefDeepness.ToString(CultureInfo.InvariantCulture))); } if (BiasCfg != null) { rootElem.Add(BiasCfg.GetXml("bias", suppressDefaults)); } if (RetainmentCfg != null) { rootElem.Add(RetainmentCfg.GetXml(suppressDefaults)); } if (PredictorsCfg != null && !PredictorsCfg.ContainsOnlyDefaults) { rootElem.Add(PredictorsCfg.GetXml(suppressDefaults)); } Validate(rootElem, XsdTypeName); return(rootElem); }
/// <inheritdoc /> public override XElement GetXml(string rootElemName, bool suppressDefaults) { XElement rootElem = new XElement(rootElemName); if (!suppressDefaults || !IsDefaultDelayMethod) { rootElem.Add(new XAttribute("delayMethod", DelayMethod.ToString())); } if (!suppressDefaults || !IsDefaultMaxDelay) { rootElem.Add(new XAttribute("maxDelay", MaxDelay.ToString(CultureInfo.InvariantCulture))); } if (!suppressDefaults || !IsDefaultRelShare) { rootElem.Add(new XAttribute("relShare", RelShare.ToString(CultureInfo.InvariantCulture))); } if (!suppressDefaults || !IsDefaultAnalogSourceCfg) { rootElem.Add(AnalogSourceCfg.GetXml(suppressDefaults)); } if (!suppressDefaults || !IsDefaultSpikingSourceCfg) { rootElem.Add(SpikingSourceCfg.GetXml(suppressDefaults)); } Validate(rootElem, XsdTypeName); return(rootElem); }
//Methods /// <inheritdoc /> protected override void Check() { if (MaxDelay < 0) { throw new ArgumentException($"Invalid MaxDelay {MaxDelay.ToString(CultureInfo.InvariantCulture)}. MaxDelay must be GE to 0.", "MaxDelay"); } if (RelShare <= 0) { throw new ArgumentException($"Invalid RelShare {RelShare.ToString(CultureInfo.InvariantCulture)}. RelShare must be GT 0.", "RelShare"); } return; }
/// <inheritdoc/> public override XElement GetXml(string rootElemName, bool suppressDefaults) { XElement rootElem = new XElement(rootElemName, new XAttribute("name", Name), new XAttribute("relShare", RelShare.ToString(CultureInfo.InvariantCulture)), ActivationCfg.GetXml(suppressDefaults) ); if (!suppressDefaults || !IsDefaultHomogenousExcitabilityCfg) { rootElem.Add(HomogenousExcitabilityCfg.GetXml(suppressDefaults)); } if (BiasCfg != null) { rootElem.Add(BiasCfg.GetXml("bias", suppressDefaults)); } rootElem.Add(PredictorsCfg.GetXml(suppressDefaults)); Validate(rootElem, XsdTypeName); return(rootElem); }