Exemplo n.º 1
0
        public MocaNode processEClass(SQLElement eaClass)
        {
            SQLTaggedValue changesTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaClass, Main.MoflonChangesTreeTaggedValueName);

            if (changesTreeTag != null)
            {
                EClass eClass = new EClass(eaClass, repository);
                eClass.loadTreeFromTaggedValue();
                MocaNode eClassMocaNode = MocaTreeUtil.mocaNodeFromXmlString(changesTreeTag.Notes);

                eClass.addMocaAttributesDuringExport(eClassMocaNode);

                this.currentNode.appendChildNode(eClassMocaNode);

                if (eClassMocaNode.hasAllAttributes(new List <string>(
                                                        new string[] { ChangesTreeConstants.ATTRIBUTE_KEY_PACKAGE_NAME, ChangesTreeConstants.ATTRIBUTE_KEY_PROJECT_NAME })))
                {
                    String packageName = eClassMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PACKAGE_NAME).Value;
                    String projectName = eClassMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PROJECT_NAME).Value;

                    CachedClass temp = new CachedClass();
                    temp.getElement(eaClass.ElementGUID, repository);
                    temp.name         = eClass.Name;
                    temp.previousName = eClass.Name;
                    temp.packageName  = packageName;
                    temp.projectName  = projectName;
                    temp.saveElementToEATaggedValue(true);

                    return(eClassMocaNode);
                }
            }
            return(null);
        }
Exemplo n.º 2
0
        public override List <FirstObject> getFirstObjects(SQLElement elementToSearch, SQLRepository repository)
        {
            List <FirstObject> targetParameters = new List <FirstObject>();
            SQLMethod          associatedMethod = null;

            if (elementToSearch.Stereotype == SDMModelingMain.SdmContainerStereotype)
            {
                SQLTaggedValue assoMethodTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(elementToSearch, SDMModelingMain.SDMContainerAssociatedMethodTaggedValueName);
                associatedMethod = repository.GetMethodByGuid(assoMethodTag.Value);
            }

            else if (elementToSearch.Stereotype == TGGModelingMain.TggRuleStereotype)
            {
                if (elementToSearch.Methods.Count > 0)
                {
                    associatedMethod = elementToSearch.Methods.GetAt(0);
                }
            }

            if (associatedMethod != null)
            {
                foreach (SQLParameter parameter in associatedMethod.Parameters)
                {
                    targetParameters.Add(new FirstObject(parameter));
                }
            }

            targetParameters.Sort(new EAObjectIComparer());
            return(targetParameters);
        }
