예제 #1
0
        public virtual bool IsTheSame(BaseConstruct comparisonObject, ComparisonDepth depth)
        {
            if (Name != comparisonObject.Name)
            {
                ComparisonDifference += comparisonObject.GetType().Name + ".Name";
                return(false);
            }

            if (depth == ComparisonDepth.Signature)
            {
                return(true);
            }

            Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

            if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(_Attributes.ToArray(), comparisonObject._Attributes.ToArray(), comparer))
            {
                ComparisonDifference += comparisonObject.GetType().Name + ".Attributes";
                return(false);
            }
            if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.StringCollectionsAreTheSame(XmlComments, comparisonObject.XmlComments))
            {
                ComparisonDifference += comparisonObject.GetType().Name + ".XmlComments";
                return(false);
            }
            if (Comments.IsTheSame(comparisonObject.Comments) == false)
            {
                ComparisonDifference += comparisonObject.GetType().Name + ".Comments";
                return(false);
            }
            return(true);
        }
예제 #2
0
        private bool IsTheSame(Interface comparisonInterface, ComparisonDepth depth)
        {
            if (comparisonInterface == null)
            {
                return(false);
            }

            if (Name == comparisonInterface.Name)
            {
                if (depth == ComparisonDepth.Signature)
                {
                    return(true);
                }

                if (!base.IsTheSame(comparisonInterface, depth))
                {
                    return(false);
                }

                if (!Utility.StringCollectionsAreTheSame(Modifiers, comparisonInterface.Modifiers))
                {
                    ComparisonDifference += GetType().Name + ".Modifiers";
                    return(false);
                }

                if (depth == ComparisonDepth.Outer)
                {
                    return(true);
                }

                // Now check all child objects
                Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Events.ToArray(), comparisonInterface.Events.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Events";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Indexers.ToArray(), comparisonInterface.Indexers.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Indexers";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Methods.ToArray(), comparisonInterface.Methods.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Methods";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Properties.ToArray(), comparisonInterface.Properties.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Properties";
                    return(false);
                }
                return(true);
            }
            return(false);
        }
예제 #3
0
        private bool IsTheSame(Enumeration comparisonEnum, ComparisonDepth depth)
        {
            if (comparisonEnum == null)
            {
                return(false);
            }

            if (Name == comparisonEnum.Name)
            {
                if ((ParentObject == null && comparisonEnum.ParentObject == null) ||
                    (ParentObject.GetType() == comparisonEnum.ParentObject.GetType() &&
                     ParentObject.Name == comparisonEnum.ParentObject.Name))
                {
                    if (depth == ComparisonDepth.Signature)
                    {
                        return(true);
                    }

                    if (!base.IsTheSame(comparisonEnum, depth))
                    {
                        return(false);
                    }

                    if (!Utility.StringCollectionsAreTheSame(Modifiers, comparisonEnum.Modifiers))
                    {
                        ComparisonDifference += GetType().Name + ".Modifiers";
                        return(false);
                    }

                    if (depth == ComparisonDepth.Outer)
                    {
                        return(true);
                    }

                    // Now check all child objects
                    Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

                    if (EnumBase != comparisonEnum.EnumBase)
                    {
                        return(false);
                    }
                    if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Members.ToArray(), comparisonEnum.Members.ToArray(), comparer))
                    {
                        ComparisonDifference += GetType().Name + ".Members";
                        return(false);
                    }
                    return(true);
                }
            }
            return(false);
        }
예제 #4
0
        private bool IsTheSame(AttributeSection comparisonAttribute, ComparisonDepth depth)
        {
            if (comparisonAttribute == null)
            {
                return(false);
            }

            if (Name == comparisonAttribute.Name && singleAttributes.Count == comparisonAttribute.singleAttributes.Count)
            {
                Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(singleAttributes.ToArray(), comparisonAttribute.singleAttributes.ToArray(), comparer, depth))
                {
                    ComparisonDifference += GetType().Name + ".SingleAttributes";
                    return(false);
                }

                if (depth == ComparisonDepth.Signature)
                {
                    return(true);
                }

                if (!base.IsTheSame(comparisonAttribute, depth))
                {
                    return(false);
                }

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Attributes.ToArray(), comparisonAttribute.Attributes.ToArray()))
                {
                    ComparisonDifference += GetType().Name + ".Attributes";
                    return(false);
                }

                return(true);
            }
            return(false);
        }
예제 #5
0
        private bool IsTheSame(AttributeSection comparisonAttribute, ComparisonDepth depth)
        {
            if (comparisonAttribute == null)
                return false;

            if (Name == comparisonAttribute.Name && singleAttributes.Count == comparisonAttribute.singleAttributes.Count)
            {
                Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(singleAttributes.ToArray(), comparisonAttribute.singleAttributes.ToArray(), comparer, depth))
                {
                    ComparisonDifference += GetType().Name + ".SingleAttributes";
                    return false;
                }

                if (depth == ComparisonDepth.Signature)
                {
                    return true;
                }

                if (!base.IsTheSame(comparisonAttribute, depth))
                {
                    return false;
                }

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Attributes.ToArray(), comparisonAttribute.Attributes.ToArray()))
                {
                    ComparisonDifference += GetType().Name + ".Attributes";
                    return false;
                }

                return true;
            }
            return false;
        }
