2008-05-07 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Wed, 7 May 2008 12:05:42 +0000 (12:05 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Wed, 7 May 2008 12:05:42 +0000 (12:05 -0000)
* CheckArgument.cs: Removed. Lots of unused code. The two methods
used are now inlined into Path.cs
* CheckPermission.cs: Removed. Lots of unused code.
* Path.cs: Inlined two checks.
[Found using Gendarme]

svn path=/trunk/mcs/; revision=102718

mcs/class/corlib/System.IO/ChangeLog
mcs/class/corlib/System.IO/CheckArgument.cs [deleted file]
mcs/class/corlib/System.IO/CheckPermission.cs [deleted file]
mcs/class/corlib/System.IO/Path.cs

index 77c1e47eadab6ca00337d45ab8c271015d226f29..f92afaacc197eb70a46eb45a9e6d8a7ca9ac38d4 100644 (file)
@@ -1,3 +1,11 @@
+2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CheckArgument.cs: Removed. Lots of unused code. The two methods
+       used are now inlined into Path.cs
+       * CheckPermission.cs: Removed. Lots of unused code.
+       * Path.cs: Inlined two checks.
+       [Found using Gendarme]
+
 2008-04-18  Sebastien Pouliot  <sebastien@ximian.com>
 
        * Path.cs: Change PathSeparatorChars from private to internal since
diff --git a/mcs/class/corlib/System.IO/CheckArgument.cs b/mcs/class/corlib/System.IO/CheckArgument.cs
deleted file mode 100644 (file)
index b199171..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-//------------------------------------------------------------------------------
-// 
-// System.IO.CheckArgument.cs 
-//
-// Copyright (C) 2001 Moonlight Enterprises, All Rights Reserved
-// 
-// Author:         Jim Richardson, develop@wtfo-guru.com
-// Created:        Saturday, August 25, 2001 
-//
-// NOTE: All contributors can freely add to this class or make modifications
-//       that do not break existing usage of methods 
-//------------------------------------------------------------------------------
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.IO;
-
-namespace System.IO
-{
-       /// <summary>
-       /// A utility class to assist with various argument validations in System.IO
-       /// </summary>
-       internal sealed class CheckArgument
-       {
-               /// <summary>
-               /// Generates and exception if arg contains whitepace only
-               /// </summary>
-               public static void WhitespaceOnly (string arg, string desc)
-               {
-                       if (arg != null && arg.Length > 0)
-                       {
-                               string temp = arg.Trim ();
-                               if (temp.Length == 0)
-                               {
-                                       throw new ArgumentException (desc);
-                               }
-                       }
-               }
-               
-               /// <summary>
-               /// Generates and exception if arg contains whitepace only
-               /// </summary>
-               public static void WhitespaceOnly (string arg)
-               {
-                       WhitespaceOnly (arg, "Argument string consists of whitespace characters only.");
-               }
-               
-               /// <summary>
-               /// Generates and exception if arg is empty
-               /// </summary>
-               public static void Empty (string arg, string desc)
-               {
-                       if (arg != null && arg.Length == 0)
-                       {
-                               throw new ArgumentException (desc);
-                       }
-               }
-               
-               /// <summary>
-               /// Generates and exception if arg is empty
-               /// </summary>
-               public static void Empty (string arg)
-               {
-                       Empty (arg, "Argument string is empty.");
-               }
-               
-               /// <summary>
-               /// Generates and exception if arg is null
-               /// </summary>
-               public static void Null (Object arg, string desc)
-               {
-                       if (arg == null)
-                       {
-                               throw new ArgumentNullException (desc);
-                       }
-               }
-               
-               /// <summary>
-               /// Generates and exception if arg is null
-               /// </summary>
-               public static void Null (Object arg)
-               {
-                       if (arg == null)
-                       {
-                               throw new ArgumentNullException ();
-                       }
-               }
-               
-               /// <summary>
-               /// Generates and exception if path contains invalid path characters
-               /// </summary>
-               public static void PathChars (string path, string desc)
-               {
-                       if (path != null)
-                       {
-                               if (path.IndexOfAny (System.IO.Path.InvalidPathChars) > -1)
-                               {
-                                       throw new ArgumentException (desc);
-                               }
-                       }
-               }
-               
-               /// <summary>
-               /// Generates and exception if path contains invalid path characters
-               /// </summary>
-               public static void PathChars (string path)
-               {
-                       PathChars (path, "Path contains invalid characters");
-               }
-               
-               /// <summary>
-               /// Generates and exception if path too long
-               /// </summary>
-               [MonoTODO ("Not implemented")]
-               public static void PathLength (string path, string desc)
-               {
-                       //TODO: find out how long is too long
-               }
-               
-               /// <summary>
-               /// Generates and exception if path too long
-               /// </summary>
-               public static void PathLength (string path)
-               {
-                       PathLength (path, "Path is too long");
-               }
-               
-               /// <summary>
-               /// Generates and exception if path is illegal
-               /// </summary>
-               public static void Path (string path, bool bAllowNull, bool bLength)
-               {
-                       if (path != null) //allow null
-                       {
-                               Empty (path, "Path cannot be the empty string");        // path can't be empty
-                               WhitespaceOnly (path, "Path cannot be all whitespace"); // path can't be all whitespace
-                               PathChars (path);       // path can't contain invalid characters
-                               if (bLength)
-                               {
-                                       PathLength ("Path too long");
-                               }
-                       }
-                       else if (!bAllowNull)
-                       {
-                               throw new ArgumentNullException ("Parameter name: path");
-                       }
-               }
-               
-               /// <summary>
-               /// Generates and exception if path is illegal
-               /// </summary>
-               public static void Path (string path, bool bAllowNull)
-               {
-                       Path (path, bAllowNull, false);
-               }
-               
-               /// <summary>
-               /// Generates and exception if path is illegal
-               /// </summary>
-               public static void Path (string path)
-               {
-                       Path (path, false, false);
-               }
-
-       }
-}      // namespace System.IO.Private
diff --git a/mcs/class/corlib/System.IO/CheckPermission.cs b/mcs/class/corlib/System.IO/CheckPermission.cs
deleted file mode 100644 (file)
index 6d88fbd..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-//------------------------------------------------------------------------------
-// 
-// System.IO.CheckPermission.cs 
-//
-// Copyright (C) 2001 Moonlight Enterprises, All Rights Reserved
-// 
-// Author:         Jim Richardson, develop@wtfo-guru.com
-// Created:        Saturday, August 25, 2001 
-//
-// NOTE: All contributors can freely add to this class or make modifications
-//       that do not break existing usage of methods 
-//------------------------------------------------------------------------------
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Security;
-using System.Security.Permissions;
-
-namespace System.IO
-{
-       /// <summary>
-       /// A utility class to assist with various permission validation in System.IO
-       /// </summary>
-       internal sealed class CheckPermission
-       {
-               /// <summary>
-               /// Generates and exception if caller doesn't have flags access to filesystem item specified by path
-               /// </summary>
-               [MonoTODO]
-               public static void Demand(FileIOPermissionAccess flags, string path)
-               {
-                       //FileIOPermission ioPerm = 
-                               new FileIOPermission(flags, path);
-                       // FIXME: FileIOPermission is not yet implemented
-                       //ioPerm.Demand();
-               }               
-               
-               public static void Access(FileAccess access, string path)
-               {
-                       switch(access)
-                       {
-                       case FileAccess.Read:
-                               Demand(FileIOPermissionAccess.Read, path);
-                               break;
-                       case FileAccess.Write:
-                               Demand(FileIOPermissionAccess.Write, path);
-                               break;
-                       case FileAccess.ReadWrite:
-                               Demand(FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, path);
-                               break;
-                       default:
-                               // TODO: determine what best to do here
-                               throw new ArgumentException("Invalid FileAccess parameter");
-                       }
-               }
-
-               [MonoTODO]
-               public static void ModeAccess(FileMode mode, FileAccess access, string path, bool exists)
-               {
-#if false
-                       // TODO: this logic isn't entirely complete and accurate, yet
-                       if((mode & (FileMode.CreateNew | FileMode.Create)) != 0)
-                       {
-                               CheckPermission.Demand(FileIOPermissionAccess.Write, Path.GetDirectoryName(path));
-                       }
-                       else if((mode & FileMode.OpenOrCreate) != 0)
-                       {
-                               if(!exists)
-                               {
-                                       CheckPermission.Demand(FileIOPermissionAccess.Write, Path.GetDirectoryName(path));
-                               }
-                               else
-                               {
-                                       CheckPermission.Access(access, path);
-                               }
-                       }
-                       else if(exists)
-                       {
-                               CheckPermission.Access(access, path);
-                       }
-                       else
-                       {
-                               throw new FileNotFoundException("File not found", path);
-                       }
-#endif
-               }
-       }
-}      // namespace System.IO.Private
index 98224e5723c5d1cd5230e30b78ff0461260609df..c782a1fcc19cee737b012292b3962ca1fc47e027 100644 (file)
@@ -217,8 +217,11 @@ namespace System.IO {
                        if (path == null || GetPathRoot (path) == path)
                                return null;
 
-                       CheckArgument.WhitespaceOnly (path);
-                       CheckArgument.PathChars (path);
+                       if (path.Trim ().Length == 0)
+                               throw new ArgumentException ("Argument string consists of whitespace characters only.");
+
+                       if (path.IndexOfAny (System.IO.Path.InvalidPathChars) > -1)
+                               throw new ArgumentException ("Path contains invalid characters");
 
                        int nLast = path.LastIndexOfAny (PathSeparatorChars);
                        if (nLast == 0)