package org.eclipse.xtext.generator;
public interface IGenerator {
/**
* @param input the input for which to generate resources
* @param fsa file system access to be used to generate files
*/
void doGenerate(Resource input, IFileSystemAccess fsa);
}
package org.eclipse.xtext.resource.generic;
public abstract class AbstractGenericResourceRuntimeModule
extends AbstractGenericModule {
// Only showing abstract methods to override
protected abstract String getLanguageName();
protected abstract String getFileExtensions();
}
public abstract class AbstractGenericResourceRuntimeModule
extends AbstractGenericModule {
public Class extends IGenerator> bindIGenerator();
// Return the implementatino if IGenerator
public Class extends ResourceSet> bindResourceSet();
// typically returns ResourceSetImpl.class;
}
@Inject
com.google.inject.Provider;
// Used to get a resource set
@Inject
org.eclipse.xtext.validation.IResourceValidator;
// Used to validate the resource after loading
@Inject
org.eclipse.xtext.generator.IGenerator;
// The generator to use
@Inject
org.eclipse.xtext.generator.JavaIoFileSystemAccess;
// Used to specify the output path of the text being generated.
String filepath; // Filename of the model instance
EMFPackage.eINSTANCE.eClass();
final ResourceSet rs = new ResourceSetImpl();
final URI uri = URI.createFileURI(filepath);
final Resource resource = rs.getResource(uri, true);
if (resource != null) {
EObject eobject = (EObject) resource.getContents().get(0);
// Cast eobject to the type needed.
}
public interface IFileSystemAccess {
public final static String DEFAULT_OUTPUT = "DEFAULT_OUTPUT";
public void generateFile(String fileName, CharSequence contents);
public void generateFile(String fileName, String outputConfigurationName,
CharSequence contents);
public void deleteFile(String fileName);
}