Search in sources :

Example 1 with XtWorkspace

use of org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtWorkspace in project n4js by eclipse.

the class XtFileDataParser method parse.

/**
 * Parses the contents of the given file
 */
public static XtFileData parse(File xtFile) throws IOException {
    String xtFileContent = Files.readString(xtFile.toPath());
    String setupStr = getXtSetupString(xtFileContent);
    XtSetupParseResult setupParseResult = XtSetupParser.parse(xtFile, setupStr, xtFileContent);
    XtWorkspace workspace = setupParseResult.workspace;
    if (workspace == null) {
        File xtFileStripped = XtFileData.stripXtExtension(xtFile);
        workspace = createDefaultWorkspace(xtFileStripped.getName(), xtFileContent, setupParseResult);
    }
    List<XtMethodData> startupMethodData = getDefaultStartupMethodData();
    List<XtMethodData> teardownMethodData = getDefaultTeardownMethodData();
    TreeSet<XtMethodData> testMethodData1 = new TreeSet<>();
    TreeSet<XtMethodData> testMethodData2 = new TreeSet<>();
    fillTestMethodData(xtFile.toString(), xtFileContent, testMethodData1, testMethodData2);
    return new XtFileData(xtFile, xtFileContent, setupParseResult.runner, workspace, setupParseResult.enabledIssues, setupParseResult.disabledIssues, startupMethodData, testMethodData1, testMethodData2, teardownMethodData);
}
Also used : TreeSet(java.util.TreeSet) XtSetupParseResult(org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtSetupParseResult) XtWorkspace(org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtWorkspace) File(java.io.File)

Example 2 with XtWorkspace

use of org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtWorkspace in project n4js by eclipse.

the class XtFileDataParser method createDefaultWorkspace.

static XtWorkspace createDefaultWorkspace(String fileName, String xtFileContent, XtSetupParseResult setupParseResult) {
    String extension = fileName.substring(fileName.lastIndexOf(".") + 1);
    String moduleName = fileName.substring(0, fileName.length() - 1 - extension.length());
    Module xtFileModule = new Module(moduleName, extension);
    xtFileModule.setContents(xtFileContent);
    Folder srcFolder = new Folder(DEFAULT_SOURCE_FOLDER);
    srcFolder.addModule(xtFileModule);
    Project project = new Project(DEFAULT_PROJECT_NAME, VENDOR, VENDOR_NAME);
    project.addSourceFolder(srcFolder);
    project.setGenerateDts(setupParseResult.generateDts);
    for (String otherSrcFileName : setupParseResult.files.keySet()) {
        String otherExt = URIUtils.fileExtension(URIUtils.toFileUri(otherSrcFileName));
        String otherContent = setupParseResult.files.get(otherSrcFileName);
        String otherModuleName = otherSrcFileName.substring(0, otherSrcFileName.length() - otherExt.length() - 1);
        Module otherModule = new Module(otherModuleName, otherExt);
        otherModule.setContents(otherContent);
        srcFolder.addModule(otherModule);
    }
    XtWorkspace workspace = new XtWorkspace();
    workspace.addProject(project);
    workspace.moduleNameOfXtFile = fileName;
    return workspace;
}
Also used : Project(org.eclipse.n4js.tests.codegen.Project) XtWorkspace(org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtWorkspace) Module(org.eclipse.n4js.tests.codegen.Module) Folder(org.eclipse.n4js.tests.codegen.Folder)

Aggregations

XtWorkspace (org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtWorkspace)2 File (java.io.File)1 TreeSet (java.util.TreeSet)1 XtSetupParseResult (org.eclipse.n4js.ide.tests.helper.server.xt.XtSetupParser.XtSetupParseResult)1 Folder (org.eclipse.n4js.tests.codegen.Folder)1 Module (org.eclipse.n4js.tests.codegen.Module)1 Project (org.eclipse.n4js.tests.codegen.Project)1