public void invoke(IWorkflowContext ctx) { ResourceSet resSet = getResourceSet(); Resource resource = resSet.getResource(URI.createURI(genModel), true); final GenModel genModel = (GenModel) resource.getContents().get(0); genModel.setCanGenerate(true); genModel.reconcile(); createGenModelSetup().registerGenModel(genModel); Generator generator = new Generator() { @Override public JControlModel getJControlModel() { return new JControlModel() { @Override public boolean canMerge() { return false; } }; } }; log.info("generating EMF code for " + this.genModel); generator .getAdapterFactoryDescriptorRegistry() .addDescriptor( GenModelPackage.eNS_URI, new GeneratorAdapterDescriptor(getTypeMapper(), getLineDelimiter())); generator.setInput(genModel); Diagnostic diagnostic = generator.generate( genModel, GenBaseGeneratorAdapter.MODEL_PROJECT_TYPE, new BasicMonitor()); if (diagnostic.getSeverity() != Diagnostic.OK) log.info(diagnostic); if (generateEdit) { Diagnostic editDiag = generator.generate( genModel, GenBaseGeneratorAdapter.EDIT_PROJECT_TYPE, new BasicMonitor()); if (editDiag.getSeverity() != Diagnostic.OK) log.info(editDiag); } if (generateEditor) { Diagnostic editorDiag = generator.generate( genModel, GenBaseGeneratorAdapter.EDITOR_PROJECT_TYPE, new BasicMonitor()); if (editorDiag.getSeverity() != Diagnostic.OK) log.info(editorDiag); } }
public void executeTransformation(IExecutionInformation executionInformation) throws Exception { ResourceSet resourceSet = new ResourceSetImpl(); Resource resource = resourceSet.createResource(locator.getEMFURI(inputModels.get(0).getModel())); resource.load(null); EcoreUtil.resolveAll(resourceSet); GenModel genModel = (GenModel) resource.getContents().get(0); genModel.setCanGenerate(true); // generate the code Generator generator = new Generator(); generator.setInput(genModel); generator.generate( genModel, GenBaseGeneratorAdapter.MODEL_PROJECT_TYPE, new BasicMonitor.Printing(System.err)); for (File file : outputFiles) { executionEnvironment.fileReady(file, transformation); } }
public VirtualFile generate(VirtualFile basedir) throws DatabaseException { GenModel genModel = GenModelFactory.eINSTANCE.createGenModel(); genModel.setRuntimeVersion(GenRuntimeVersion.EMF25); genModel.setComplianceLevel(GenJDKLevel.JDK60_LITERAL); genModel.setFeatureDelegation(GenDelegationKind.REFLECTIVE_LITERAL); genModel.setRootExtendsClass("org.bimserver.emf.IdEObjectImpl"); genModel.setRootExtendsInterface("org.bimserver.emf.IdEObject"); genModel.setSuppressContainment(true); genModel.setCodeFormatting(true); genModel.setCopyrightText(StringUtils.readFromFile(new File("copyright.txt"))); genModel.setCanGenerate(true); genModel.setModelDirectory("test"); genModel.setModelName("model name"); genModel.setForceOverwrite(true); genModel.setSuppressNotification(false); genModel.setContainmentProxies(false); genModel.setBinaryCompatibleReflectiveMethods(false); genModel.setPublicConstructors(false); genModel.setMinimalReflectiveMethods(true); // More code, but faster genModel.setUpdateClasspath(false); genModel.initialize(schema.getEPackages()); GeneratorAdapterFactory.Descriptor.Registry.INSTANCE.addDescriptor( GenModelPackage.eNS_URI, GenModelGeneratorAdapterFactory.DESCRIPTOR); Generator generator = new Generator(); generator.setInput(genModel); generator.generate( genModel, GenBaseGeneratorAdapter.MODEL_PROJECT_TYPE, new BasicMonitor.Printing(System.out)); // List<GenPackage> genPackages = createGenPackages(genModel, basedir); // generatePackages(genModel, genPackages, basedir); return basedir; }