/*
* generated by Xtext
*/
package emfviews.dsl.ui.contentassist;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.*;
import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
import java.util.Iterator;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.Diagnostician;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.ColorDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.xtext.*;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier;
/**
* Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}.
* Methods are dynamically dispatched on the first parameter, i.e., you can override them
* with a more concrete subtype.
*/
@SuppressWarnings("all")
public class AbstractVpdlProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider {
public void completeModel_ViewName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeModel_Metamodel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeModel_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeMetamodel_MetamodelURL(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeMetamodel_MetamodelName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeExpression_Select(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeExpression_From(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeExpression_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeSelect_Select(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void completeSelect_Metamodel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeSelect_Class(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
//Load metamodel
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage("http://www.obeonetwork.org/dsl/togaf/contentfwk/9.0.0");
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
acceptor.accept(createCompletionProposal(element.getName(), element.getName(), null, context));
}
}
public void completeSelect_Attribute(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
String className=context.getLastCompleteNode().getPreviousSibling().getText();
String packageName = context.getLastCompleteNode().getNextSibling().getText().substring(1, context.getLastCompleteNode().getNextSibling().getText().length());
System.out.println("packageName: "+packageName);
//look for the URL of this package name
String packageURL = "";
Iterator<INode> iter=context.getRootNode().getAsTreeIterable().iterator();
iter.next();
boolean URLok = false;
while (iter.hasNext() && !URLok) {
INode node=iter.next();
if(node.getText().contains(packageName)){
System.out.println("packageURL: "+node.getText().split("as "+packageName)[0]);
packageURL = node.getText().split("as "+packageName)[0];
URLok = true;
}
}
packageURL = packageURL.trim();
packageURL = packageURL.substring(1, packageURL.length()-1);//Remove ''
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage(packageURL);
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
if(element.getName().compareTo(className)==0){
EList attributes = element.getEAllAttributes();
for (int j = 0; j < classes.size(); j++) {
EAttribute attribute = (EAttribute) attributes.get(j);
acceptor.accept(createCompletionProposal(attribute.getName(), attribute.getName(), null, context));
}
}
}
}
public void completeFrom_Metamodel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeFrom_Class(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
//Load metamodel
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage("http://www.obeonetwork.org/dsl/togaf/contentfwk/9.0.0");
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
acceptor.accept(createCompletionProposal(element.getName(), element.getName(), null, context));
}
}
public void completeAttribute_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
String className=context.getLastCompleteNode().getPreviousSibling().getText();
String packageName = context.getLastCompleteNode().getNextSibling().getText().substring(1, context.getLastCompleteNode().getNextSibling().getText().length());
System.out.println("packageName: "+packageName);
//look for the URL of this package name
String packageURL = "";
Iterator<INode> iter=context.getRootNode().getAsTreeIterable().iterator();
iter.next();
boolean URLok = false;
while (iter.hasNext() && !URLok) {
INode node=iter.next();
if(node.getText().contains(packageName)){
System.out.println("packageURL: "+node.getText().split("as "+packageName)[0]);
packageURL = node.getText().split("as "+packageName)[0];
URLok = true;
}
}
packageURL = packageURL.trim();
packageURL = packageURL.substring(1, packageURL.length()-1);//Remove ''
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage(packageURL);
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
if(element.getName().compareTo(className)==0){
EList attributes = element.getEAllAttributes();
for (int j = 0; j < classes.size(); j++) {
EAttribute attribute = (EAttribute) attributes.get(j);
acceptor.accept(createCompletionProposal(attribute.getName(), attribute.getName(), null, context));
}
}
}
}
public void completeClass_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
//Load metamodel
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage("http://www.obeonetwork.org/dsl/togaf/contentfwk/9.0.0");
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
acceptor.accept(createCompletionProposal(element.getName(), element.getName(), null, context));
}
}
public void completeMetamodelName_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeCondition_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeComparison_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeComparison_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeLeft_Metamodel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeLeft_Class(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
//Load metamodel
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage("http://www.obeonetwork.org/dsl/togaf/contentfwk/9.0.0");
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
acceptor.accept(createCompletionProposal(element.getName(), element.getName(), null, context));
}
}
public void completeLeft_AttributeWhereLeft(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
String className=context.getLastCompleteNode().getPreviousSibling().getText();
String packageName = context.getLastCompleteNode().getNextSibling().getText().substring(1, context.getLastCompleteNode().getNextSibling().getText().length());
System.out.println("packageName: "+packageName);
//look for the URL of this package name
String packageURL = "";
Iterator<INode> iter=context.getRootNode().getAsTreeIterable().iterator();
iter.next();
boolean URLok = false;
while (iter.hasNext() && !URLok) {
INode node=iter.next();
if(node.getText().contains(packageName)){
System.out.println("packageURL: "+node.getText().split("as "+packageName)[0]);
packageURL = node.getText().split("as "+packageName)[0];
URLok = true;
}
}
packageURL = packageURL.trim();
packageURL = packageURL.substring(1, packageURL.length()-1);//Remove ''
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage(packageURL);
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
if(element.getName().compareTo(className)==0){
EList attributes = element.getEAllAttributes();
for (int j = 0; j < classes.size(); j++) {
EAttribute attribute = (EAttribute) attributes.get(j);
acceptor.accept(createCompletionProposal(attribute.getName(), attribute.getName(), null, context));
}
}
}
}
public void completeRight_Metamodel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeRight_Class(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
//Load metamodel
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage("http://www.obeonetwork.org/dsl/togaf/contentfwk/9.0.0");
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
acceptor.accept(createCompletionProposal(element.getName(), element.getName(), null, context));
}
}
public void completeRight_AttributeWhereRight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
String className=context.getLastCompleteNode().getPreviousSibling().getText();
String packageName = context.getLastCompleteNode().getNextSibling().getText().substring(1, context.getLastCompleteNode().getNextSibling().getText().length());
System.out.println("packageName: "+packageName);
//look for the URL of this package name
String packageURL = "";
Iterator<INode> iter=context.getRootNode().getAsTreeIterable().iterator();
iter.next();
boolean URLok = false;
while (iter.hasNext() && !URLok) {
INode node=iter.next();
if(node.getText().contains(packageName)){
System.out.println("packageURL: "+node.getText().split("as "+packageName)[0]);
packageURL = node.getText().split("as "+packageName)[0];
URLok = true;
}
}
packageURL = packageURL.trim();
packageURL = packageURL.substring(1, packageURL.length()-1);//Remove ''
ResourceSet virtualResourceSet = new ResourceSetImpl();
EPackage originalPackage = virtualResourceSet.getPackageRegistry().getEPackage(packageURL);
EList classes = originalPackage.getEClassifiers();
for (int i = 0; i < classes.size(); i++) {
EClass element = (EClass) classes.get(i);
if(element.getName().compareTo(className)==0){
EList attributes = element.getEAllAttributes();
for (int j = 0; j < classes.size(); j++) {
EAttribute attribute = (EAttribute) attributes.get(j);
acceptor.accept(createCompletionProposal(attribute.getName(), attribute.getName(), null, context));
}
}
}
}
public void completeRight_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void complete_Model(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Metamodel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Expression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Select(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_From(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Attribute(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Class(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_MetamodelName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Condition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Comparison(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Left(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Right(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_EString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
}