/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.plugin.java.server.che;
import org.eclipse.che.api.core.notification.EventService;
import org.eclipse.che.commons.env.EnvironmentContext;
import org.eclipse.che.commons.subject.SubjectImpl;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* Dummy implementation of ProjectManager used for tests
*
* @author Evgen Vidolob
* @author Dmitry Shnurenko
*/
// TODO: rework after new Project API
public class DummyProjectManager /*implements ProjectManager*/ {
final String vfsUser = "dev";
// private final LocalFileSystemProvider localFileSystemProvider;
public DummyProjectManager(String workspacePath, EventService eventService) {
EnvironmentContext context = new EnvironmentContext();
context.setSubject(new SubjectImpl(vfsUser, "", "", false));
EnvironmentContext.setCurrent(context);
// localFileSystemProvider = new LocalFileSystemProvider("", new LocalFSMountStrategy() {
// @Override
// public File getMountPath(String workspaceId) throws ServerException {
// return new File(workspacePath);
// }
//
// @Override
// public File getMountPath() throws ServerException {
// return new File(workspacePath);
// }
// }, eventService, null, SystemPathsFilter.ANY, null);
}
//
// @Override
// public List<Project> getProjects(String workspace) throws ServerException, NotFoundException, ForbiddenException {
// final FolderEntry myRoot = getProjectsRoot(workspace);
// final List<Project> projects = new ArrayList<>();
// for (FolderEntry folder : myRoot.getChildFolders()) {
// final Project project = getProject(workspace, folder.getPath());
// if (project != null) {
// projects.add(project);
// }
// }
// return projects;
// }
//
// @Override
// public Project getProject(String workspace, String projectPath) throws ForbiddenException, ServerException, NotFoundException {
// final FolderEntry myRoot = getProjectsRoot(workspace);
// final VirtualFileEntry child = myRoot.getChild(projectPath.startsWith("/") ? projectPath.substring(1) : projectPath);
// if (child != null && child.isFolder() && isProjectFolder((FolderEntry)child)) {
// return new Project((FolderEntry)child, this);
// }
// return null;
// }
//
// @Override
// public ProjectConfigDto getProjectFromWorkspace(@NotNull String wsId, @NotNull String projectPath) throws ServerException {
// throw new UnsupportedOperationException("The method unsupported in this mode.");
// }
//
// @Override
// public List<ProjectConfigDto> getAllProjectsFromWorkspace(@NotNull String workspaceId) throws ServerException {
// throw new UnsupportedOperationException("The method unsupported in this mode.");
// }
//
// @Override
// public Project createProject(String workspace, String name, ProjectConfig projectConfig, Map<String, String> options)
// throws ConflictException, ForbiddenException, ServerException, ProjectTypeConstraintException, NotFoundException {
// final FolderEntry myRoot = getProjectsRoot(workspace);
// final FolderEntry projectFolder = myRoot.createFolder(name);
// final Project project = new Project(projectFolder, this);
// return project;
// }
//
// @Override
// public Project updateProject(String workspace, String path, ProjectConfig newConfig)
// throws ForbiddenException, ServerException, NotFoundException, ConflictException, IOException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public FolderEntry getProjectsRoot(String workspace) throws ServerException, NotFoundException {
// return new FolderEntry(workspace, localFileSystemProvider.getMountPoint(true).getRoot());
// }
//
// @Override
// public ProjectConfig getProjectConfig(Project project) throws ServerException, ProjectTypeConstraintException, ValueStorageException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public void updateProjectConfig(Project project, ProjectConfig config)
// throws ServerException, ValueStorageException, ProjectTypeConstraintException, InvalidValueException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public ProjectMisc getProjectMisc(Project project) throws ServerException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public void saveProjectMisc(Project project, ProjectMisc misc) throws ServerException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public List<ProjectConfig> getProjectModules(Project project) throws ServerException,
// ForbiddenException,
// ConflictException,
// IOException,
// NotFoundException {
// return Collections.emptyList();
// }
//
// @Override
// public VirtualFileSystemRegistry getVirtualFileSystemRegistry() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public ProjectTypeRegistry getProjectTypeRegistry() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public ProjectHandlerRegistry getHandlers() {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Map<String, AttributeValue> estimateProject(String workspace, String path, String projectTypeId)
// throws ValueStorageException, ServerException, ForbiddenException, NotFoundException, ProjectTypeConstraintException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public ProjectConfigDto addModule(String workspace,
// String modulePath,
// ProjectConfigDto moduleConfig,
// Map<String, String> options)
// throws ConflictException, ForbiddenException, ServerException, NotFoundException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public List<SourceEstimation> resolveSources(String workspace, String path, boolean transientOnly)
// throws ServerException, ForbiddenException, NotFoundException, ValueStorageException, ProjectTypeConstraintException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public Project convertFolderToProject(String workspace, String path, ProjectConfig projectConfig)
// throws ConflictException, ForbiddenException, ServerException, NotFoundException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public VirtualFileEntry rename(String workspace, String path, String newName, String newMediaType)
// throws ForbiddenException, ServerException, ConflictException, NotFoundException {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public void delete(String workspace, String path) throws ServerException, ForbiddenException, NotFoundException, ConflictException {
// deleteEntry(workspace, path);
// }
//
// private void deleteEntry(String workspace, String deleteEntryPath) throws ServerException, NotFoundException, ForbiddenException {
// final FolderEntry root = getProjectsRoot(workspace);
// final VirtualFileEntry entry = root.getChild(deleteEntryPath);
//
// entry.remove();
// }
//
// @Override
// public void deleteModule(String workspaceId, String pathToParent, String pathToModule) throws ServerException,
// NotFoundException,
// ForbiddenException,
// ConflictException {
// deleteEntry(workspaceId, pathToModule);
// }
//
// @Override
// public boolean isProjectFolder(FolderEntry folder) throws ServerException {
// return new Path(folder.getPath()).segmentCount() == 1;
// }
//
// @Override
// public boolean isModuleFolder(FolderEntry folder) throws ServerException {
// return false;
// }
}