private static string _parenthesize(BplPermissions permissions) { if (!permissions.IsAtomic) { return "(" + permissions + ")"; } return permissions.ToString(); }
/// <summary>Parses the specified permissions pattern and combines with the given base permissions.</summary> public static BplPermissions Parse(BplPermissions basePermissions, string pattern) { if (pattern.IsEmpty()) { return basePermissions; } else { pattern = pattern.Trim(); if (pattern.StartsWith("+")) { return basePermissions + _parse(pattern.After(0)); } else if (pattern.StartsWith("-")) { return basePermissions - _parse(pattern.After(0)); } else { return _parse(pattern); } } }