Exemple #1
0
        private MocaNode processEPackage(SQLPackage eaPackage)
        {
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaPackage, Main.MoflonExportTreeTaggedValueName);

            if (mocaTreeTag != null)
            {
                EPackage ePackage         = new EPackage(eaPackage, repository);
                MocaNode ePackageMocaNode = MocaTreeUtil.mocaNodeFromXmlString(mocaTreeTag.Notes);

                SQLTaggedValue changesTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaPackage, Main.MoflonChangesTreeTaggedValueName);
                if (changesTreeTag != null)
                {
                    MocaNode ePackageChangesMocaNode = MocaTreeUtil.mocaNodeFromXmlString(changesTreeTag.Notes);
                    if (ePackageChangesMocaNode.hasAllAttributes(new List <string>(
                                                                     new string[] { ChangesTreeConstants.ATTRIBUTE_KEY_PACKAGE_NAME, ChangesTreeConstants.ATTRIBUTE_KEY_PROJECT_NAME })))
                    {
                        ePackage.addChangesAttributesDuringExport(ePackageMocaNode, changesTreeTag);

                        CachedPackage temp = new CachedPackage();
                        temp.getPackage(eaPackage.PackageGUID, repository);
                        temp.name         = eaPackage.Name;
                        temp.previousName = eaPackage.Name;
                        temp.packageName  = ePackageChangesMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PACKAGE_NAME).Value;
                        temp.projectName  = ePackageChangesMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PROJECT_NAME).Value;
                        temp.savePackageToEATaggedValue(true);
                    }
                }

                ePackage.addAttributesDuringExport(ePackageMocaNode);
                this.currentNode.appendChildNode(ePackageMocaNode);

                foreach (SQLElement childClass in eaPackage.Elements)
                {
                    this.currentNode = ePackageMocaNode.getChildNodeWithName(EPackageHelper.ClassesChildNodeName);
                    if (childClass.Stereotype.ToLower() == ECOREModelingMain.EClassStereotype.ToLower())
                    {
                        processEClass(childClass);
                    }
                }

                foreach (SQLPackage childPackage in eaPackage.Packages)
                {
                    this.currentNode = ePackageMocaNode.getChildNodeWithName(EPackageHelper.PackagesChildNodeName);
                    processEPackage(childPackage);
                }

                return(ePackageMocaNode);
            }
            return(null);
        }