package com.minres.rdl.generator import com.google.inject.Inject import com.google.inject.Provider import com.minres.rdl.RDLStandaloneSetup import java.lang.reflect.MalformedParametersException import java.util.ArrayList import org.eclipse.emf.common.util.URI import org.eclipse.emf.ecore.resource.ResourceSet import org.eclipse.emf.mwe.utils.ProjectMapping import org.eclipse.emf.mwe.utils.StandaloneSetup import org.eclipse.xtext.generator.GeneratorContext import org.eclipse.xtext.generator.GeneratorDelegate import org.eclipse.xtext.generator.JavaIoFileSystemAccess import org.eclipse.xtext.resource.XtextResource import org.eclipse.xtext.resource.XtextResourceSet import org.eclipse.xtext.util.CancelIndicator import org.eclipse.xtext.validation.CheckMode import org.eclipse.xtext.validation.IResourceValidator import java.text.ParseException class Main { static class Option { String flag String value def Option(String flag, String value) { this.flag = flag this.value = value } } def static main(String[] args) { if (args.empty) { System::err.println('Aborting: no path to EMF resource provided!') return } try { val injector = new RDLStandaloneSetup().createInjectorAndDoEMFRegistration injector.getInstance(Main).run(args) } catch(MalformedParametersException e){ print("Command line error "+e.message) } catch(IllegalArgumentException e){ print("generation error "+e.message) e.printStackTrace } catch(ParseException e){ print("parse problem "+e.message+" ("+ e.errorOffset+")") } } @Inject Provider resourceSetProvider @Inject IResourceValidator validator @Inject GeneratorDelegate generator @Inject JavaIoFileSystemAccess fileAccess var optsList = new ArrayList