package com.zzsn.utility.util;

import java.io.File;
import java.util.ArrayList;
import java.util.List;


/**
 * 处理配置文件的工具类
 * 创建人：杨海龙   
 * 创建时间：2015年6月12日 上午10:13:18   
 * 公司 ：郑州数能软件科技有限公司
 * @version  1.0  
 *
 */
public class CxmlUtil {
	/**
	 * 删除任务方法
	 * 创建人:  杨海龙  
	 * 创建时间:  2015年6月12日 上午10:37:19 
	 * @version 1.0
	 * @param jobDir
	 * @return
	 */
	public static boolean deleteJob(File jobDir){
		// 调用工具方法删除任务目录
		if (!jobDir.exists()) {
			return false;
		}else {
			FileUtil.deleteFile(jobDir);
			return true;
		}
	}
	/**
	 * 根据参数生成或更新配置文
	 * 创建人:  杨海龙  
	 * 创建时间:  2015年6月12日 上午10:37:33 
	 * @version 1.0
	 * @param form
	 * @return
	 */
//	public static boolean createOrUpdateCxml(File jobDir, Form form){
//    	//获取相关的参数
//		String id = form.getFirstValue("id");
//		String name = form.getFirstValue("name");
//		String depth = form.getFirstValue("depth");
//		String scan = form.getFirstValue("scan");
//		String uri = form.getFirstValue("uri");
//		String matchReg = form.getFirstValue("matchReg");
//
//		String isLogin = form.getFirstValue("isLogin");
//		String loginDomain = form.getFirstValue("loginDomain");
//		String loginUrl = form.getFirstValue("loginUrl");
//		String unameKey = form.getFirstValue("unameKey");
//		String uname = form.getFirstValue("uname");
//		String pwdKey= form.getFirstValue("pwdKey");
//		String pwd = form.getFirstValue("pwd");
//		// 根据参数及模板生成cxml文件流
//		// 准备一个Configuration对象
//				Configuration cfg = new Configuration();
//				// 设置FreeMaker模板文件夹的位置
//				try {
//					String path = CxmlUtil.class.getResource("/").getPath()
//							+ "template";
//					cfg.setDirectoryForTemplateLoading(new File(path));
//				} catch (IOException e) {
//					e.printStackTrace();
//					return false;
//				}
//
//				// 准备一个Map对象将参数传入模板以供替换
//				Map<String, Object> arguments = new HashMap<String, Object>();
//				arguments.put("description", name);
//				arguments.put("name", name);
//				arguments.put("depth", depth);
//				arguments.put("sid", id);
//				arguments.put("scan", scan);
////				arguments.put("crawlTotal", job.getCrawlTotal());
//				//对includeUrl，和excludeUrl的处理,转换为freeMarker识别的集合样式
//				arguments.put("includeUrl", stringToFreeMakerList(matchReg));
//				uri = uri.replaceAll("\\&","&amp;");
//				arguments.put("startUrl", uri);
//
//				arguments.put("isLogin", isLogin);
//				arguments.put("loginDomain", loginDomain);
//				arguments.put("loginUrl", loginUrl);
//				arguments.put("unameKey", unameKey);
//				arguments.put("uname", uname);
//				arguments.put("pwdKey", pwdKey);
//				arguments.put("pwd", pwd);
//
//
//				// 准备一个输出流以供写出生成的文件
//				Writer writer = null;
//				try {
//					org.archive.util.FileUtils.ensureWriteableDirectory(jobDir);
//		            File configFile = new File(jobDir,"crawler-beans.cxml");
//					writer = new OutputStreamWriter(new FileOutputStream(
//							configFile), "UTF-8");
//					// 获取模板
//					Template template = cfg.getTemplate("crawler-beans.ftl");
//					// 通过模板处理提供的Map参数并生成配置文件
//					template.process(arguments, writer);
//					System.out.println("生成配置文件成功！");
//					return true;
//				} catch (Exception e) {
//					e.printStackTrace();
//				} finally {
//					if (writer != null) {
//						try {
//							writer.close();
//						} catch (IOException e) {
//							e.printStackTrace();
//						}
//					}
//				}
//		return false;
//	}
	/**
	 * 将字符串处理为freemarker识别的集合形式，主要是处理多条匹配规则
	 * 创建人:  杨海龙  
	 * 创建时间:  2015年6月12日 上午11:12:51 
	 * @version 1.0
	 * @param string
	 * @return
	 */
	public static List<String> stringToFreeMakerList(String string) {
		//将字符串按照换行符分割并生成多条规则的List集合
		String[] strings = string.split("\\s|　");
		List<String> result = new ArrayList<String>();
		for (String str : strings) {
			str = str.replaceAll("\\&","&amp;");
			result.add(str);
		}
		return result;
	}
	public static void main(String[] args) {
		String str = "adsads&";
		System.out.println(str.replaceAll("\\&", "&amp;"));
	}
}
