All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gu.sql2java.store.URLStore Maven / Gradle / Ivy

The newest version!
package gu.sql2java.store;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.net.URLStreamHandlerFactory;
import java.nio.ByteBuffer;

/**
 * 二进制数据存储接口
 * @author guyadong
 *
 */
public interface URLStore {
	/**
	 * 判断指定的URL是否当前实例的协议一致
	 * @param url 为{@code null}返回{@code false}
	 * @return 协议一致返回{@code true},否则返回{@code false}
	 */
	boolean isStored(URL url);
	/**
	 * 判断URL指定的数据是否存在
* @param url 为{@code null}返回{@code false} * @return 数据存在返回{@code true},否则返回{@code false} */ boolean exists(URL url); /** * 保存二进制数据
* @param 数据类型可以是byte[],{@link InputStream},{@link ByteBuffer},{@link String}(base64编码), * {@link File},{@link URL},{@link URI} 否则抛出{@link IllegalArgumentException}
* @param input 二进制数据 * @param md5 二进制数据的MD5校验码,为{@code null}时会自动计算 * @param extension 数据类型(文件后缀),可为{@code null} * @param overwrite 是否覆盖已存在数据 * @param makeURLOnly 为{@code true}时不存储数据只返回存储URL * @return 保存的URL * @throws IOException */ URL store(T input, String md5, String extension, boolean overwrite, boolean makeURLOnly) throws IOException; /** * 删除{@code md5}指定的存储数据 * @param md5 * @return {@code true} if deleted, otherwise {@code false} * @throws IOException */ boolean delete(String md5) throws IOException; /** * 保存二进制数据
* 如果数据已经被保存则不做任何事 * @param url * @param overwrite 是否覆盖已存在数据 * @param makeURLOnly 为{@code true}时不存储数据只返回存储URL * @return 保存的URL * @throws IOException */ URL store(URL url, boolean overwrite, boolean makeURLOnly) throws IOException; /** * 删除指定的存储数据 * @param url 存储的URL * @return {@code true} if deleted, otherwise {@code false} * @throws IOException */ boolean delete(URL url) throws IOException; /** * 返回当前存储实现的协议名 */ String getProtocol(); /** * 设置当前线程有效的附加参数 * @param name 参数名 * @param value 参数值 * @return 当前对象 */ BaseURLStore setAdditionalParam(String name, Object value); /** * 将当前{@link URLStreamHandlerFactory}实例安装到JVM * @return 当前对象 * @throws Exception */ BaseURLStore intall() throws Exception; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy