/// <summary> /// Returns true if the given object is selected by this selector rule. /// </summary> /// <param name="mapCSSObject"></param> /// <returns></returns> internal override bool Selects(MapCSSObject mapCSSObject) { string tagValue; if (mapCSSObject.TryGetValue(this.Tag, out tagValue)) { double valueDouble; double tagValueDouble; switch (this.Comparator) { case SelectorRuleTagValueComparisonEnum.Equal: return(tagValue == this.Value); case SelectorRuleTagValueComparisonEnum.NotEqual: return(tagValue != this.Value); case SelectorRuleTagValueComparisonEnum.GreaterThan: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return(tagValueDouble > valueDouble); } break; case SelectorRuleTagValueComparisonEnum.GreaterThanOrEqual: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return(tagValueDouble >= valueDouble); } break; case SelectorRuleTagValueComparisonEnum.SmallerThan: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return(tagValueDouble < valueDouble); } break; case SelectorRuleTagValueComparisonEnum.SmallerThanOrEqual: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return(tagValueDouble <= valueDouble); } break; default: throw new ArgumentOutOfRangeException(); } return(mapCSSObject.ContainsKey(this.Tag)); } return(false); }
/// <summary> /// Returns true if the given object is selected by this selector rule. /// </summary> /// <param name="mapCSSObject"></param> /// <returns></returns> internal override bool Selects(MapCSSObject mapCSSObject) { string tagValue; if (mapCSSObject.TryGetValue(this.Tag, out tagValue)) { double valueDouble; double tagValueDouble; switch (this.Comparator) { case SelectorRuleTagValueComparisonEnum.Equal: return tagValue == this.Value; case SelectorRuleTagValueComparisonEnum.NotEqual: return tagValue != this.Value; case SelectorRuleTagValueComparisonEnum.GreaterThan: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return tagValueDouble > valueDouble; } break; case SelectorRuleTagValueComparisonEnum.GreaterThanOrEqual: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return tagValueDouble >= valueDouble; } break; case SelectorRuleTagValueComparisonEnum.SmallerThan: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return tagValueDouble < valueDouble; } break; case SelectorRuleTagValueComparisonEnum.SmallerThanOrEqual: if (double.TryParse(this.Value, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out valueDouble) && (double.TryParse(tagValue, NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out tagValueDouble))) { return tagValueDouble <= valueDouble; } break; default: throw new ArgumentOutOfRangeException(); } return mapCSSObject.ContainsKey(this.Tag); } return false; }
/// <summary> /// Returns true if the given object is selected by this selector rule. /// </summary> /// <param name="mapCSSObject"></param> /// <returns></returns> internal override bool Selects(MapCSSObject mapCSSObject) { return mapCSSObject.ContainsKey(this.Tag); }
/// <summary> /// Returns true if the given object is selected by this selector rule. /// </summary> /// <param name="mapCSSObject"></param> /// <returns></returns> internal override bool Selects(MapCSSObject mapCSSObject) { return(mapCSSObject.ContainsKey(this.Tag)); }