package com.uas.report.service;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;

import org.apache.http.client.ClientProtocolException;

import com.uas.report.model.Resource;

/**
 * 管理报表模板、图片等资源
 * 
 * @author sunyj
 * @since 2016年9月23日 下午5:23:49
 */
public interface ResourceService {

	/**
	 * 同步jasperserver repository中指定账套的资源至本地
	 * 
	 * @param userName
	 *            账套名
	 * @return 需要同步的资源
	 * @throws IOException
	 * @throws URISyntaxException
	 * @throws ClientProtocolException
	 */
	public List<Resource> syncResources(String userName)
			throws ClientProtocolException, URISyntaxException, IOException;

	/**
	 * 从jasperserver获取指定路径下的关于所有资源的信息
	 * 
	 * @param folderPath
	 *            指定路径
	 * @return 资源列表的信息
	 * @throws IOException
	 * @throws URISyntaxException
	 * @throws ClientProtocolException
	 */
	public List<Resource> getRemoteResources(String folderPath)
			throws ClientProtocolException, URISyntaxException, IOException;

	/**
	 * 从jasperserver下载文件
	 * 
	 * @param filePath
	 *            文件路径
	 * @param mimeType
	 *            mime类型
	 * @param exportPath
	 *            导出到本地的路径
	 * @throws ClientProtocolException
	 * @throws URISyntaxException
	 * @throws IOException
	 */
	public void downloadFile(String filePath, String mimeType, String exportPath)
			throws ClientProtocolException, URISyntaxException, IOException;
}
