Example #1
0
        /// <summary>
        /// Converts a JSONProto into a List of BasicObjectDefines.
        /// </summary>
        /// <param name="jsonProto">The JSON proto to convert.</param>
        /// <param name="outProto">The list that will receive the results.</param>
        private void ParseProto(Dictionary <string, string> jsonProto, List <BasicObjectDefine> outProto)
        {
            outProto.Clear();

            foreach (var data in jsonProto)
            {
                BasicObjectDefine obj = new BasicObjectDefine();
                string            dataType;

                obj.name = data.Key;

                GetTypeCountFromString(data.Value, out dataType, out obj.count);

                if (!ValidateBaseType(dataType))
                {
                    if (!ValidateComplexType(dataType))
                    {
                        throw new Exception($"Invalid type specified. {dataType}");
                    }
                }

                obj.type = dataType;

                outProto.Add(obj);
            }
        }
Example #2
0
        /// <summary>
        /// Convert a JSONTypedef into a ListObjectDefine and store it
        /// inside the Typedef array.
        /// </summary>
        /// <param name="typedef">A JSON Typedef object.</param>
        private void ParseTypedef(JSONTypedef typedef)
        {
            ListObjectDefine obj = new ListObjectDefine();

            obj.name = typedef.name;
            obj.list = new List <BasicObjectDefine>();

            foreach (var data in typedef.content)
            {
                BasicObjectDefine cobj = new BasicObjectDefine();
                cobj.name = data.Key;

                string typeName;
                GetTypeCountFromString(data.Value, out typeName, out cobj.count);

                if (!ValidateBaseType(typeName))
                {
                    throw new Exception($"Invalid type or complex type {typeName} in typedef {obj.name}");
                }

                cobj.type = typeName;

                obj.list.Add(cobj);
            }

            Typedefs.Add(obj);
        }