Exemplo n.º 3
0
        public static bool openSelectedMethodSDM(EA.Diagram actDiag, SQLMethod meth, SQLRepository sqlRepository, out SQLElement methParent, out SQLElement container)
        {
            SQLTaggedValue aTag = null;

            methParent = sqlRepository.GetElementByID(meth.ParentID);
            container  = null;
            foreach (SQLElement sdmContainer in methParent.Elements)
            {
                aTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(sdmContainer, SDMModelingMain.SDMContainerAssociatedMethodTaggedValueName);
                if (aTag != null)
                {
                    if (aTag.Value == meth.MethodGUID.ToString())
                    {
                        container = sdmContainer;
                        break;
                    }
                }
            }
            SQLDiagram sdmDiagg = null;

            if (container != null)
            {
                foreach (SQLDiagram sdmDiag in container.Diagrams)
                {
                    sdmDiagg = sdmDiag;
                    Navigator.addAnchorEntry(sdmDiag.DiagramID, actDiag.DiagramID);
                    sqlRepository.OpenDiagram(sdmDiag.DiagramID);

                    setAnchorElementTags(sqlRepository, actDiag, container);

                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 4
0
        private void processTggRule(SQLElement ruleClass)
        {
            //this.exportProgressBar.invokePerformNext("exporting EClass: " + eaClass.Name);
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(ruleClass, Main.MoflonExportTreeTaggedValueName);
            TGGRule        tggRule     = new TGGRule(repository, ruleClass);

            tggRule.loadTreeFromTaggedValue();
            MocaNode tggRuleMocaNode = new MocaNode();

            tggRuleMocaNode.deserializeFromXmlTree(MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes).DocumentElement.FirstChild as XmlElement);
            this.currentNode.appendChildNode(tggRuleMocaNode);

            tggRule.additionalAttributesDuringExport(tggRuleMocaNode);

            foreach (SQLElement element in ruleClass.Elements)
            {
                //handle tgg rule pattern

                if (element.Stereotype == TGGModelingMain.TggObjectVariableStereotype || element.Stereotype == TGGModelingMain.TggCorrespondenceStereotype)
                {
                    this.currentNode = tggRuleMocaNode.getChildNodeWithName(StoryPattern.ObjectVariablesChildNodeName);
                    processTggObjectVariable(element);
                }
                //handle sdms of tgg rule class
                else if (element.Stereotype == SDMModelingMain.SdmContainerStereotype)
                {
                    String   associatedMethodguid = EAEcoreAddin.Util.EAUtil.findTaggedValue(element, SDMModelingMain.SDMContainerAssociatedMethodTaggedValueName).Value;
                    MocaNode operationsNode       = tggRuleMocaNode.getChildNodeWithName(EClass.OperationsChildNodeName);
                    MocaNode owningOperationNode  = null;

                    foreach (MocaNode EOperationNode in operationsNode.Children)
                    {
                        MocaAttribute guidAttribute = EOperationNode.getAttributeOrCreate(Main.GuidStringName);
                        if (guidAttribute != null && guidAttribute.Value == associatedMethodguid)
                        {
                            owningOperationNode = EOperationNode;
                        }
                    }

                    if (owningOperationNode != null)
                    {
                        MocaNode sdmActivityNode = this.ExportMain.ecoreExport.sdmExport.processActivity(element);
                        owningOperationNode.appendChildNode(sdmActivityNode);
                    }
                }
                else if (element.Stereotype == TGGModelingMain.CSPConstraintStereotype || element.Stereotype == "TGGCsp")
                {
                    MocaNode cspsNode = tggRuleMocaNode.getChildNodeWithName(TGGRule.CspsChildNodeName);
                    if (cspsNode == null)
                    {
                        cspsNode = tggRuleMocaNode.appendChildNode(TGGRule.CspsChildNodeName);
                    }
                    this.currentNode = cspsNode;
                    processTGGCSP(element);


                    tggRuleMocaNode.getAttributeOrCreate(TGGRule.CspSpecAttributeName).Value += element.Notes.Replace(Environment.NewLine, "");
                }
            }
        }
Exemplo n.º 5
0
        public void processObjectVariable(SQLElement objectVariable)
        {
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(objectVariable, Main.MoflonExportTreeTaggedValueName);

            ObjectVariable ov = new ObjectVariable(objectVariable, repository);

            ov.loadTreeFromTaggedValue();

            SQLElement classifier = EAUtil.getClassifierElement(repository, objectVariable.ClassifierID);

            if (classifier != null)
            {
                Export.computeAndAddToDependencies(repository, classifier);
            }

            MocaNode ovMocaNode = new MocaNode();

            ovMocaNode.deserializeFromXmlTree(MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes).DocumentElement.FirstChild as XmlElement);

            ov.addAttributesDuringExport(ovMocaNode);

            this.currentNode.appendChildNode(ovMocaNode);

            foreach (SQLConnector linkVariable in objectVariable.Connectors)
            {
                if ((linkVariable.Stereotype == SDMModelingMain.LinkVariableStereotype || linkVariable.Stereotype == "SDM_Association") && linkVariable.ClientID == objectVariable.ElementID)
                {
                    this.currentNode = ovMocaNode.getChildNodeWithName(ObjectVariable.OutgoingLinksNodeName);
                    processLinkVariable(linkVariable);
                }
            }
        }
Exemplo n.º 6
0
        private void savePackageChangesToEATaggedValue(SQLRepository sqlRepository, String GUID)
        {
            SQLPackage sqlPackage = sqlRepository.GetPackageByGuid(GUID);
            EPackage   epackage   = new EPackage(sqlPackage, sqlRepository);
            String     packages   = addPackageName(epackage, "", sqlRepository);

            String previousName = sqlPackage.Name;

            SQLTaggedValue changesTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(sqlPackage, Main.MoflonChangesTreeTaggedValueName);

            if (changesTreeTag != null)
            {
                MocaNode eClassMocaNode = MocaTreeUtil.mocaNodeFromXmlString(changesTreeTag.Notes);
                previousName = eClassMocaNode.getAttribute("previousName").Value;
            }

            CachedPackage temp = new CachedPackage();

            temp.getPackage(GUID, sqlRepository);
            temp.name         = sqlPackage.Name;
            temp.previousName = previousName;
            temp.packageName  = packages;
            temp.projectName  = getTopLevelPackageName(sqlPackage, sqlRepository);
            temp.savePackageToEATaggedValue(true);
        }
Exemplo n.º 7
0
        private void saveElementChangesToEATaggedValue(SQLElement eaElement, String GUID, SQLRepository sqlRepository)
        {
            SQLPackage package  = sqlRepository.GetPackageByID(eaElement.PackageID);
            EPackage   epackage = new EPackage(package, sqlRepository);
            // String packages = addPackageName(epackage, "", sqlRepository);

            String previousName = eaElement.Name;

            SQLTaggedValue exportTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaElement, Main.MoflonExportTreeTaggedValueName);

            /*if (exportTreeTag != null)
             * {
             *  MocaNode eClassMocaNode = MocaTreeUtil.mocaNodeFromXmlString(exportTreeTag.Notes);
             *  MocaNode eClassAttributes = eClassMocaNode.Children[1];
             *  eClassAttributes.getAttribute()
             *
             *  previousName = eClassMocaNode.getAttribute("previousName").Value;
             * }*/

            SQLTaggedValue changesTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaElement, Main.MoflonChangesTreeTaggedValueName);

            if (changesTreeTag != null)
            {
                MocaNode eClassMocaNode = MocaTreeUtil.mocaNodeFromXmlString(changesTreeTag.Notes);
                previousName = eClassMocaNode.getAttribute("previousName").Value;
            }
            CachedClass temp = new CachedClass();

            temp.getElement(GUID, sqlRepository);
            temp.name         = eaElement.Name;
            temp.previousName = previousName;
            temp.packageName  = addPackageName(epackage, "", sqlRepository);
            temp.projectName  = getTopLevelPackageName(package, sqlRepository);
            temp.saveElementToEATaggedValue(true);
        }
