package com.sap.furcas.ocl.parser; import generated.OclLexer; import generated.OclParser; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.resource.ResourceSet; import com.sap.furcas.ide.parserfactory.AbstractParserFactory; import com.sap.furcas.ocl.editor.Activator; public class OclParserFactory extends AbstractParserFactory<OclParser, OclLexer> { private static final String LANGUAGE_ID = "Ocl"; @Override public Class<OclLexer> getLexerClass() { return OclLexer.class; } @Override public Class<OclParser> getParserClass() { return OclParser.class; } @Override public String getLanguageId() { return LANGUAGE_ID; } @Override public EPackage getMetamodelPackage(ResourceSet connection) { return EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/ocl/1.1.0/Ecore"); } @Override public String[] getHiddenChannelTokenNames() { return new String[] { "WS", "NL", "COMMENT" }; } @Override public URI getSyntaxUri() { return URI.createPlatformPluginURI(Activator.PLUGIN_ID + "/mappings/Ocl.tcs", true); } @Override public Set<URI> getParserLookupScope(ResourceSet connection) { //TODO add ocl std lib return new HashSet<URI>(Arrays.asList(URI.createURI(EcorePackage.eINSTANCE.getNsURI()))); } }