/*
         * public static Boolean ContainsOnly(this IList flags, params Object[] tests)
         * {
         *  foreach (Object f in flags)
         *  {
         *      if (!tests.Contains(f)) return false;
         *  }
         *  return true;
         * }
         *
         * public static Boolean ContainsAll (this IList flags, params Object[] tests)
         * {
         *  foreach (Object f in tests)
         *  {
         *      if (!flags.Contains(f)) return false;
         *  }
         *  return true;
         * }
         *
         * public static Boolean ContainsOneOrMore(this IList flags, params Object[] tests)
         * {
         *  foreach (Object f in flags)
         *  {
         *      if (tests.Contains(f)) return true;
         *  }
         *  return false;
         * }
         *
         * public static Boolean ContainsOneOrMore(this contentTokenFlag flags, params contentTokenFlag[] tests)
         * {
         *  foreach (contentTokenFlag f in tests)
         *  {
         *      if (flags.HasFlag(f)) return true;
         *  }
         *  return false;
         * }
         *
         */

        public static contentTokenFlag Add(this contentTokenFlag flags, contentTokenFlag newFlag)
        {
            contentTokenFlag output = flags;

            if (flags.ToInt32() == 0)
            {
                output = newFlag;
            }
            else
            {
                output |= newFlag;
            }

            return(output);
        }