/// <summary> /// Validates the pattern. /// </summary> /// <param name="pattern">The pattern to validate.</param> private static void ValidatePattern(string pattern) { ExceptionUtils.CheckArgumentStringNotNullOrEmpty(pattern, "pattern"); string patternWithoutMinusSign = pattern; RemoveExcludeOperator(ref patternWithoutMinusSign); if (patternWithoutMinusSign == WildCard) { return; } string[] segments = patternWithoutMinusSign.Split(NamespaceSeparator); int segmentCount = segments.Length; if (segmentCount == 1) { throw new ArgumentException(Strings.AnnotationFilterPattern_InvalidPatternMissingDot(pattern)); } for (int idx = 0; idx < segmentCount; idx++) { string currentSegment = segments[idx]; if (string.IsNullOrEmpty(currentSegment)) { throw new ArgumentException(Strings.AnnotationFilterPattern_InvalidPatternEmptySegment(pattern)); } if (currentSegment != WildCard && currentSegment.Contains(WildCard)) { throw new ArgumentException(Strings.AnnotationFilterPattern_InvalidPatternWildCardInSegment(pattern)); } bool isLastSegment = idx + 1 == segmentCount; if (currentSegment == WildCard && !isLastSegment) { throw new ArgumentException(Strings.AnnotationFilterPattern_InvalidPatternWildCardMustBeInLastSegment(pattern)); } } }