/// <summary> /// Hide entity members. /// </summary> /// <param name="name">The name to scope the members to hide.</param> /// <param name="portion">The portion to hide.</param> /// <param name="empty">Only hide the portions if there are no members present.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="stringBuilder"/> is <c>null</c>.</exception> /// <exception cref="ArgumentException">Thrown when <paramref name="name"/> is <c>null</c>, empty, or only white space, or if <paramref name="portion"/> is not supplied.</exception> public static void HideEntityPortion(this StringBuilder stringBuilder, string name, EntityPortion portion, bool empty = false) { if (stringBuilder is null) { throw new ArgumentNullException(nameof(stringBuilder)); } if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentException("A non-empty value should be provided", nameof(name)); } if (portion == 0) { throw new ArgumentException("An entity portion should be supplied", nameof(portion)); } stringBuilder.Append(Constant.Hide); stringBuilder.Append(Constant.Space); stringBuilder.Append(name); stringBuilder.Append(Constant.Space); if (empty) { stringBuilder.Append(Constant.Empty); stringBuilder.Append(Constant.Space); } stringBuilder.Append(portion.ToString().ToLowerInvariant()); stringBuilder.AppendNewLine(); }
/// <summary> /// Hide entity members. /// </summary> /// <param name="portion">The portion to hide.</param> /// <param name="visibilities">One or more visibilities to hide.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="stringBuilder"/> is <c>null</c>.</exception> /// <exception cref="ArgumentException">Thrown when <paramref name="portion"/> is not supplied.</exception> public static void HideEntityPortion(this StringBuilder stringBuilder, EntityPortion portion, params VisibilityModifier[] visibilities) { if (stringBuilder is null) { throw new ArgumentNullException(nameof(stringBuilder)); } if (portion == 0) { throw new ArgumentException("An entity portion should be supplied", nameof(portion)); } stringBuilder.Append(Constant.Hide); stringBuilder.Append(Constant.Space); if (visibilities.Length > 0) { stringBuilder.AppendJoin(',', visibilities.Select(v => v.ToString().ToLowerInvariant())); stringBuilder.Append(Constant.Space); } stringBuilder.Append(portion.ToString().ToLowerInvariant()); stringBuilder.AppendNewLine(); }