Пример #1
0
        /// <summary>
        /// Creates data for the package dependency analysis
        /// </summary>
        /// <param name="relationName">1 of the 4 relations</param>
        /// <param name="semi">current semi</param>
        /// <param name="parentServerIndex">the index of the analyzed data where the server information is stored</param>
        private void createPackageAnalysisList(string relationName, CSsemi.CSemiExp semi, int parentServerIndex)
        {
            try
            {
                PackageDependencyElem packageelem = new PackageDependencyElem();
                int parentServerNameIndex         = 0;
                int childServerNameIndex          = 0;
                int childTypeBeginLine            = repo_.semi.lineCount - 1;
                int childIndexInRepo = 0;
                if (relationName.Equals("Inheritance"))
                {
                    childIndexInRepo = findChildTypeIndexInheritance(semi[0], childTypeBeginLine);
                }
                else
                {
                    childIndexInRepo = findChildTypeIndex(semi[0]);
                }
                parentServerNameIndex = findServerIndex(parentServerIndex);
                childServerNameIndex  = findServerIndex(childIndexInRepo);
                string parentPackage = repo_.analyzedata[parentServerNameIndex].packageName;
                string childPackage  = repo_.analyzedata[childServerNameIndex].packageName;
                packageelem.parentPackage    = parentPackage;
                packageelem.parentServerName = repo_.analyzedata[parentServerNameIndex].serverName;

                if (!parentPackage.Equals(childPackage))
                {
                    packageelem.typeName1        = semi[1];
                    packageelem.typeName2        = semi[0];
                    packageelem.relationship     = relationName;
                    packageelem.childPackageName = childPackage;
                    packageelem.childServerName  = repo_.analyzedata[childServerNameIndex].serverName;

                    if (repo_.packagedata.Count > 0)
                    {
                        for (int i = 0; i < repo_.packagedata.Count;)
                        {
                            PackageDependencyElem curr = repo_.packagedata[i];
                            if (packageelem.isEqual(curr))
                            {
                                break;
                            }
                            else
                            {
                                repo_.packagedata.Add(packageelem);
                                break;
                            }
                        }
                    }
                    else
                    {
                        repo_.packagedata.Add(packageelem);
                    }
                }
                //}
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
        }
Пример #2
0
 public bool isEqual(PackageDependencyElem temp)
 {
     if (this.parentServerName == temp.parentServerName &&
         this.parentPackage == temp.parentPackage &&
         this.childPackageName == temp.childPackageName &&
         this.childServerName == temp.childServerName)
     {
         return(true);
     }
     return(false);
 }
Пример #3
0
        /// <summary>
        /// stores the semi into the Inheritance element
        /// </summary>
        /// <param name="semi">the semi to be stored</param>
        public override void doActionInheritance(CSsemi.CSemiExp semi)
        {
            InheritanceElem       inheritanceelem = new InheritanceElem();
            PackageDependencyElem packageelem     = new PackageDependencyElem();
            Elem elem           = new Elem();
            bool existingParent = false;

            for (int i = 0; i < repo_.analyzedata.Count; i++)
            {
                elem = repo_.analyzedata[i];

                if (elem.type == "class" && semi[1] == elem.name)
                {
                    for (int j = 0; j < repo_.inheritancedata.Count; j++)
                    {
                        inheritanceelem = repo_.inheritancedata[j];
                        if (semi[1] == inheritanceelem.parent)
                        {
                            existingParent = true;
                            int index = repo_.inheritancedata.IndexOf(inheritanceelem);
                            inheritanceelem.children.Add(semi[0]);
                            inheritanceelem.childcount++;
                            repo_.inheritancedata.Remove(inheritanceelem);
                            repo_.inheritancedata.Insert(index, inheritanceelem);
                        }
                    }

                    if (!existingParent)
                    {
                        inheritanceelem = new InheritanceElem();
                        inheritanceelem.children.Add(semi[0]);
                        inheritanceelem.parent = semi[1];
                        inheritanceelem.childcount++;
                        repo_.inheritancedata.Add(inheritanceelem);
                    }

                    createPackageAnalysisList("Inheritance", semi, i);
                }
            }
        }
Пример #4
0
        /// <summary>
        /// stores the semi into the Inheritance element
        /// </summary>
        /// <param name="semi">the semi to be stored</param>
        public override void doActionInheritance(CSsemi.CSemiExp semi)
        {
            InheritanceElem inheritanceelem = new InheritanceElem();
            PackageDependencyElem packageelem = new PackageDependencyElem();
            Elem elem = new Elem();
            bool existingParent = false;

            for (int i = 0; i < repo_.analyzedata.Count; i++)
            {
                elem = repo_.analyzedata[i];

                if (elem.type == "class" && semi[1] == elem.name)
                {
                    for (int j = 0; j < repo_.inheritancedata.Count; j++)
                    {
                        inheritanceelem = repo_.inheritancedata[j];
                        if (semi[1] == inheritanceelem.parent)
                        {
                            existingParent = true;
                            int index = repo_.inheritancedata.IndexOf(inheritanceelem);
                            inheritanceelem.children.Add(semi[0]);
                            inheritanceelem.childcount++;
                            repo_.inheritancedata.Remove(inheritanceelem);
                            repo_.inheritancedata.Insert(index, inheritanceelem);
                        }
                    }

                    if (!existingParent)
                    {
                        inheritanceelem = new InheritanceElem();
                        inheritanceelem.children.Add(semi[0]);
                        inheritanceelem.parent = semi[1];
                        inheritanceelem.childcount++;
                        repo_.inheritancedata.Add(inheritanceelem);
                    }

                    createPackageAnalysisList("Inheritance", semi, i);
                }
            }
        }
Пример #5
0
        /// <summary>
        /// Creates data for the package dependency analysis
        /// </summary>
        /// <param name="relationName">1 of the 4 relations</param>
        /// <param name="semi">current semi</param>
        /// <param name="parentServerIndex">the index of the analyzed data where the server information is stored</param>
        private void createPackageAnalysisList(string relationName, CSsemi.CSemiExp semi, int parentServerIndex)
        {
            try
            {
                PackageDependencyElem packageelem = new PackageDependencyElem();
                int parentServerNameIndex = 0;
                int childServerNameIndex = 0;
                int childTypeBeginLine = repo_.semi.lineCount - 1;
                int childIndexInRepo = 0;
                if (relationName.Equals("Inheritance"))
                    childIndexInRepo = findChildTypeIndexInheritance(semi[0], childTypeBeginLine);
                else
                    childIndexInRepo = findChildTypeIndex(semi[0]);
                parentServerNameIndex = findServerIndex(parentServerIndex);
                childServerNameIndex = findServerIndex(childIndexInRepo);
                string parentPackage = repo_.analyzedata[parentServerNameIndex].packageName;
                string childPackage = repo_.analyzedata[childServerNameIndex].packageName;
                packageelem.parentPackage = parentPackage;
                packageelem.parentServerName = repo_.analyzedata[parentServerNameIndex].serverName;

                if (!parentPackage.Equals(childPackage))
                {
                    packageelem.typeName1 = semi[1];
                    packageelem.typeName2 = semi[0];
                    packageelem.relationship = relationName;
                    packageelem.childPackageName = childPackage;
                    packageelem.childServerName = repo_.analyzedata[childServerNameIndex].serverName;

                    if (repo_.packagedata.Count > 0)
                        for (int i = 0; i < repo_.packagedata.Count;)
                        {
                            PackageDependencyElem curr = repo_.packagedata[i];
                            if (packageelem.isEqual(curr))
                                break;
                            else
                            {
                                repo_.packagedata.Add(packageelem);
                                break;
                            }
                        }
                    else
                        repo_.packagedata.Add(packageelem);
                }
                //}
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
        }
Пример #6
0
 public bool isEqual(PackageDependencyElem temp)
 {
     if (this.parentServerName == temp.parentServerName
         && this.parentPackage == temp.parentPackage
         && this.childPackageName == temp.childPackageName
         && this.childServerName == temp.childServerName)
         return true;
     return false;
 }