Beispiel #1
0
        /// <summary>
        /// Creates a new parameter <see cref="FieldExpression"/>.
        /// </summary>
        /// <param name="expressionType">
        ///     The expression type. This must be <see cref="FieldExpressionType.Request"/> or <see cref="FieldExpressionType.Response"/>.
        /// </param>
        /// <param name="pointer">
        ///     The JSON pointer.
        /// </param>
        public FieldExpression(FieldExpressionType expressionType, JsonPointer pointer)
        {
            switch (expressionType)
            {
            case FieldExpressionType.Request:
            case FieldExpressionType.Response:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(expressionType));
            }

            ExpressionType   = expressionType;
            ExpressionSource = FieldExpressionSource.Body;
            Name             = null;
            Pointer          = pointer;
        }
Beispiel #2
0
        /// <summary>
        /// Creates a new simple <see cref="FieldExpression"/>.
        /// </summary>
        /// <param name="expressionType">
        ///     The expression type. This must be <see cref="FieldExpressionType.Url"/>, <see cref="FieldExpressionType.Method"/>
        ///     or <see cref="FieldExpressionType.StatusCode"/>.
        /// </param>
        public FieldExpression(FieldExpressionType expressionType)
        {
            switch (expressionType)
            {
            case FieldExpressionType.Url:
            case FieldExpressionType.Method:
            case FieldExpressionType.StatusCode:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(expressionType));
            }

            ExpressionType   = expressionType;
            ExpressionSource = FieldExpressionSource.None;
            Name             = null;
            Pointer          = default;
        }
Beispiel #3
0
        /// <summary>
        /// Creates a new parameter <see cref="FieldExpression"/>.
        /// </summary>
        /// <param name="expressionType">
        ///     The expression type. This must be <see cref="FieldExpressionType.Request"/> or <see cref="FieldExpressionType.Response"/>.
        /// </param>
        /// <param name="expressionSource">
        ///     The expression source. This must be <see cref="FieldExpressionSource.Header"/>, <see cref="FieldExpressionSource.Query"/>
        ///     or <see cref="FieldExpressionSource.Path"/>.
        /// </param>
        /// <param name="name">
        ///     The name being referred to.
        /// </param>
        public FieldExpression(FieldExpressionType expressionType, FieldExpressionSource expressionSource, string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            switch (expressionType)
            {
            case FieldExpressionType.Request:
            case FieldExpressionType.Response:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(expressionType));
            }

            switch (expressionSource)
            {
            case FieldExpressionSource.Header:
                ValidateToken(name);
                break;

            case FieldExpressionSource.Query:
            case FieldExpressionSource.Path:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(expressionSource));
            }

            ExpressionType   = expressionType;
            ExpressionSource = expressionSource;
            Name             = name;
            Pointer          = default;
        }