Search in sources :

Example 41 with Path

use of org.uberfire.backend.vfs.Path in project kie-wb-common by kiegroup.

the class ResourceUtilsTest method getPath.

private Path getPath(final String fileName) {
    final Path path = mock(Path.class);
    doReturn(fileName).when(path).getFileName();
    return path;
}
Also used : Path(org.uberfire.backend.vfs.Path)

Example 42 with Path

use of org.uberfire.backend.vfs.Path in project kie-wb-common by kiegroup.

the class DataModelerEventTest method createEvent.

@Test
public void createEvent() {
    DataObject currentDataObject = new DataObjectImpl();
    ObjectProperty currentField = new ObjectPropertyImpl();
    Method currentMethod = new MethodImpl();
    Module currentModule = new Module();
    String source = "testSource";
    String contextId = "testContextId";
    Path path = new PathFactory.PathImpl();
    DataModelerEvent event = new DataModelerEvent().withCurrentDataObject(currentDataObject).withCurrentField(currentField).withCurrentMethod(currentMethod).withCurrentProject(currentModule).withSource(source).withContextId(contextId).withPath(path);
    assertEquals(currentDataObject, event.getCurrentDataObject());
    assertEquals(currentField, event.getCurrentField());
    assertEquals(currentMethod, event.getCurrentMethod());
    assertEquals(currentModule, event.getCurrentModule());
    assertEquals(source, event.getSource());
    assertEquals(contextId, event.getContextId());
    assertEquals(path, event.getPath());
}
Also used : DataObjectImpl(org.kie.workbench.common.services.datamodeller.core.impl.DataObjectImpl) ObjectProperty(org.kie.workbench.common.services.datamodeller.core.ObjectProperty) Path(org.uberfire.backend.vfs.Path) ObjectPropertyImpl(org.kie.workbench.common.services.datamodeller.core.impl.ObjectPropertyImpl) DataObject(org.kie.workbench.common.services.datamodeller.core.DataObject) MethodImpl(org.kie.workbench.common.services.datamodeller.core.impl.MethodImpl) Method(org.kie.workbench.common.services.datamodeller.core.Method) Module(org.guvnor.common.services.project.model.Module) Test(org.junit.Test)

Example 43 with Path

use of org.uberfire.backend.vfs.Path in project kie-wb-common by kiegroup.

the class DataModelerEventObserver method onDataObjectCreated.

public void onDataObjectCreated(@Observes DataObjectCreatedEvent event) {
    Path descriptorPath;
    PersistenceDescriptorModel persistenceDescriptor;
    if (isPersistable(event.getCurrentDataObject())) {
        descriptorPath = descriptorService.calculatePersistenceDescriptorPath(event.getCurrentModule());
        persistenceDescriptor = safeLoad(descriptorPath);
        if (persistenceDescriptor != null && !containsClass(persistenceDescriptor.getPersistenceUnit(), event.getCurrentDataObject().getClassName())) {
            persistenceDescriptor.getPersistenceUnit().getClasses().add(new PersistableDataObject(event.getCurrentDataObject().getClassName()));
            descriptorService.save(descriptorPath, persistenceDescriptor, null, "Entity added to persistence descriptor");
        }
    }
}
Also used : Path(org.uberfire.backend.vfs.Path) PersistableDataObject(org.kie.workbench.common.screens.datamodeller.model.persistence.PersistableDataObject) PersistenceDescriptorModel(org.kie.workbench.common.screens.datamodeller.model.persistence.PersistenceDescriptorModel)

Example 44 with Path

use of org.uberfire.backend.vfs.Path in project kie-wb-common by kiegroup.

the class DataModelerServiceImpl method copy.

public Path copy(final Path path, final String newName, final String newPackageName, final Path targetDirectory, final String comment, final boolean refactor) {
    Path targetPath = null;
    if (refactor) {
        try {
            GenerationResult refactoringResult = refactorClass(path, newPackageName, newName);
            if (!refactoringResult.hasErrors()) {
                targetPath = Paths.convert(Paths.convert(targetDirectory).resolve(newName + ".java"));
                copyHelper.addRefactoredPath(targetPath, refactoringResult.getSource(), comment);
                KieModule module = moduleService.resolveModule(targetPath);
                if (module != null) {
                    dataObjectCreatedEvent.fire(new DataObjectCreatedEvent(module, refactoringResult.getDataObject()));
                }
            }
        } catch (Exception e) {
            // if the refactoring fails for whatever reason the file still needs to be copied.
            logger.error("An error was produced during class refactoring at file copying for file: " + path + ". The file copying will continue without class refactoring", e);
        }
    }
    try {
        return copyService.copy(path, newName, targetDirectory, comment);
    } finally {
        if (targetPath != null) {
            copyHelper.removeRefactoredPath(targetPath);
        }
    }
}
Also used : Path(org.uberfire.backend.vfs.Path) DataObjectCreatedEvent(org.kie.workbench.common.screens.datamodeller.events.DataObjectCreatedEvent) GenerationResult(org.kie.workbench.common.screens.datamodeller.model.GenerationResult) KieModule(org.kie.workbench.common.services.shared.project.KieModule) ModelDriverException(org.kie.workbench.common.services.datamodeller.driver.ModelDriverException) ServiceException(org.kie.workbench.common.screens.datamodeller.service.ServiceException) FileAlreadyExistsException(org.uberfire.java.nio.file.FileAlreadyExistsException)

