/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.olat.core.commons.services.webdav.servlets; import java.io.InputStream; import java.util.Collection; import org.olat.core.util.vfs.QuotaExceededException; import org.olat.core.util.vfs.VFSItem; public interface WebResourceRoot { public boolean canWrite(String path); public boolean canRename(String name); public boolean canDelete(String path); /** * Obtain the object that represents the resource at the given path. Note * that the resource at that path may not exist. If the path does not * exist, the WebResource returned will be associated with the main * WebResourceSet. * * @param path The path for the resource of interest relative to the root * of the web application. It must start with '/'. * * @return The object that represents the resource at the given path */ WebResource getResource(String path); /** * Obtain the list of the names of all of the files and directories located * in the specified directory. * * @param path The path for the resource of interest relative to the root * of the web application. It must start with '/'. * * @return The list of resources. If path does not refer to a directory * then a zero length array will be returned. */ Collection<VFSItem> list(String path); /** * Create a new directory at the given path. * * @param path The path for the new resource to create relative to the root * of the web application. It must start with '/'. * * @return <code>true</code> if the directory was created, otherwise * <code>false</code> */ boolean mkdir(String path); /** * Create a new resource at the requested path using the provided * InputStream. * * @param path The path to be used for the new Resource. It is relative * to the root of the web application and must start with * '/'. * @param is The InputStream that will provide the content for the * new Resource. * @param overwrite If <code>true</code> and the resource already exists it * will be overwritten. If <code>false</code> and the * resource already exists the write will fail. * * @return <code>true</code> if and only if the new Resource is written */ boolean write(String path, InputStream is, boolean overwrite, WebResource movedFrom) throws QuotaExceededException; public boolean delete(WebResource resourceo); }