/******************************************************************************* * Copyright (c) 2012-2015 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.api.vfs.server.impl.memory; import org.eclipse.che.api.core.ServerException; import org.eclipse.che.api.vfs.server.VirtualFileSystemUserContext; import org.eclipse.che.api.vfs.server.search.SearcherProvider; import org.eclipse.che.api.vfs.server.VirtualFileSystemImpl; import org.eclipse.che.api.vfs.server.VirtualFileSystemRegistry; import org.eclipse.che.api.vfs.server.util.LinksHelper; import org.eclipse.che.api.vfs.shared.PropertyFilter; import org.eclipse.che.api.vfs.shared.dto.Folder; import org.eclipse.che.api.vfs.shared.dto.VirtualFileSystemInfo; import org.eclipse.che.api.vfs.shared.dto.VirtualFileSystemInfo.ACLCapability; import org.eclipse.che.api.vfs.shared.dto.VirtualFileSystemInfo.BasicPermissions; import org.eclipse.che.api.vfs.shared.dto.VirtualFileSystemInfo.QueryCapability; import org.eclipse.che.dto.server.DtoFactory; import java.net.URI; import java.util.ArrayList; import java.util.List; /** @author andrew00x */ public class MemoryFileSystem extends VirtualFileSystemImpl { private final String vfsId; private final URI baseUri; public MemoryFileSystem(URI baseUri, String vfsId, VirtualFileSystemUserContext userContext, MemoryMountPoint memoryMountPoint, SearcherProvider searcherProvider, VirtualFileSystemRegistry vfsRegistry) { super(vfsId, baseUri, userContext, memoryMountPoint, searcherProvider, vfsRegistry); this.baseUri = baseUri; this.vfsId = vfsId; } @Override public VirtualFileSystemInfo getInfo() throws ServerException { final BasicPermissions[] basicPermissions = BasicPermissions.values(); final List<String> permissions = new ArrayList<>(basicPermissions.length); for (BasicPermissions bp : basicPermissions) { permissions.add(bp.value()); } final Folder root = (Folder)fromVirtualFile(getMountPoint().getRoot(), true, PropertyFilter.ALL_FILTER); return DtoFactory.getInstance().createDto(VirtualFileSystemInfo.class) .withId(vfsId) .withVersioningSupported(false) .withLockSupported(true) .withAnonymousPrincipal(VirtualFileSystemInfo.ANONYMOUS_PRINCIPAL) .withAnyPrincipal(VirtualFileSystemInfo.ANY_PRINCIPAL) .withPermissions(permissions) .withAclCapability(ACLCapability.MANAGE) .withQueryCapability(QueryCapability.FULLTEXT) .withUrlTemplates(LinksHelper.createUrlTemplates(baseUri, vfsId)) .withRoot(root); } }