Beispiel #1
0
  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);
    }
  }
Beispiel #2
0
 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;
  }