/// <summary> /// Returns human-readable representation of the criterion predicate /// </summary> public static string ToHumanForm(this LocalizationCriterionPredicate pred) { switch (pred) { case LocalizationCriterionPredicate.MATCHES: return("matches"); case LocalizationCriterionPredicate.DOESNT_MATCH: return("doesn't match"); case LocalizationCriterionPredicate.IS_NULL: return("is null"); case LocalizationCriterionPredicate.NO_LETTERS: return("contains no letters"); case LocalizationCriterionPredicate.ONLY_CAPS: return("contains only CAPS and symbols"); case LocalizationCriterionPredicate.NO_WHITESPACE: return("contains no whitespace"); default: throw new Exception("Unknown LocalizationCriterionPredicate: " + pred); } }
/// <summary> /// Treats given string as a result of ToRegData() method; parses it and sets values accordingly /// </summary> public override void FromRegData(string data) { base.FromRegData(data); string[] a = data.Split('/'); if (a.Length < 7) { throw new Exception("Invalid registry data '" + data + "'"); } Action = (LocalizationCriterionAction)int.Parse(a[2]); Target = (LocalizationCriterionTarget)int.Parse(a[3]); Predicate = (LocalizationCriterionPredicate)int.Parse(a[4]); Name = a[5]; Regex = string.Join("/", a, 6, a.Length - 6); }