package org.eclipse.incquery.tooling.ui.patternregistry.handlers;
import org.eclipse.core.resources.IFile;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.incquery.patternlanguage.patternLanguage.Pattern;
import org.eclipse.incquery.patternlanguage.patternLanguage.PatternModel;
import org.eclipse.incquery.runtime.patternregistry.PatternRegistry;
import org.eclipse.xtext.ui.resource.IResourceSetProvider;
public class RegisterHandlersUtil {
public static void registerSingleFile(IFile file, IResourceSetProvider resourceSetProvider) {
if (file != null && resourceSetProvider != null && file.getName().endsWith(".eiq")) {
ResourceSet resourceSet = resourceSetProvider.get(file.getProject());
Resource resource = resourceSet.getResource(
URI.createPlatformPluginURI(file.getFullPath().toOSString(), false), true);
EObject eObject = resource.getContents().get(0);
if (eObject instanceof PatternModel) {
PatternModel patternModel = (PatternModel) eObject;
for (Pattern pattern : patternModel.getPatterns()) {
PatternRegistry.INSTANCE.addPatternToRegistry(pattern);
}
}
}
}
}