Exemplo n.º 8
0
        public MocaNode processEClass(SQLElement eaClass)
        {
            SQLTaggedValue refactorTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaClass, Main.MoflonRefactorTreeTaggedValueName);

            if (refactorTreeTag != null)
            {
                EClass eClass = new EClass(eaClass, repository);
                eClass.loadTreeFromTaggedValue();
                MocaNode eClassMocaNode = MocaTreeUtil.mocaNodeFromXmlString(refactorTreeTag.Notes);

                eClass.addMocaAttributesDuringExport(eClassMocaNode);

                //add baseclass dependencies

                /*foreach (var baseClass in eClassMocaNode.getAttributeOrCreate("baseClasses").Value.Split(" ".ToArray()))
                 * {
                 *  if (baseClass != "")
                 *  {
                 *      SQLElement baseclass = repository.GetElementByGuid(baseClass);
                 *      Export.computeAndAddToDependencies(repository, baseclass);
                 *  }
                 * }*/

                this.currentNode.appendChildNode(eClassMocaNode);

                return(eClassMocaNode);
            }
            return(null);
        }
Exemplo n.º 9
0
        private MocaNode processEPackage(SQLPackage eaPackage)
        {
            //backgroundWorker.ReportProgress(0, PersistencyUtil.computePackageUri(eaPackage, repository));
            //SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaPackage, Main.MoflonRefactorTreeTaggedValueName);

            //if (mocaTreeTag == null)
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaPackage, Main.MoflonExportTreeTaggedValueName);

            if (mocaTreeTag != null)
            {
                EPackage ePackage         = new EPackage(eaPackage, repository);
                MocaNode ePackageMocaNode = MocaTreeUtil.mocaNodeFromXmlString(mocaTreeTag.Notes);
                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);
        }
        private void setDefaultAppearance()
        {
            txtName.Text = activityTabsForm.ActivityNode.Name;

            comboTypes.comboBoxFromActivityNodeType(activityTabsForm.ActivityNode);

            SQLTaggedValue extractedTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(activityTabsForm.ActivityNode.ActivityNodeEAElement, Main.MoflonExtractedStoryPatternTaggedValueName);

            if (extractedTag == null)
            {
                buttonEvacuate.Text = "Extract Story Pattern";
                evacuated           = Main.FalseValue;
            }
            else
            {
                evacuated = extractedTag.Value;

                if (evacuated == Main.FalseValue)
                {
                    buttonEvacuate.Text = "Extract Story Pattern";
                }
                if (evacuated == Main.TrueValue)
                {
                    buttonEvacuate.Text = "Embed Story Pattern";
                }
            }
        }
