public virtual ExternalPropertyFile VisitExternalPropertyFile(ExternalPropertyFile node)
        {
            if (node != null)
            {
                node.ArtifactLocation = VisitNullChecked(node.ArtifactLocation);
            }

            return(node);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ExternalPropertyFile" /> class from the specified instance.
        /// </summary>
        /// <param name="other">
        /// The instance from which the new instance is to be initialized.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// Thrown if <paramref name="other" /> is null.
        /// </exception>
        public ExternalPropertyFile(ExternalPropertyFile other)
        {
            if (other == null)
            {
                throw new ArgumentNullException(nameof(other));
            }

            Init(other.Location, other.Guid, other.ItemCount, other.Properties);
        }
        private void Init(ExternalPropertyFile conversion, ExternalPropertyFile graphs, ExternalPropertyFile externalizedProperties, IEnumerable <ExternalPropertyFile> artifacts, IEnumerable <ExternalPropertyFile> invocations, IEnumerable <ExternalPropertyFile> logicalLocations, IEnumerable <ExternalPropertyFile> results, ExternalPropertyFile tool)
        {
            if (conversion != null)
            {
                Conversion = new ExternalPropertyFile(conversion);
            }

            if (graphs != null)
            {
                Graphs = new ExternalPropertyFile(graphs);
            }

            if (externalizedProperties != null)
            {
                ExternalizedProperties = new ExternalPropertyFile(externalizedProperties);
            }

            if (artifacts != null)
            {
                var destination_0 = new List <ExternalPropertyFile>();
                foreach (var value_0 in artifacts)
                {
                    if (value_0 == null)
                    {
                        destination_0.Add(null);
                    }
                    else
                    {
                        destination_0.Add(new ExternalPropertyFile(value_0));
                    }
                }

                Artifacts = destination_0;
            }

            if (invocations != null)
            {
                var destination_1 = new List <ExternalPropertyFile>();
                foreach (var value_1 in invocations)
                {
                    if (value_1 == null)
                    {
                        destination_1.Add(null);
                    }
                    else
                    {
                        destination_1.Add(new ExternalPropertyFile(value_1));
                    }
                }

                Invocations = destination_1;
            }

            if (logicalLocations != null)
            {
                var destination_2 = new List <ExternalPropertyFile>();
                foreach (var value_2 in logicalLocations)
                {
                    if (value_2 == null)
                    {
                        destination_2.Add(null);
                    }
                    else
                    {
                        destination_2.Add(new ExternalPropertyFile(value_2));
                    }
                }

                LogicalLocations = destination_2;
            }

            if (results != null)
            {
                var destination_3 = new List <ExternalPropertyFile>();
                foreach (var value_3 in results)
                {
                    if (value_3 == null)
                    {
                        destination_3.Add(null);
                    }
                    else
                    {
                        destination_3.Add(new ExternalPropertyFile(value_3));
                    }
                }

                Results = destination_3;
            }

            if (tool != null)
            {
                Tool = new ExternalPropertyFile(tool);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ExternalPropertyFiles" /> class from the supplied values.
 /// </summary>
 /// <param name="conversion">
 /// An initialization value for the <see cref="P:Conversion" /> property.
 /// </param>
 /// <param name="graphs">
 /// An initialization value for the <see cref="P:Graphs" /> property.
 /// </param>
 /// <param name="externalizedProperties">
 /// An initialization value for the <see cref="P:ExternalizedProperties" /> property.
 /// </param>
 /// <param name="artifacts">
 /// An initialization value for the <see cref="P:Artifacts" /> property.
 /// </param>
 /// <param name="invocations">
 /// An initialization value for the <see cref="P:Invocations" /> property.
 /// </param>
 /// <param name="logicalLocations">
 /// An initialization value for the <see cref="P:LogicalLocations" /> property.
 /// </param>
 /// <param name="results">
 /// An initialization value for the <see cref="P:Results" /> property.
 /// </param>
 /// <param name="tool">
 /// An initialization value for the <see cref="P:Tool" /> property.
 /// </param>
 public ExternalPropertyFiles(ExternalPropertyFile conversion, ExternalPropertyFile graphs, ExternalPropertyFile externalizedProperties, IEnumerable <ExternalPropertyFile> artifacts, IEnumerable <ExternalPropertyFile> invocations, IEnumerable <ExternalPropertyFile> logicalLocations, IEnumerable <ExternalPropertyFile> results, ExternalPropertyFile tool)
 {
     Init(conversion, graphs, externalizedProperties, artifacts, invocations, logicalLocations, results, tool);
 }
 public bool ValueEquals(ExternalPropertyFile other) => ValueComparer.Equals(this, other);
        private void Init(ExternalPropertyFile conversion, ExternalPropertyFile graphs, ExternalPropertyFile externalizedProperties, IEnumerable <ExternalPropertyFile> artifacts, IEnumerable <ExternalPropertyFile> invocations, IEnumerable <ExternalPropertyFile> logicalLocations, IEnumerable <ExternalPropertyFile> threadFlowLocations, IEnumerable <ExternalPropertyFile> results, IEnumerable <ExternalPropertyFile> taxonomies, IEnumerable <ExternalPropertyFile> addresses, ExternalPropertyFile driver, IEnumerable <ExternalPropertyFile> extensions, IDictionary <string, SerializedPropertyInfo> properties)
        {
            if (conversion != null)
            {
                Conversion = new ExternalPropertyFile(conversion);
            }

            if (graphs != null)
            {
                Graphs = new ExternalPropertyFile(graphs);
            }

            if (externalizedProperties != null)
            {
                ExternalizedProperties = new ExternalPropertyFile(externalizedProperties);
            }

            if (artifacts != null)
            {
                var destination_0 = new List <ExternalPropertyFile>();
                foreach (var value_0 in artifacts)
                {
                    if (value_0 == null)
                    {
                        destination_0.Add(null);
                    }
                    else
                    {
                        destination_0.Add(new ExternalPropertyFile(value_0));
                    }
                }

                Artifacts = destination_0;
            }

            if (invocations != null)
            {
                var destination_1 = new List <ExternalPropertyFile>();
                foreach (var value_1 in invocations)
                {
                    if (value_1 == null)
                    {
                        destination_1.Add(null);
                    }
                    else
                    {
                        destination_1.Add(new ExternalPropertyFile(value_1));
                    }
                }

                Invocations = destination_1;
            }

            if (logicalLocations != null)
            {
                var destination_2 = new List <ExternalPropertyFile>();
                foreach (var value_2 in logicalLocations)
                {
                    if (value_2 == null)
                    {
                        destination_2.Add(null);
                    }
                    else
                    {
                        destination_2.Add(new ExternalPropertyFile(value_2));
                    }
                }

                LogicalLocations = destination_2;
            }

            if (threadFlowLocations != null)
            {
                var destination_3 = new List <ExternalPropertyFile>();
                foreach (var value_3 in threadFlowLocations)
                {
                    if (value_3 == null)
                    {
                        destination_3.Add(null);
                    }
                    else
                    {
                        destination_3.Add(new ExternalPropertyFile(value_3));
                    }
                }

                ThreadFlowLocations = destination_3;
            }

            if (results != null)
            {
                var destination_4 = new List <ExternalPropertyFile>();
                foreach (var value_4 in results)
                {
                    if (value_4 == null)
                    {
                        destination_4.Add(null);
                    }
                    else
                    {
                        destination_4.Add(new ExternalPropertyFile(value_4));
                    }
                }

                Results = destination_4;
            }

            if (taxonomies != null)
            {
                var destination_5 = new List <ExternalPropertyFile>();
                foreach (var value_5 in taxonomies)
                {
                    if (value_5 == null)
                    {
                        destination_5.Add(null);
                    }
                    else
                    {
                        destination_5.Add(new ExternalPropertyFile(value_5));
                    }
                }

                Taxonomies = destination_5;
            }

            if (addresses != null)
            {
                var destination_6 = new List <ExternalPropertyFile>();
                foreach (var value_6 in addresses)
                {
                    if (value_6 == null)
                    {
                        destination_6.Add(null);
                    }
                    else
                    {
                        destination_6.Add(new ExternalPropertyFile(value_6));
                    }
                }

                Addresses = destination_6;
            }

            if (driver != null)
            {
                Driver = new ExternalPropertyFile(driver);
            }

            if (extensions != null)
            {
                var destination_7 = new List <ExternalPropertyFile>();
                foreach (var value_7 in extensions)
                {
                    if (value_7 == null)
                    {
                        destination_7.Add(null);
                    }
                    else
                    {
                        destination_7.Add(new ExternalPropertyFile(value_7));
                    }
                }

                Extensions = destination_7;
            }

            if (properties != null)
            {
                Properties = new Dictionary <string, SerializedPropertyInfo>(properties);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ExternalPropertyFiles" /> class from the supplied values.
 /// </summary>
 /// <param name="conversion">
 /// An initialization value for the <see cref="P:Conversion" /> property.
 /// </param>
 /// <param name="graphs">
 /// An initialization value for the <see cref="P:Graphs" /> property.
 /// </param>
 /// <param name="externalizedProperties">
 /// An initialization value for the <see cref="P:ExternalizedProperties" /> property.
 /// </param>
 /// <param name="artifacts">
 /// An initialization value for the <see cref="P:Artifacts" /> property.
 /// </param>
 /// <param name="invocations">
 /// An initialization value for the <see cref="P:Invocations" /> property.
 /// </param>
 /// <param name="logicalLocations">
 /// An initialization value for the <see cref="P:LogicalLocations" /> property.
 /// </param>
 /// <param name="threadFlowLocations">
 /// An initialization value for the <see cref="P:ThreadFlowLocations" /> property.
 /// </param>
 /// <param name="results">
 /// An initialization value for the <see cref="P:Results" /> property.
 /// </param>
 /// <param name="taxonomies">
 /// An initialization value for the <see cref="P:Taxonomies" /> property.
 /// </param>
 /// <param name="addresses">
 /// An initialization value for the <see cref="P:Addresses" /> property.
 /// </param>
 /// <param name="driver">
 /// An initialization value for the <see cref="P:Driver" /> property.
 /// </param>
 /// <param name="extensions">
 /// An initialization value for the <see cref="P:Extensions" /> property.
 /// </param>
 /// <param name="properties">
 /// An initialization value for the <see cref="P:Properties" /> property.
 /// </param>
 public ExternalPropertyFiles(ExternalPropertyFile conversion, ExternalPropertyFile graphs, ExternalPropertyFile externalizedProperties, IEnumerable <ExternalPropertyFile> artifacts, IEnumerable <ExternalPropertyFile> invocations, IEnumerable <ExternalPropertyFile> logicalLocations, IEnumerable <ExternalPropertyFile> threadFlowLocations, IEnumerable <ExternalPropertyFile> results, IEnumerable <ExternalPropertyFile> taxonomies, IEnumerable <ExternalPropertyFile> addresses, ExternalPropertyFile driver, IEnumerable <ExternalPropertyFile> extensions, IDictionary <string, SerializedPropertyInfo> properties)
 {
     Init(conversion, graphs, externalizedProperties, artifacts, invocations, logicalLocations, threadFlowLocations, results, taxonomies, addresses, driver, extensions, properties);
 }