package com.sap.mi.tcs.editor;
import java.util.Collection;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.emf.ecore.resource.ResourceSet;
import com.sap.furcas.ide.dslproject.conf.IProjectMetaRefConf;
import com.sap.furcas.ide.dslproject.conf.ProjectMetaRefConfFactory;
import com.sap.furcas.metamodel.textblocks.TextBlock;
import com.sap.ide.cts.editor.AbstractGrammarBasedEditor;
import com.sap.ide.cts.editor.prettyprint.imported.ModelAdapter;
import com.sap.ide.cts.parser.errorhandling.SemanticParserException;
import com.sap.mi.tcs.parser.TcsParserFactory;
public class TcsEditor extends AbstractGrammarBasedEditor {
// private IModelInjector defaultInjector = new
// DummyModelInjector(MyActionsParser.tokenNames);;
public TcsEditor() {
super(new TcsParserFactory(), new TcsMapper());
}
@Override
public TextBlock parse(TextBlock rootBlock) throws SemanticParserException {
ResourceSet connection = getWorkingConnection();
initializeNewParser(connection);
// Call super implementation to do the actual stuff
TextBlock newRoot = super.parse(rootBlock);
return newRoot;
}
@Override
protected Collection<URI> getAdditionalLookupURIS() {
try {
IProjectMetaRefConf conf = ProjectMetaRefConfFactory
.getConfig(ModelAdapter.getInstance().getProject(
getWorkingConnection()));
Collection<URI> priScope = conf.getMetaLookUpForProject()
.getReferenceURIs();
return priScope;
} catch (IllegalStateException e) {
// no dsl nature
// do nothing
} catch (CoreException e) {
// no dsl nature
// do nothing
}
return null;
}
}