#if !LOCALTEST
namespace System.IO {
internal static 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>
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);
}
}
}
#endif