Search in sources :

Example 1 with N4JSModel

use of org.eclipse.n4js.internal.N4JSModel in project n4js by eclipse.

the class N4JSRuntimeCoreTest method setUp.

@Override
public void setUp() {
    workspace = new FileBasedWorkspace(resourceSetProvider, classpathPackageManager);
    N4JSModel model = new N4JSModel(workspace);
    injector.injectMembers(model);
    testMe = new N4JSRuntimeCore(workspace, model);
    super.setUp();
}
Also used : FileBasedWorkspace(org.eclipse.n4js.internal.FileBasedWorkspace) N4JSRuntimeCore(org.eclipse.n4js.internal.N4JSRuntimeCore) N4JSModel(org.eclipse.n4js.internal.N4JSModel)

Example 2 with N4JSModel

use of org.eclipse.n4js.internal.N4JSModel in project n4js by eclipse.

the class RunnerN4JSCore method getAllShippedProjects.

/**
 * Returns all shipped projects as iterable. Returned projects are stubs for real {@link N4JSProject}. They
 * implement the same API only to allow common utilities to calculate runner information for both real workspace
 * based projects and stubs returned here. All information is calculated from the file system on the fly, and is not
 * stored. Subsequent calls will result all information being computed once more.
 *
 * @return iterable of shipped code wrapped in {@link IN4JSProject} interface
 */
public static Iterable<IN4JSProject> getAllShippedProjects() {
    final RunnerTargetPlatformInstallLocationProvider locationProvider = new RunnerTargetPlatformInstallLocationProvider();
    final RunnerClasspathPackageManager manager = new RunnerClasspathPackageManager();
    final RunnerExternalLibraryWorkspace workspace = new RunnerExternalLibraryWorkspace(manager);
    final N4JSModel model = new N4JSModel(workspace, locationProvider);
    ShippedCodeAccess.getAllShippedPaths().forEach(path -> discoveProjects(path, workspace));
    // we need to collect projects provided by the workspace iterator into iterable instance to allow caller to make
    // multiple iterations over it. Note that just wrapping iterator into iterable (e.g. via
    // org.eclipse.xtext.xbase.lib.IteratorExtensions) does not work, i.e. it is just simple wrapping that allows
    // one iteration just like plain iterator.
    List<IN4JSProject> projects = new ArrayList<>();
    workspace.getAllProjectsLocations().forEachRemaining(location -> projects.add(model.getN4JSProject(location)));
    return projects;
}
Also used : IN4JSProject(org.eclipse.n4js.projectModel.IN4JSProject) ArrayList(java.util.ArrayList) N4JSModel(org.eclipse.n4js.internal.N4JSModel)

Example 3 with N4JSModel

use of org.eclipse.n4js.internal.N4JSModel in project n4js by eclipse.

the class JSDoc2AdocFullTest method fullTest.

@Override
@SuppressWarnings("unused")
protected void fullTest(String projectId) throws IOException, InterruptedException, InterruptedException {
    String systemSeparator = System.getProperty("line.separator", "\n");
    try {
        for (String lsep : new String[] { "\n", "\r\n", "\r" }) {
            System.setProperty("line.separator", lsep);
            String expectationFileName = projectId + "/expected.adoc";
            workspace = new FileBasedWorkspace(resourceSetProvider, classpathPackageManager);
            URI uriProject = URI.createFileURI(new File(TESTRESOURCES + projectId).getAbsolutePath());
            workspace.registerProject(uriProject);
            N4JSModel model = new N4JSModel(workspace);
            injector.injectMembers(model);
            runtimeCore = new N4JSRuntimeCore(workspace, model);
            IN4JSProject project = runtimeCore.findProject(uriProject).get();
            assertNotNull("Project not found", project);
            Collection<SpecFile> specChangeSet = jSDoc2SpecProcessor.convert(new File(TESTRESOURCES), Collections.singleton(project), (p) -> resourceSetProvider.get(), SubMonitorMsg.nullProgressMonitor());
            String adocRootName = TESTRESOURCES + projectId + "/expectedADoc";
            Collection<String> expectedFileNames = getExpectedFileNames(adocRootName, specChangeSet);
            assertFalse(expectedFileNames.isEmpty());
            File adocRoot = new File(adocRootName);
            String completeActual = "";
            String completeExpected = "";
            for (SpecFile specFile : specChangeSet) {
                String expectedFile = getExpectedFile(expectedFileNames, specFile);
                if (expectedFile == null)
                    continue;
                String fullExpectationFileName = adocRoot.toPath().resolve(expectedFile).toString();
                String expectedADoc = Files.readFileIntoString(fullExpectationFileName);
                String actualADoc = specFile.getNewContent();
                if (UPDATE_EXPECTION && !actualADoc.equals(expectedADoc)) {
                    expectedADoc = actualADoc;
                    Files.writeStringIntoFile(fullExpectationFileName, expectedADoc);
                    System.out.println("Updated expectation " + fullExpectationFileName);
                }
                completeActual += "\n//////// " + expectedFile + " ////////\n";
                completeActual += actualADoc;
                completeExpected += "\n//////// " + expectedFile + " ////////\n";
                completeExpected += expectedADoc;
            }
            assertEqualsIgnoreWS(completeExpected, completeActual);
        }
    } finally {
        System.setProperty("line.separator", systemSeparator);
    }
}
Also used : FileBasedWorkspace(org.eclipse.n4js.internal.FileBasedWorkspace) IN4JSProject(org.eclipse.n4js.projectModel.IN4JSProject) N4JSRuntimeCore(org.eclipse.n4js.internal.N4JSRuntimeCore) URI(org.eclipse.emf.common.util.URI) SpecFile(org.eclipse.n4js.jsdoc2spec.SpecFile) File(java.io.File) N4JSModel(org.eclipse.n4js.internal.N4JSModel) SpecFile(org.eclipse.n4js.jsdoc2spec.SpecFile)

Aggregations

N4JSModel (org.eclipse.n4js.internal.N4JSModel)3 FileBasedWorkspace (org.eclipse.n4js.internal.FileBasedWorkspace)2 N4JSRuntimeCore (org.eclipse.n4js.internal.N4JSRuntimeCore)2 IN4JSProject (org.eclipse.n4js.projectModel.IN4JSProject)2 File (java.io.File)1 ArrayList (java.util.ArrayList)1 URI (org.eclipse.emf.common.util.URI)1 SpecFile (org.eclipse.n4js.jsdoc2spec.SpecFile)1