generated/runtime/Nodes/Collections/JsonArray.cs

/*---------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
using System;
using System.Collections;
using System.Collections.Generic;
 
namespace Commvault.Powershell.Runtime.Json
{
    public abstract partial class JsonArray : JsonNode, IEnumerable<JsonNode>
    {
        internal override JsonType Type => JsonType.Array;
 
        internal abstract JsonType? ElementType { get; }
 
        public abstract int Count { get; }
 
        internal virtual bool IsSet => false;
 
        internal bool IsEmpty => Count == 0;
 
        #region IEnumerable
 
        IEnumerator<JsonNode> IEnumerable<JsonNode>.GetEnumerator()
        {
            throw new NotImplementedException();
        }
 
        IEnumerator IEnumerable.GetEnumerator()
        {
            throw new NotImplementedException();
        }
 
        #endregion
 
        #region Static Helpers
 
        internal static JsonArray Create(short[] values)
            => new XImmutableArray<short>(values);
 
        internal static JsonArray Create(int[] values)
            => new XImmutableArray<int>(values);
 
        internal static JsonArray Create(long[] values)
            => new XImmutableArray<long>(values);
 
        internal static JsonArray Create(decimal[] values)
            => new XImmutableArray<decimal>(values);
 
        internal static JsonArray Create(float[] values)
            => new XImmutableArray<float>(values);
 
        internal static JsonArray Create(string[] values)
            => new XImmutableArray<string>(values);
 
        internal static JsonArray Create(XBinary[] values)
            => new XImmutableArray<XBinary>(values);
 
        #endregion
 
        internal static new JsonArray Parse(string text)
            => (JsonArray)JsonNode.Parse(text);
    }
}