
de.opitzconsulting.orcas.diff.XtextFileLoader Maven / Gradle / Ivy
package de.opitzconsulting.orcas.diff;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import com.google.inject.Injector;
public abstract class XtextFileLoader
{
@SuppressWarnings( "unchecked" )
public T loadModelXml( String pFilename, String pNamespaceUri, EPackage pEPackage )
{
EPackage.Registry.INSTANCE.put( pNamespaceUri, pEPackage );
Resource.Factory.Registry lRegistry = Resource.Factory.Registry.INSTANCE;
Map lMap = lRegistry.getExtensionToFactoryMap();
lMap.put( "xml", new XMLResourceFactoryImpl() );
ResourceSet lResourceSet = new ResourceSetImpl();
Resource lResource = lResourceSet.createResource( URI.createFileURI( pFilename ) );
((XMLResource) lResource).getDefaultSaveOptions();
try
{
lResource.load( Collections.EMPTY_MAP );
}
catch( IOException e )
{
throw new RuntimeException( e );
}
return (T) lResource.getContents().get( 0 );
}
public T loadModelDsl( List pModelFiles, Parameters pParameters, Injector pInjector )
{
XtextResourceSet lResourceSet = pInjector.getInstance( XtextResourceSet.class );
lResourceSet.addLoadOption( XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE );
Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy