示例#1
0
 public override void doRuleQuickFix(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository, int i, String errorMessage)
 {
     if (i == 0)
     {
         ObjectVariable ov       = ObjectVariable.createCorrectOvType(eaElement, repository);
         OvDialog       ovDialog = new OvDialog(repository, ov);
         ovDialog.ShowDialog();
     }
 }
 public override void doRuleQuickFix(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository, int i, String errorMessage)
 {
     if (i == 0)
     {
         EA.Element realElement = eaElement.getRealElement();
         SQLElement classifier  = repository.GetElementByID(eaElement.ClassifierID);
         realElement.Name = classifier.Name.Substring(0, 1).ToLower() + classifier.Name.Substring(1, classifier.Name.Length - 1);
         realElement.Update();
     }
     else if (i == 1)
     {
         ObjectVariable ov       = ObjectVariable.createCorrectOvType(eaElement, repository);
         OvDialog       ovDialog = new OvDialog(repository, ov);
         ovDialog.ShowDialog();
     }
 }
        public override List <String> doRule(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaElement.Stereotype == TGGModelingMain.TggObjectVariableStereotype || eaElement.Stereotype == TGGModelingMain.TggCorrespondenceStereotype)
            {
                ObjectVariable tggOv = ObjectVariable.createCorrectOvType(eaElement, repository);
                tggOv.loadTreeFromTaggedValue();
                if (tggOv.BindingOperator == Modeling.SDMModeling.SDMExportWrapper.patterns.BindingOperator.CREATE && tggOv.Constraints.Count > 0)
                {
                    results.Add("Constraints and BindingOperator create is not allowed");
                }
                else if (tggOv.BindingOperator == Modeling.SDMModeling.SDMExportWrapper.patterns.BindingOperator.CHECK_ONLY && tggOv.AttributeAssignments.Count > 0)
                {
                    results.Add("AttributeAssigmnments and BindingOperator check_only is not allowed");
                }

                else if (tggOv.BindingState == Modeling.SDMModeling.SDMExportWrapper.patterns.BindingState.BOUND)
                {
                    Boolean valid = false;
                    foreach (SQLConnector con in eaElement.Connectors)
                    {
                        if (con.SupplierID == eaElement.ElementID && con.Type == Main.EADependencyType)
                        {
                            valid = true;
                        }
                    }
                    if (!valid)
                    {
                        SQLTaggedValue refinedtag = EAUtil.findTaggedValue(eaElement, TGGObjectVariable.RefinedTaggedValueName);
                        if (refinedtag == null || refinedtag.Value == "false")
                        {
                            results.Add("Bound TGG ObjectVariables must be the target of a TGG BindingExpression");
                        }
                    }
                }
            }
            return(results);
        }
示例#4
0
        private void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            BindingSemantics bindingSemantics = BindingSemantics.MANDATORY;
            BindingOperator  bindingOperator  = BindingOperator.CHECK_ONLY;

            if (radioButtonMandatory.Checked)
            {
                bindingSemantics = BindingSemantics.MANDATORY;
            }
            else if (radioButtonNegative.Checked)
            {
                bindingSemantics = BindingSemantics.NEGATIVE;
            }
            if (radioButtonDestroy.Checked)
            {
                bindingOperator = BindingOperator.DESTROY;
            }
            else if (radioButtonCreate.Checked)
            {
                bindingOperator = BindingOperator.CREATE;
            }
            else if (radioButtonCheckOnly.Checked)
            {
                bindingOperator = BindingOperator.CHECK_ONLY;
            }


            foreach (EA.Element selectedOv in this.selectedObjectVariables)
            {
                ObjectVariable currentOV = ObjectVariable.createCorrectOvType(repository.GetElementByID(selectedOv.ElementID), repository);
                currentOV.loadTreeFromTaggedValue();

                currentOV.BindingSemantics = bindingSemantics;
                currentOV.BindingOperator  = bindingOperator;

                if (bindingOperator == BindingOperator.CHECK_ONLY)
                {
                    TGGModelingUtil.assignmentsToConstraints(currentOV, repository);
                }
                else if (bindingOperator == BindingOperator.CREATE)
                {
                    TGGModelingUtil.constraintsToAssignments(currentOV, repository);
                }

                currentOV.saveTreeToEATaggedValue(true);
            }

            if (checkBoxLinksToo.Checked)
            {
                foreach (EA.Connector selectedLink in this.selectedLinkVariables)
                {
                    LinkVariable lv = null;
                    if (selectedLink.Stereotype == SDMModelingMain.LinkVariableStereotype)
                    {
                        lv = new LinkVariable(repository.GetConnectorByID(selectedLink.ConnectorID), repository);
                    }
                    else if (selectedLink.Stereotype == TGGModelingMain.TggLinkVariableStereotype)
                    {
                        lv = new TGGLinkVariable(repository.GetConnectorByID(selectedLink.ConnectorID), repository);
                    }

                    lv.loadTreeFromTaggedValue();
                    lv.BindingOperator  = bindingOperator;
                    lv.BindingSemantics = bindingSemantics;

                    lv.saveTreeToEATaggedValue(true);
                }
            }
            repository.ReloadDiagram(repository.GetCurrentDiagram().DiagramID);
            Close();
        }