private Dictionary <int, List <SQLConnector> > computeCorrespondencesWithLinks(SQLElement clientClassifier, SQLElement targetClassifier, SQLRepository Repository, int tggPackageId)
        {
            DateTime time1 = DateTime.Now;

            Dictionary <int, List <SQLConnector> > possibleCorrespondencesLinkWithConnectors = new Dictionary <int, List <SQLConnector> >();

            foreach (SQLElement clientAndBases in EAUtil.getBaseClasses(clientClassifier))
            {
                foreach (SQLConnector conOfClientClassifier in clientAndBases.Connectors)
                {
                    SQLElement elementOnOtherSide = null;
                    if (conOfClientClassifier.ClientID == clientAndBases.ElementID)
                    {
                        elementOnOtherSide = Repository.GetElementByID(conOfClientClassifier.SupplierID);
                    }
                    else if (conOfClientClassifier.SupplierID == clientAndBases.ElementID)
                    {
                        elementOnOtherSide = Repository.GetElementByID(conOfClientClassifier.ClientID);
                    }
                    if (elementOnOtherSide.Stereotype == TGGModelingMain.TggCorrespondenceTypeStereotype && EAUtil.getOutermostPackage(elementOnOtherSide, Repository).PackageID == tggPackageId)
                    {
                        foreach (SQLConnector conOfTGGCorrType in elementOnOtherSide.Connectors)
                        {
                            foreach (SQLElement targetAndBases in EAUtil.getBaseClasses(targetClassifier))
                            {
                                if (conOfTGGCorrType.ClientID == targetAndBases.ElementID || conOfTGGCorrType.SupplierID == targetAndBases.ElementID)
                                {
                                    foreach (SQLElement subClass in EAUtil.findSubclasses(elementOnOtherSide, Repository))
                                    {
                                        List <SQLConnector> refs = new List <SQLConnector>();
                                        refs.Add(conOfTGGCorrType);
                                        refs.Add(conOfClientClassifier);
                                        if (!possibleCorrespondencesLinkWithConnectors.ContainsKey(subClass.ElementID))
                                        {
                                            possibleCorrespondencesLinkWithConnectors.Add(subClass.ElementID, refs);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(possibleCorrespondencesLinkWithConnectors);
        }