//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


        /// <summary>
        /// Constructor used for recursive tree creation
        /// </summary>
        /// <param name="input_jobject"></param>
        /// <param name="Is_orig_obj"></param>
        public HashContainer(KeyValuePair <string, JToken> InputToken, int ParentTier, string parent)
        {
            Name = InputToken.Key;

            Tier = ++ParentTier;

            ContainerType = GetTheTokenType(InputToken.Value);

            Update(InputToken, parent);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Takes paths to all jsons, relative path and the name of the tree, gives the root of the HashContainerTree
        /// </summary>
        /// <param name="path"></param>
        ///
        public HashContainer(string path, string treename, string in_searchword, string in_negative_searchword)
        {
            Name = "";

            filename = treename;

            ContainerType = HashContainerType.Complex;

            IsMain = true;

            Parents.Add("");

            UpdateMain(path, in_searchword, in_negative_searchword);
        }
            public Content(HashContainerType in_type, object in_elements, int in_tier, HashSet <string> parents)
            {
                Type = in_type.ToString();
                switch (in_type)
                {
                case HashContainerType.Array:
                    ArrayTemplate = (string)in_elements;
                    break;

                case HashContainerType.Primitive:
                    PrimitiveType = (string)in_elements;
                    break;

                case HashContainerType.Complex:
                    var temp = in_elements as List <string>;
                    ComplexChildren = temp.ToArray();
                    break;
                }
                Parent = parents.ToArray();
                Tier   = in_tier;
            }