Exemplo n.º 11
0
        protected void setDefaultValueIfNecessary(String tagName)
        {
            SQLTaggedValue tag = EAUtil.findTaggedValue(package.EaPackage, tagName);

            if (tag == null)
            {
                EAUtil.setTaggedValue(package.Repository, package.EaPackage.getRealPackage(), tagName, DEFAULT_VALUE_PLACEHOLDER);
            }
        }
        private static void handleObsoleteTaggedValue(SQLPackage eaPackage, List <String> results, String tag)
        {
            SQLTaggedValue validationFilter = EAUtil.findTaggedValue(eaPackage, tag);

            if (validationFilter != null)
            {
                results.Add("The tagged value " + tag + " is obsolete and should be deleted or renamed appropriately.");
            }
        }
        public static bool isIgnored(SQLElement taggedObject)
        {
            SQLTaggedValue taggedValue = EAUtil.findTaggedValue(taggedObject, IGNORED_TAG_NAME);

            if (taggedValue != null && "true".Equals(taggedValue.Value))
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 14
0
        public static string setOvMethodCallExpressionGui(ObjectVariable ov)
        {
            SQLTaggedValue mceVisTag = EAUtil.findTaggedValue(ov.sqlElement, ObjectVariable.MceVisualizationTaggedValueName);


            Expression BindingExpression = ov.BindingExpression;

            if (BindingExpression != null)

            {
                deletePossibleBindingConnectors(ov.sqlElement.getRealElement());

                if (BindingExpression is MethodCallExpression)
                {
                    var mcE = BindingExpression as MethodCallExpression;

                    ObjectVariableExpression firstOvExpression = null;

                    if (mcE.OwnedParameterBinding.Count == 1 && (mceVisTag == null || mceVisTag.Value == "true"))
                    {
                        foreach (ParameterBinding paramBinding in mcE.OwnedParameterBinding)
                        {
                            if (paramBinding.ValueExpression is ObjectVariableExpression)
                            {
                                firstOvExpression = paramBinding.ValueExpression as ObjectVariableExpression;
                            }
                        }

                        if (firstOvExpression != null)
                        {
                            EA.Element firstOvEaElement = ov.Repository.GetOriginalRepository().GetElementByGuid(firstOvExpression.ObjectVariableGUID);

                            if (firstOvEaElement.ParentID == ov.sqlElement.ParentID)
                            {
                                EA.Connector bindingLink = firstOvEaElement.Connectors.AddNew("", Main.EADependencyType) as EA.Connector;
                                bindingLink.Stereotype = SDMModelingMain.BindingExpressionLinkStereotype;
                                bindingLink.Name       = mcE.Target + "." + mcE.MethodName;
                                bindingLink.SupplierID = ov.sqlElement.ElementID;
                                bindingLink.Update();
                                EA.Element realElement = ov.sqlElement.getRealElement();
                                realElement.Connectors.Refresh();
                                realElement.Notes = "";
                                realElement.Update();

                                EAUtil.setTaggedValue(ov.Repository, realElement, ObjectVariable.BindingExpressionOutputTaggedValueName, "");

                                return("");
                            }
                        }
                    }
                }
                return(BindingExpression.ToString());
            }
            return("");
        }
Exemplo n.º 15
0
        private void processTGGCSP(SQLElement element)
        {
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(element, Main.MoflonExportTreeTaggedValueName);

            if (mocaTreeTag != null)
            {
                MocaNode tggRuleMocaNode = new MocaNode();
                tggRuleMocaNode.deserializeFromXmlTree(MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes).DocumentElement.FirstChild as XmlElement);
                this.currentNode.appendChildNode(tggRuleMocaNode);
            }
        }
