/** * NOT generated by Xtext */ package net.certware.intent.ui.quickfix; import com.google.common.base.Objects; import java.util.Iterator; import net.certware.intent.intentSpecification.Decomposition; import net.certware.intent.intentSpecification.Intent; import net.certware.intent.intentSpecification.ListItem; import net.certware.intent.intentSpecification.ModelItem; import net.certware.intent.intentSpecification.Refinement; import net.certware.intent.validation.IntentSpecificationValidator; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.ui.editor.model.edit.IModificationContext; import org.eclipse.xtext.ui.editor.model.edit.ISemanticModification; import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider; import org.eclipse.xtext.ui.editor.quickfix.Fix; import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor; import org.eclipse.xtext.validation.Issue; /** * Custom quickfixes. * @see http://www.eclipse.org/Xtext/documentation.html#quickfixes * @author mrb@certware.net */ @SuppressWarnings("all") public class IntentSpecificationQuickfixProvider extends DefaultQuickfixProvider { /** * Fix duplicated intent entries by removing one. */ @Fix(IntentSpecificationValidator.UNIQUE_INTENTS_REFINEMENT) public void removeIntent(final Issue issue, final IssueResolutionAcceptor acceptor) { String[] _data = issue.getData(); String _get = _data[0]; String _plus = (("Remove intent named" + " ") + _get); final ISemanticModification _function = (EObject element, IModificationContext context) -> { Refinement container = ((Refinement) element); String[] _data_1 = issue.getData(); String _get_1 = _data_1[0]; String itemName = ((String) _get_1); EList<Intent> list = container.getIntents(); Iterator<Intent> iter = list.iterator(); Intent lastItem = ((Intent) null); while (iter.hasNext()) { { Intent item = iter.next(); String _name = item.getName(); boolean _equals = _name.equals(itemName); if (_equals) { lastItem = item; } } } boolean _notEquals = (!Objects.equal(lastItem, null)); if (_notEquals) { list.remove(lastItem); } }; acceptor.accept(issue, "Remove duplicated entry", _plus, "obj16/intent.gif", _function); } /** * Fix duplicated intent entries by removing one. */ @Fix(IntentSpecificationValidator.UNIQUE_DECOMPOSITION_INTENT) public void removeDecomposition(final Issue issue, final IssueResolutionAcceptor acceptor) { String[] _data = issue.getData(); String _get = _data[0]; String _plus = (("Remove decomposition named" + " ") + _get); final ISemanticModification _function = (EObject element, IModificationContext context) -> { Intent container = ((Intent) element); String[] _data_1 = issue.getData(); String _get_1 = _data_1[0]; String itemName = ((String) _get_1); EList<Decomposition> list = container.getDecompositions(); Iterator<Decomposition> iter = list.iterator(); Decomposition lastItem = ((Decomposition) null); while (iter.hasNext()) { { Decomposition _next = iter.next(); Decomposition item = ((Decomposition) _next); String _name = item.getName(); boolean _equals = _name.equals(itemName); if (_equals) { lastItem = item; } } } boolean _notEquals = (!Objects.equal(lastItem, null)); if (_notEquals) { list.remove(lastItem); } }; acceptor.accept(issue, "Remove duplicated decomposition", _plus, "obj16/decomposition.gif", _function); } /** * Fix duplicated list entries by removing one. */ @Fix(IntentSpecificationValidator.UNIQUE_LIST_ITEM_LIST_ITEM) public void removeListItem(final Issue issue, final IssueResolutionAcceptor acceptor) { String[] _data = issue.getData(); String _get = _data[0]; String _plus = (("Remove list item named" + " ") + _get); final ISemanticModification _function = (EObject element, IModificationContext context) -> { ListItem outerList = ((ListItem) element); String[] _data_1 = issue.getData(); String _get_1 = _data_1[0]; String itemName = ((String) _get_1); EList<ListItem> list = outerList.getItemReferences(); Iterator<ListItem> iter = list.iterator(); ListItem lastItem = ((ListItem) null); while (iter.hasNext()) { { ListItem item = iter.next(); String _name = item.getName(); boolean _equals = _name.equals(itemName); if (_equals) { lastItem = item; } } } boolean _notEquals = (!Objects.equal(lastItem, null)); if (_notEquals) { list.remove(lastItem); } }; acceptor.accept(issue, "Remove duplicated list item", _plus, "obj16/listitem.gif", _function); } @Fix(IntentSpecificationValidator.UNIQUE_MODEL_ITEM_LIST_ITEM) public void removeModelItem(final Issue issue, final IssueResolutionAcceptor acceptor) { String[] _data = issue.getData(); String _get = _data[0]; String _plus = (("Remove model item named" + " ") + _get); final ISemanticModification _function = (EObject element, IModificationContext context) -> { ListItem outerList = ((ListItem) element); String[] _data_1 = issue.getData(); String _get_1 = _data_1[0]; String itemName = ((String) _get_1); EList<ModelItem> list = outerList.getModelReferences(); Iterator<ModelItem> iter = list.iterator(); ModelItem lastItem = ((ModelItem) null); while (iter.hasNext()) { { ModelItem item = iter.next(); String _name = item.getName(); boolean _equals = _name.equals(itemName); if (_equals) { lastItem = item; } } } boolean _notEquals = (!Objects.equal(lastItem, null)); if (_notEquals) { list.remove(lastItem); } }; acceptor.accept(issue, "Remove duplicated entry", _plus, "obj16/modelitem.gif", _function); } }