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); }
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(); }