Exemplo n.º 16
0
        public void processEEnum(SQLElement eaEnum)
        {
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaEnum, Main.MoflonExportTreeTaggedValueName);

            if (mocaTreeTag != null)
            {
                MocaNode eEnumMocaNode = new MocaNode();
                eEnumMocaNode.deserializeFromXmlTree(MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes).DocumentElement.FirstChild as XmlElement);
                this.currentNode.appendChildNode(eEnumMocaNode);
            }
        }
Exemplo n.º 17
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);
        }
Exemplo n.º 18
0
        public void addChangesAttributesDuringExport(MocaNode pkgNode, SQLTaggedValue changesTreeTag)
        {
            MocaNode ePackageMocaNode = MocaTreeUtil.mocaNodeFromXmlString(changesTreeTag.Notes);

            string[] expectedAttributes = { ChangesTreeConstants.ATTRIBUTE_KEY_NAME, ChangesTreeConstants.ATTRIBUTE_KEY_PREVIOUS_NAME, ChangesTreeConstants.ATTRIBUTE_KEY_PACKAGE_NAME, ChangesTreeConstants.ATTRIBUTE_KEY_PROJECT_NAME };
            if (ePackageMocaNode.hasAllAttributes(new List <string>(expectedAttributes)))
            {
                pkgNode.appendChildAttribute("Changes::Name", ePackageMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_NAME).Value);
                pkgNode.appendChildAttribute("Changes::PreviousName", ePackageMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PREVIOUS_NAME).Value);
                pkgNode.appendChildAttribute("Changes::PackageName", ePackageMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PACKAGE_NAME).Value);
                pkgNode.appendChildAttribute("Changes::ProjectName", ePackageMocaNode.getAttribute(ChangesTreeConstants.ATTRIBUTE_KEY_PROJECT_NAME).Value);
                //pkgNode.appendChildAttribute("Changes::IsTLP", ePackageMocaNode.getAttribute("isTLP").Value);
            }
        }
Exemplo n.º 19
0
        private MocaNode processEPackage(SQLPackage eaPackage)
        {
            backgroundWorker.ReportProgress(0, PersistencyUtil.computePackageUri(eaPackage, repository));
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaPackage, Main.MoflonExportTreeTaggedValueName);


            if (mocaTreeTag != null)
            {
                EPackage ePackage = new EPackage(eaPackage, repository);


                MocaNode ePackageMocaNode = MocaTreeUtil.mocaNodeFromXmlString(mocaTreeTag.Notes);

                ePackage.addAttributesDuringExport(ePackageMocaNode);

                this.currentNode.appendChildNode(ePackageMocaNode);
                int counter = 0;
                foreach (SQLElement childClass in eaPackage.Elements)
                {
                    if (!Export.showStatusBar)
                    {
                        Console.Out.WriteLine("SCALE:Export Classifier '" + childClass.Name + "' %" + counter + "/" + eaPackage.Elements.Count + "#");
                    }
                    counter++;
                    this.currentNode = ePackageMocaNode.getChildNodeWithName(EPackageHelper.ClassesChildNodeName);
                    if (childClass.Stereotype.ToLower() == ECOREModelingMain.EClassStereotype.ToLower())
                    {
                        processEClass(childClass);
                    }
                    else if (childClass.Stereotype.ToLower() == ECOREModelingMain.EDatatypeStereotype.ToLower())
                    {
                        processEDatatype(childClass);
                    }
                    else if (childClass.Stereotype.ToLower() == ECOREModelingMain.EEnumStereotype.ToLower())
                    {
                        processEEnum(childClass);
                    }
                }

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

                return(ePackageMocaNode);
            }
            return(null);
        }
