首页>代码>jsp结合fckeditor使用的小demo分享>/testfckeditor/src/net/fckeditor/connector/Connector.java
/*
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 * Copyright (C) 2004-2010 Frederico Caldeira Knabben
 * 
 * == BEGIN LICENSE ==
 * 
 * Licensed under the terms of any of the following licenses at your
 * choice:
 * 
 *  - GNU General Public License Version 2 or later (the "GPL")
 *    http://www.gnu.org/licenses/gpl.html
 * 
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *    http://www.gnu.org/licenses/lgpl.html
 * 
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 * 
 * == END LICENSE ==
 */
package net.fckeditor.connector;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;

import net.fckeditor.connector.exception.FolderAlreadyExistsException;
import net.fckeditor.connector.exception.InvalidCurrentFolderException;
import net.fckeditor.connector.exception.InvalidNewFolderNameException;
import net.fckeditor.connector.exception.ReadException;
import net.fckeditor.connector.exception.WriteException;
import net.fckeditor.connector.impl.AbstractLocalFileSystemConnector;
import net.fckeditor.handlers.RequestCycleHandler;
import net.fckeditor.handlers.ResourceType;
import net.fckeditor.requestcycle.ThreadLocalData;

/**
 * Backend interface of a File Browser connector. A connector serves and manages
 * files and folders accessed through the File Browser on an arbitrary backend
 * system.<br />
 * The connector will receive a request if, and only if, the request was valid
 * in terms of valid and reasonable parameters up to an abstract point which is
 * independent from a specific connector implementation.
 * <p>
 * Helpful classes and methods:
 * <ol>
 * <li>If you need to access the request instance itself and/or the context
 * parameters sent from the File Browser, take a look at the
 * {@link ThreadLocalData} class.</li>
 * <li>Use
 * {@link RequestCycleHandler#getUserFilesAbsolutePath(javax.servlet.http.HttpServletRequest)
 * RequestCycleHandler.getUserFilesAbsolutePath},
 * {@link AbstractLocalFileSystemConnector#getRealUserFilesAbsolutePath(java.lang.String)
 * AbstractLocalFileSystemConnector.getRealUserFilesAbsolutePath} (if use it) to
 * resolve the real path or simply do it yourself.</li>
 * </ol>
 * </p>
 * 
 * @version $Id: Connector.java 4785 2009-12-21 20:10:28Z mosipov $
 */
public interface Connector {

	/** Key 'name' for a file's name */
	public final static String KEY_NAME = "name";
	
	/** Key 'size' for a file's length */
	public final static String KEY_SIZE = "size";

	/**
	 * Initializes this connector. Called at {@link Dispatcher dispatcher}
	 * initialization.
	 * 
	 * @param servletContext
	 *            reference to the {@link ServletContext} in which the caller is
	 *            running
	 * @throws Exception
	 *             if the connector initialization fails due to some reason
	 */
	public void init(final ServletContext servletContext) throws Exception;

	/**
	 * Returns a list of file attributes from the backend. Use the pre-defined
	 * keys ({@value #KEY_NAME}, {@value #KEY_SIZE}) to put file attributes into
	 * the file map. The file length can be any instance of {@link Number}, its
	 * long value will be taken as the final value.
	 * 
	 * @param type
	 *            the current resource type
	 * @param currentFolder
	 *            the current folder
	 * @return a list of file attributes
	 * @throws InvalidCurrentFolderException
	 *             if the current folder name is invalid or does not exist
	 *             within the underlying backend
	 * @throws ReadException
	 *             if the file attributes could not be read due to some reason
	 */
	public List<Map<String, Object>> getFiles(final ResourceType type,
			final String currentFolder) throws InvalidCurrentFolderException,
			ReadException;

	/**
	 * Returns a list of folders from the backend.
	 * 
	 * @param type
	 *            the current resource type
	 * @param currentFolder
	 *            the current folder
	 * @return a list of folder names
	 * @throws InvalidCurrentFolderException
	 *             if the current folder name is invalid or does not exist
	 *             within the underlying backend
	 * @throws ReadException
	 *             if the folder names could not be read due to some reason
	 */
	public List<String> getFolders(final ResourceType type,
			final String currentFolder) throws InvalidCurrentFolderException,
			ReadException;

	/**
	 * Creates a new folder on the backend.
	 * 
	 * @param type
	 *            the current resource type
	 * @param currentFolder
	 *            the current folder
	 * @param newFolder
	 *            name of the new folder
	 * @throws InvalidCurrentFolderException
	 *             if the current folder name is invalid or does not exist
	 *             within the underlying backend
	 * @throws InvalidNewFolderNameException
	 *             if the new folder name is invalid due to some reason
	 * @throws FolderAlreadyExistsException
	 *             if the new folder already exists
	 * @throws WriteException
	 *             if the new folder could not be created due to some reason
	 */
	public void createFolder(final ResourceType type,
			final String currentFolder, final String newFolder)
			throws InvalidCurrentFolderException,
			InvalidNewFolderNameException, FolderAlreadyExistsException,
			WriteException;

	/**
	 * Uploads a new file on to the backend. You are not allowed to overwrite
	 * already existing files, rename the new file and return the new filename.
	 * 
	 * @param type
	 *            the current resource type
	 * @param currentFolder
	 *            the current folder
	 * @param fileName
	 *            the name of the new file
	 * @param inputStream
	 *            input stream of the new file
	 * @return the (eventually renamed) name of the uploaded file
	 * @throws InvalidCurrentFolderException
	 *             if the current folder name is invalid or does not exist
	 *             within the underlying backend
	 * @throws WriteException
	 *             if the new file could not be created due to some reason
	 */
	public String fileUpload(final ResourceType type,
			final String currentFolder, final String fileName,
			final InputStream inputStream)
			throws InvalidCurrentFolderException, WriteException;

}
最近下载更多
Niha726631  LV6 2020年4月10日
DGDdan  LV1 2018年6月19日
82915418  LV2 2018年5月4日
guolifeng  LV6 2017年8月14日
hanpeng136  LV1 2017年4月21日
chenguoqu  LV8 2017年4月14日
hxy0122  LV1 2016年11月14日
ray771  LV1 2016年9月25日
hey_boy520  LV17 2016年8月13日
liulangg0417  LV1 2016年8月13日
最近浏览更多
微信网友_6411724627349504  LV3 2023年4月3日
兔子lq523  LV2 2020年6月15日
scy123  LV3 2020年6月8日
ofeiyuo  LV7 2020年5月13日
Niha726631  LV6 2020年4月10日
_Louis  LV8 2020年1月21日
cpla1998  LV8 2019年12月12日
wsl12345  LV6 2019年10月26日
freedom2017  LV14 2019年6月9日
lyfyyqx  LV4 2019年5月13日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友