예제 #6
0
        private bool IsTheSame(Namespace comparisonNamespace, ComparisonDepth depth)
        {
            if (comparisonNamespace == null)
            {
                return(false);
            }

            if (Name == comparisonNamespace.Name)
            {
                if (depth == ComparisonDepth.Signature)
                {
                    return(true);
                }

                if (!base.IsTheSame(comparisonNamespace, depth))
                {
                    return(false);
                }

                if (depth == ComparisonDepth.Outer)
                {
                    return(true);
                }

                if (!Utility.CollectionsAreTheSame(UsingStatements, comparisonNamespace.UsingStatements, new Comparers.UsingStatementComparer()))
                {
                    ComparisonDifference += GetType().Name + ".UsingStatements";
                    return(false);
                }

                Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Classes.ToArray(), comparisonNamespace.Classes.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Classes";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Structs.ToArray(), comparisonNamespace.Structs.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Structs";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Interfaces.ToArray(), comparisonNamespace.Interfaces.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Interfaces";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Enums.ToArray(), comparisonNamespace.Enums.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Enums";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Delegates.ToArray(), comparisonNamespace.Delegates.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Delegates";
                    return(false);
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(InnerNamespaces.ToArray(), comparisonNamespace.InnerNamespaces.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Namespaces";
                    return(false);
                }
                return(true);
            }
            return(false);
        }
예제 #7
0
        private bool IsTheSame(Enumeration comparisonEnum, ComparisonDepth depth)
        {
            if (comparisonEnum == null)
                return false;

            if (Name == comparisonEnum.Name)
            {
                if ((ParentObject == null && comparisonEnum.ParentObject == null) ||
                    (ParentObject.GetType() == comparisonEnum.ParentObject.GetType() &&
                    ParentObject.Name == comparisonEnum.ParentObject.Name))
                {
                    if (depth == ComparisonDepth.Signature)
                    {
                        return true;
                    }

                    if (!base.IsTheSame(comparisonEnum, depth))
                    {
                        return false;
                    }

                    if (!Utility.StringCollectionsAreTheSame(Modifiers, comparisonEnum.Modifiers))
                    {
                        ComparisonDifference += GetType().Name + ".Modifiers";
                        return false;
                    }

                    if (depth == ComparisonDepth.Outer)
                    {
                        return true;
                    }

                    // Now check all child objects
                    Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

                    if (EnumBase != comparisonEnum.EnumBase)
                    {
                        return false;
                    }
                    if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Members.ToArray(), comparisonEnum.Members.ToArray(), comparer))
                    {
                        ComparisonDifference += GetType().Name + ".Members";
                        return false;
                    }
                    return true;
                }
            }
            return false;
        }
예제 #8
0
        private bool IsTheSame(Interface comparisonInterface, ComparisonDepth depth)
        {
            if (comparisonInterface == null)
                return false;

            if (Name == comparisonInterface.Name)
            {
                if (depth == ComparisonDepth.Signature)
                {
                    return true;
                }

                if (!base.IsTheSame(comparisonInterface, depth))
                {
                    return false;
                }

                if (!Utility.StringCollectionsAreTheSame(Modifiers, comparisonInterface.Modifiers))
                {
                    ComparisonDifference += GetType().Name + ".Modifiers";
                    return false;
                }

                if (depth == ComparisonDepth.Outer)
                {
                    return true;
                }

                // Now check all child objects
                Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Events.ToArray(), comparisonInterface.Events.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Events";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Indexers.ToArray(), comparisonInterface.Indexers.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Indexers";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Methods.ToArray(), comparisonInterface.Methods.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Methods";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Properties.ToArray(), comparisonInterface.Properties.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Properties";
                    return false;
                }
                return true;

            }
            return false;
        }
예제 #9
0
        private bool IsTheSame(Namespace comparisonNamespace, ComparisonDepth depth)
        {
            if (comparisonNamespace == null)
                return false;

            if (Name == comparisonNamespace.Name)
            {
                if (depth == ComparisonDepth.Signature)
                {
                    return true;
                }

                if (!base.IsTheSame(comparisonNamespace, depth))
                {
                    return false;
                }

                if (depth == ComparisonDepth.Outer)
                {
                    return true;
                }

                if (!Utility.CollectionsAreTheSame(UsingStatements, comparisonNamespace.UsingStatements, new Comparers.UsingStatementComparer()))
                {
                    ComparisonDifference += GetType().Name + ".UsingStatements";
                    return false;
                }

                Comparers.BaseConstructComparer comparer = new Comparers.BaseConstructComparer();

                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Classes.ToArray(), comparisonNamespace.Classes.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Classes";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Structs.ToArray(), comparisonNamespace.Structs.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Structs";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Interfaces.ToArray(), comparisonNamespace.Interfaces.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Interfaces";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Enums.ToArray(), comparisonNamespace.Enums.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Enums";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(Delegates.ToArray(), comparisonNamespace.Delegates.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Delegates";
                    return false;
                }
                if (!ArchAngel.Providers.CodeProvider.CSharp.Utility.BaseContructCollectionsAreTheSame(InnerNamespaces.ToArray(), comparisonNamespace.InnerNamespaces.ToArray(), comparer))
                {
                    ComparisonDifference += GetType().Name + ".Namespaces";
                    return false;
                }
                return true;
            }
            return false;
        }