diff options
Diffstat (limited to 'src/mscorlib/src/System/__Filters.cs')
-rw-r--r-- | src/mscorlib/src/System/__Filters.cs | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/src/mscorlib/src/System/__Filters.cs b/src/mscorlib/src/System/__Filters.cs deleted file mode 100644 index aabb52d803..0000000000 --- a/src/mscorlib/src/System/__Filters.cs +++ /dev/null @@ -1,155 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// -// This class defines the delegate methods for the COM+ implemented filters. -// -// -// - -namespace System { - using System; - using System.Reflection; - using System.Globalization; - [Serializable] - internal class __Filters { - - // Filters... - // The following are the built in filters defined for this class. These - // should really be defined as static methods. They are used in as delegates - // which currently doesn't support static methods. We will change this - // once the compiler supports delegates. - // - // Note that it is not possible to make this class static as suggested by - // the above comment anymore because of it got marked serializable. - - internal static readonly __Filters Instance = new __Filters(); - - // FilterAttribute - // This method will search for a member based upon the attribute passed in. - // filterCriteria -- an Int32 representing the attribute - internal virtual bool FilterAttribute(MemberInfo m,Object filterCriteria) - { - // Check that the criteria object is an Integer object - if (filterCriteria == null) - throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); - - switch (m.MemberType) - { - case MemberTypes.Constructor: - case MemberTypes.Method: { - - MethodAttributes criteria = 0; - try { - int i = (int) filterCriteria; - criteria = (MethodAttributes) i; - } - catch { - throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); - } - - - MethodAttributes attr; - if (m.MemberType == MemberTypes.Method) - attr = ((MethodInfo) m).Attributes; - else - attr = ((ConstructorInfo) m).Attributes; - - if (((criteria & MethodAttributes.MemberAccessMask) != 0) && (attr & MethodAttributes.MemberAccessMask) != (criteria & MethodAttributes.MemberAccessMask)) - return false; - if (((criteria & MethodAttributes.Static) != 0) && (attr & MethodAttributes.Static) == 0) - return false; - if (((criteria & MethodAttributes.Final) != 0) && (attr & MethodAttributes.Final) == 0) - return false; - if (((criteria & MethodAttributes.Virtual) != 0) && (attr & MethodAttributes.Virtual) == 0) - return false; - if (((criteria & MethodAttributes.Abstract) != 0) && (attr & MethodAttributes.Abstract) == 0) - return false; - if (((criteria & MethodAttributes.SpecialName) != 0) && (attr & MethodAttributes.SpecialName) == 0) - return false; - return true; - } - case MemberTypes.Field: - { - FieldAttributes criteria = 0; - try { - int i = (int) filterCriteria; - criteria = (FieldAttributes) i; - } - catch { - throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); - } - - FieldAttributes attr = ((FieldInfo) m).Attributes; - if (((criteria & FieldAttributes.FieldAccessMask) != 0) && (attr & FieldAttributes.FieldAccessMask) != (criteria & FieldAttributes.FieldAccessMask)) - return false; - if (((criteria & FieldAttributes.Static) != 0) && (attr & FieldAttributes.Static) == 0) - return false; - if (((criteria & FieldAttributes.InitOnly) != 0) && (attr & FieldAttributes.InitOnly) == 0) - return false; - if (((criteria & FieldAttributes.Literal) != 0) && (attr & FieldAttributes.Literal) == 0) - return false; - if (((criteria & FieldAttributes.NotSerialized) != 0) && (attr & FieldAttributes.NotSerialized) == 0) - return false; - if (((criteria & FieldAttributes.PinvokeImpl) != 0) && (attr & FieldAttributes.PinvokeImpl) == 0) - return false; - return true; - } - } - - return false; - } - // FilterName - // This method will filter based upon the name. A partial wildcard - // at the end of the string is supported. - // filterCriteria -- This is the string name - internal virtual bool FilterName(MemberInfo m,Object filterCriteria) - { - // Check that the criteria object is a String object - if(filterCriteria == null || !(filterCriteria is String)) - throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritString")); - - // At the moment this fails if its done on a single line.... - String str = ((String) filterCriteria); - str = str.Trim(); - - String name = m.Name; - // Get the nested class name only, as opposed to the mangled one - if (m.MemberType == MemberTypes.NestedType) - name = name.Substring(name.LastIndexOf('+') + 1); - // Check to see if this is a prefix or exact match requirement - if (str.Length > 0 && str[str.Length - 1] == '*') { - str = str.Substring(0, str.Length - 1); - return (name.StartsWith(str, StringComparison.Ordinal)); - } - - return (name.Equals(str)); - } - - // FilterIgnoreCase - // This delegate will do a name search but does it with the - // ignore case specified. - internal virtual bool FilterIgnoreCase(MemberInfo m,Object filterCriteria) - { - // Check that the criteria object is a String object - if(filterCriteria == null || !(filterCriteria is String)) - throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritString")); - - String str = (String) filterCriteria; - str = str.Trim(); - - String name = m.Name; - // Get the nested class name only, as opposed to the mangled one - if (m.MemberType == MemberTypes.NestedType) - name = name.Substring(name.LastIndexOf('+') + 1); - // Check to see if this is a prefix or exact match requirement - if (str.Length > 0 && str[str.Length - 1] == '*') { - str = str.Substring(0, str.Length - 1); - return (String.Compare(name,0,str,0,str.Length,StringComparison.OrdinalIgnoreCase)==0); - } - - return (String.Compare(str,name, StringComparison.OrdinalIgnoreCase) == 0); - } - } -} |