Exemplo n.º 20
0
        public override List <String> doRule(SQLMethod eaMethod, SQLRepository repository)
        {
            SQLElement    parent  = repository.GetElementByID(eaMethod.ParentID);
            List <String> results = new List <string>();

            if (parent.Stereotype == ECOREModelingMain.EClassStereotype)
            {
                foreach (SQLElement sdmContainer in parent.Elements)
                {
                    if (sdmContainer.Stereotype == SDMModelingMain.SdmContainerStereotype)
                    {
                        SQLTaggedValue associatedTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(sdmContainer, SDMModelingMain.SDMContainerAssociatedMethodTaggedValueName);
                        if (associatedTag != null)
                        {
                            String associatedTagValue = associatedTag.Value;
                            if (associatedTagValue == eaMethod.MethodGUID)
                            {
                                foreach (SQLElement aNode in sdmContainer.Elements)
                                {
                                    if (aNode.Stereotype == SDMModelingMain.StartNodeStereotype)
                                    {
                                        String parameters = "";
                                        foreach (SQLParameter param in eaMethod.Parameters)
                                        {
                                            parameters += param.Name + ": " + param.Type + ", ";
                                        }
                                        if (parameters.Length > 0)
                                        {
                                            parameters = parameters.Substring(0, parameters.Length - 2);
                                        }
                                        String nameShouldBe = parent.Name + "::" + eaMethod.Name + " (" + parameters + "): " + eaMethod.ReturnType.ToString();
                                        bool   equal        = nameShouldBe.StartsWith(aNode.Name);
                                        if (!equal)
                                        {
                                            results.Add("SDM Container, StartNode, and Diagram name should correspond to Method name");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }


            return(results);
        }
Exemplo n.º 21
0
        public static SQLTaggedValue findTaggedValue(SQLElement element, String name)
        {
            SQLTaggedValue aTag = null;

            if (element != null)
            {
                element.TaggedValues.Refresh();
                foreach (SQLTaggedValue aTaggi in element.TaggedValues)
                {
                    if (aTaggi.Name == name)
                    {
                        aTag = aTaggi;
                    }
                }
            }
            return(aTag);
        }
Exemplo n.º 22
0
        private string computeValidatedAttribute()
        {
            SQLTaggedValue validatedTag = EAUtil.findTaggedValue(package.EaPackage, MoflonValidatedTaggedValueName);

            if (validatedTag != null)
            {
                if (validatedTag.Value.Equals(DEFAULT_VALUE_PLACEHOLDER))
                {
                    return("false");
                }
                return(validatedTag.Value);
            }
            else
            {
                return("false");
            }
        }
Exemplo n.º 23
0
        public override List <string> doRule(SQLWrapperClasses.SQLElement sqlElement, SQLWrapperClasses.SQLRepository sqlRepository)
        {
            var result = new List <String>();

            if (sqlElement.Stereotype == SDMModelingMain.ObjectVariableStereotype || sqlElement.Stereotype == TGGModelingMain.TggObjectVariableStereotype)
            {
                SQLTaggedValue tag = EAUtil.findTaggedValue(sqlElement, ObjectVariable.BindingSemanticsTaggedValueName);
                if (tag != null)
                {
                    if (tag.Value.ToLower() == "optional")
                    {
                        result.Add("Optional ist not supported anymore");
                    }
                }
            }
            return(result);
        }
Exemplo n.º 24
0
        private string computeExportAttribute()
        {
            SQLTaggedValue exportTag = EAUtil.findTaggedValue(package.EaPackage, MoflonExportTaggedValueName);

            if (exportTag != null)
            {
                if (exportTag.Value.Equals(DEFAULT_VALUE_PLACEHOLDER))
                {
                    return("true");
                }
                return(exportTag.Value);
            }
            else
            {
                return("true");
            }
        }
Exemplo n.º 25
0
        public MocaNode processTggObjectVariable(SQLElement objectVariable)
        {
            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(objectVariable, Main.MoflonExportTreeTaggedValueName);

            ObjectVariable ov = null;

            if (objectVariable.Stereotype == TGGModelingMain.TggObjectVariableStereotype)
            {
                ov = new TGGObjectVariable(objectVariable, repository);
            }
            else if (objectVariable.Stereotype == TGGModelingMain.TggCorrespondenceStereotype)
            {
                ov = new TGGCorrespondence(objectVariable, repository);
            }
            SQLElement classifier = repository.GetElementByID(objectVariable.ClassifierID);

            ExportMain.computeAndAddToDependencies(repository, classifier);

            MocaNode ovMocaNode = new MocaNode();

            ovMocaNode.deserializeFromXmlTree(MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes).DocumentElement.FirstChild as XmlElement);

            ov.addAttributesDuringExport(ovMocaNode);

            this.currentNode.appendChildNode(ovMocaNode);

            foreach (SQLConnector linkVariable in objectVariable.Connectors)
            {
                try
                {
                    SQLElement source = repository.GetElementByID(linkVariable.ClientID);
                    SQLElement target = repository.GetElementByID(linkVariable.SupplierID);

                    if ((linkVariable.Stereotype == TGGModelingMain.TggLinkVariableStereotype || linkVariable.Type == Main.EAAssociationType) && linkVariable.ClientID == objectVariable.ElementID)
                    {
                        this.currentNode = ovMocaNode.getChildNodeWithName(ObjectVariable.OutgoingLinksNodeName);
                        processTggLinkVariable(linkVariable);
                    }
                }
                catch
                {
                }
            }
            return(ovMocaNode);
        }
Exemplo n.º 26
0
        public void processTGGCorrespondenceType(SQLElement eaClass)
        {
            SQLTaggedValue        mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(eaClass, Main.MoflonExportTreeTaggedValueName);
            TGGCorrespondenceType tggCorrType = new TGGCorrespondenceType(eaClass, repository);

            tggCorrType.loadTreeFromTaggedValue();
            MocaNode eClassMocaNode = new MocaNode();

            eClassMocaNode.deserializeFromXmlTree(MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes).DocumentElement.FirstChild as XmlElement);

            tggCorrType.addMocaAttributesDuringExport(eClassMocaNode);

            this.currentNode.appendChildNode(eClassMocaNode);

            foreach (SQLConnector ereference in eaClass.Connectors)
            {
                if (ereference.Type == Main.EAAssociationType)
                {
                    MocaNode referencesNode = eClassMocaNode.getChildNodeWithName(EClass.ReferencesChildNodeName);

                    if (ereference.ClientID != eaClass.ElementID && ereference.ClientEnd.IsNavigable)
                    {
                        this.currentNode = referencesNode;
                        processTggEReference(ereference, ereference.ClientEnd.End);
                    }
                    else if (ereference.SupplierID != eaClass.ElementID && ereference.SupplierEnd.IsNavigable)
                    {
                        this.currentNode = referencesNode;
                        processTggEReference(ereference, ereference.SupplierEnd.End);
                    }

                    if (ereference.SupplierID == eaClass.ElementID && ereference.ClientID == eaClass.ElementID && ereference.SupplierEnd.IsNavigable)
                    {
                        this.currentNode = referencesNode;
                        processTggEReference(ereference, ereference.SupplierEnd.End);
                    }
                    if (ereference.SupplierID == eaClass.ElementID && ereference.ClientID == eaClass.ElementID && ereference.ClientEnd.IsNavigable)
                    {
                        this.currentNode = referencesNode;
                        processTggEReference(ereference, ereference.ClientEnd.End);
                    }
                }
            }
        }
Exemplo n.º 27
0
        public override List <FirstObject> getFirstObjects(SQLElement elementToSearch, SQLRepository repository)
        {
            EditorAttributeValueExpression eAvExpression         = new EditorAttributeValueExpression();
            List <FirstObject>             targetObjectVariables = eAvExpression.getFirstObjects(elementToSearch, repository);

            //add parameters of associatedMethod
            SQLMethod associatedMethod = null;

            if (elementToSearch.Stereotype == SDMModelingMain.SdmContainerStereotype)
            {
                SQLTaggedValue assoMethodTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(elementToSearch, SDMModelingMain.SDMContainerAssociatedMethodTaggedValueName);
                associatedMethod = repository.GetMethodByGuid(assoMethodTag.Value);
            }
            else if (elementToSearch.Stereotype == TGGModelingMain.TggRuleStereotype)
            {
                associatedMethod = elementToSearch.Methods.GetAt(0);
            }
            if (associatedMethod != null)
            {
                foreach (SQLParameter parameter in associatedMethod.Parameters)
                {
                    if (parameter.ClassifierID != "0")
                    {
                        Boolean alreadyIn = false;
                        foreach (Object searchTarget in targetObjectVariables)
                        {
                            if (searchTarget is SQLElement)
                            {
                                if ((searchTarget as SQLElement).Name == parameter.Name)
                                {
                                    alreadyIn = true;
                                }
                            }
                        }
                        if (!alreadyIn)
                        {
                            targetObjectVariables.Add(new FirstObject(parameter));
                        }
                    }
                }
            }

            return(targetObjectVariables);
        }
Exemplo n.º 28
0
        public MocaNode processTggOutermostPackage(SQLPackage tggOutermostPackage)
        {
            backgroundWorker.ReportProgress(0, PersistencyUtil.computePackageUri(tggOutermostPackage, repository));


            this.currentNode = new MocaNode();

            SQLTaggedValue mocaTreeTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(tggOutermostPackage, Main.MoflonExportTreeTaggedValueName);

            TGG tgg = new TGG(repository, tggOutermostPackage);

            tgg.loadTreeFromTaggedValue();
            XmlDocument xmlDoc = MocaTreeUtil.stringToXmlDocument(mocaTreeTag.Notes);

            MocaNode ePackageMocaNode = new MocaNode();

            ePackageMocaNode.deserializeFromXmlTree(xmlDoc.DocumentElement.FirstChild as XmlElement);

            tgg.addAttributesDuringExport(ePackageMocaNode);

            this.currentNode.appendChildNode(ePackageMocaNode);
            foreach (SQLPackage childPackage in tggOutermostPackage.Packages)
            {
                this.currentNode = ePackageMocaNode.getChildNodeWithName(EPackageHelper.PackagesChildNodeName);
                processTggPackage(childPackage);
            }
            foreach (SQLElement childClass in tggOutermostPackage.Elements)
            {
                processTGGPackageFeatures(ePackageMocaNode, childClass);
            }
            SQLTaggedValue moflonExportTag = EAEcoreAddin.Util.EAUtil.findTaggedValue(tggOutermostPackage, MetamodelHelper.MoflonExportTaggedValueName);

            if (moflonExportTag != null)
            {
                ePackageMocaNode.appendChildAttribute(MetamodelHelper.MoflonExportTaggedValueName, moflonExportTag.Value);
            }
            else
            {
                ePackageMocaNode.appendChildAttribute(MetamodelHelper.MoflonExportTaggedValueName, "false");
            }

            return(ePackageMocaNode);
        }
Exemplo n.º 29
0
        protected String computeName()
        {
            SQLTaggedValue customProjectName = EAEcoreAddin.Util.EAUtil.findTaggedValue(package.EaPackage, MoflonCustomNameTaggedValueName);

            if (customProjectName != null)
            {
                String value = customProjectName.Value;
                //use default
                if (value.Equals(DEFAULT_VALUE_PLACEHOLDER))
                {
                    return(package.EaPackage.getRealPackage().Name);
                }
                //otherwise custom value
                return(value);
            }
            else
            {
                return(package.EaPackage.getRealPackage().Name);
            }
        }
Exemplo n.º 30
0
        private string computePluginID()
        {
            SQLTaggedValue customPluginID = EAEcoreAddin.Util.EAUtil.findTaggedValue(package.EaPackage, MoflonCustomPluginIDTaggedValueName);

            if (customPluginID != null)
            {
                String value = customPluginID.Value;

                //use default
                if (value.Equals(DEFAULT_VALUE_PLACEHOLDER))
                {
                    return(computeName());
                }
                //otherwise custom value
                return(value);
            }
            else
            {
                return(computeName());
            }
        }