Example 45 with Path

use of org.uberfire.backend.vfs.Path in project kie-wb-common by kiegroup.

the class DataModelerServiceImpl method rename.

public Path rename(final Path path, final String newName, String comment, final boolean refactor, final boolean saveCurrentChanges, final String source, final DataObject dataObject, final Metadata metadata) {
    GenerationResult saveResult = null;
    if (saveCurrentChanges) {
        saveResult = resolveSaveSource(source, path, dataObject);
        ioService.write(Paths.convert(path), saveResult.getSource(), metadataService.setUpAttributes(path, metadata), serviceHelper.makeCommentedOption(comment));
    }
    Path targetPath = null;
    String newContent = null;
    if (refactor) {
        String sourceToRefactor;
        if (saveCurrentChanges) {
            sourceToRefactor = (saveResult != null && !saveResult.hasErrors()) ? saveResult.getSource() : null;
        } else {
            sourceToRefactor = source;
        }
        if (sourceToRefactor != null) {
            try {
                GenerationResult refactoringResult = refactorClass(sourceToRefactor, path, null, newName);
                if (!refactoringResult.hasErrors()) {
                    String originalFileName = path.getFileName();
                    final String extension = originalFileName.substring(originalFileName.lastIndexOf('.'));
                    if (saveCurrentChanges) {
                        Package targetPackage = serviceHelper.ensurePackageStructure(moduleService.resolveModule(path), refactoringResult.getDataObject().getPackageName());
                        targetPath = Paths.convert(Paths.convert(targetPackage.getPackageMainSrcPath()).resolve(newName + extension));
                    } else {
                        targetPath = Paths.convert(Paths.convert(path).resolveSibling(newName + extension));
                    }
                    renameHelper.addRefactoredPath(targetPath, refactoringResult.getSource(), comment);
                    // TODO send data object renamed event.
                    newContent = refactoringResult.getSource();
                }
            } catch (Exception e) {
                // if the refactoring fails for whatever reason the file still needs to be renamed.
                logger.error("An error was produced during class refactoring at file renaming for file: " + path + ". The file renaming will continue without class refactoring", e);
            }
        }
    }
    try {
        // TODO we need to investigate why we have a DeleteEvent, and a CreateEvent for the case of .java files.
        boolean workaround = true;
        if (!workaround) {
            return renameService.rename(path, newName, comment);
        } else {
            // I will implement the rename here as a workaround
            // remove this workaround when we can find the error.
            Path updatedPath = renameWorkaround(path, targetPath, newContent, comment);
            dataObjectRenamedEvent.fire((DataObjectRenamedEvent) new DataObjectRenamedEvent().withPath(updatedPath));
            return updatedPath;
        }
    } finally {
        if (targetPath != null) {
            renameHelper.removeRefactoredPath(targetPath);
        }
    }
}
Also used : Path(org.uberfire.backend.vfs.Path) GenerationResult(org.kie.workbench.common.screens.datamodeller.model.GenerationResult) Package(org.guvnor.common.services.project.model.Package) DataObjectRenamedEvent(org.kie.workbench.common.screens.datamodeller.events.DataObjectRenamedEvent) ModelDriverException(org.kie.workbench.common.services.datamodeller.driver.ModelDriverException) ServiceException(org.kie.workbench.common.screens.datamodeller.service.ServiceException) FileAlreadyExistsException(org.uberfire.java.nio.file.FileAlreadyExistsException)

Aggregations

Path (org.uberfire.backend.vfs.Path)607 Test (org.junit.Test)408 URL (java.net.URL)93 Package (org.guvnor.common.services.project.model.Package)87 KieModuleService (org.kie.workbench.common.services.shared.project.KieModuleService)71 CreationalContext (javax.enterprise.context.spi.CreationalContext)66 Bean (javax.enterprise.inject.spi.Bean)66 ArrayList (java.util.ArrayList)63 Metadata (org.guvnor.common.services.shared.metadata.model.Metadata)51 Module (org.guvnor.common.services.project.model.Module)48 WorkspaceProject (org.guvnor.common.services.project.model.WorkspaceProject)41 KieModule (org.kie.workbench.common.services.shared.project.KieModule)38 List (java.util.List)37 NotificationEvent (org.uberfire.workbench.events.NotificationEvent)30 Branch (org.guvnor.structure.repositories.Branch)29 HashMap (java.util.HashMap)28 FileAlreadyExistsException (org.uberfire.java.nio.file.FileAlreadyExistsException)28 ObservablePath (org.uberfire.backend.vfs.ObservablePath)27 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)25 Before (org.junit.Before)25