示例#1
0
        /// <summary>
        /// Visits <see cref="IOpenApiExtension"/>
        /// </summary>
        internal void Walk(IOpenApiExtension extension)
        {
            if (extension == null)
            {
                return;
            }

            _visitor.Visit(extension);
        }
示例#2
0
        /// <summary>
        /// Add extension into the Extensions
        /// </summary>
        /// <typeparam name="T"><see cref="IOpenApiExtensible"/>.</typeparam>
        /// <param name="element">The extensible Open API element. </param>
        /// <param name="name">The extension name.</param>
        /// <param name="any">The extension value.</param>
        public static void AddExtension <T>(this T element, string name, IOpenApiExtension any)
            where T : IOpenApiExtensible
        {
            if (element == null)
            {
                throw Error.ArgumentNull(nameof(element));
            }

            if (string.IsNullOrWhiteSpace(name))
            {
                throw Error.ArgumentNullOrWhiteSpace(nameof(name));
            }

            if (!name.StartsWith(OpenApiConstants.ExtensionFieldNamePrefix))
            {
                throw new OpenApiException(string.Format(SRResource.ExtensionFieldNameMustBeginWithXDash, name));
            }

            element.Extensions[name] = any ?? throw Error.ArgumentNull(nameof(any));
        }
示例#3
0
 /// <summary>
 /// Execute validation rules against an <see cref="IOpenApiExtension"/>
 /// </summary>
 /// <param name="item">The object to be validated</param>
 public override void Visit(IOpenApiExtension item) => Validate(item, item.GetType());
示例#4
0
 /// <summary>
 /// Visits <see cref="IOpenApiExtension"/>
 /// </summary>
 public virtual void Visit(IOpenApiExtension openApiExtension)
 {
 }
示例#5
0
 public override void Visit(IOpenApiExtension openApiExtension)
 {
     EncodeCall();
     base.Visit(openApiExtension);
 }
 /// <summary>
 ///
 /// </summary>
 public IList <IValidate> Build(IOpenApiExtension openApiExtension) => Rules;