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

com.xnx3.doc.TemplateUtil Maven / Gradle / Ivy

There is a newer version: 1.16
Show newest version
package com.xnx3.doc;

import com.xnx3.FileUtil;
import com.xnx3.net.HttpResponse;
import com.xnx3.net.HttpUtil;

/**
 * 模板
 * @author 管雷鸣
 *
 */
public class TemplateUtil {
//	private String templatePath;	//模板所在路径,如 http://res.zvo.cn/javadoc/template/ 这个目录下有 template.html、style.css、javadoc.js
	HttpUtil httpUtil; 
	private JavaDoc javadoc;	//用到里面的 templatePath、version、domain 等
	
	/**
	 * 传入模板所在文件夹的路径
	 * @param templatePath 可传入远程路径,如 http://res.zvo.cn/javadoc/template/ 或者本地路径如 /mnt/apple/download/template/
	 */
	public TemplateUtil(JavaDoc javadoc) {
//		this.templatePath = templatePath;
		this.javadoc = javadoc;
		this.httpUtil = new HttpUtil();
	}
	
	/**
	 * 判断 templatePath 这个路径是本地路径,还是远程url路径
	 * @return true 是本地路径;  false是远程url
	 */
	public boolean isLocal() {
		if(javadoc.templatePath == null) {
			return false;
		}
		if(javadoc.templatePath.indexOf("http://") == 0 || javadoc.templatePath.indexOf("https://") == 0) {
			return false;
		}else {
			return true;
		}
	}
	
	/**
	 * 获取 具体api接口的模板,也就是模板中的 template.html 模板
	 * @return
	 */
	public String getTemplate() {
		return getResource("template.html");
	}
	
	/**
	 * 获取 index.html 模板
	 * @return
	 */
	public String getIndex() {
		return getResource("index.html");
	}
	

	/**
	 * 获取 data.js 的模板
	 * @return
	 */
	public String getJavaDocJs() {
		return getResource("javadoc.js");
	}
	

	/**
	 * 获取 style.css 的模板
	 * @return
	 */
	public String getStyleCss() {
		return getResource("style.css");
	}
	
	/**
	 * 获取资源文件的源码,如 style。css、 template.html 等
	 * @param fileName 传入如 template.html
	 * @return 源码
	 */
	public String getResource(String fileName) {
		String source = "";
		if(isLocal()) {
			source = FileUtil.read(javadoc.templatePath+fileName, FileUtil.UTF8);
		}else {
			HttpResponse hr = httpUtil.get(javadoc.templatePath+fileName);
			if(hr.getCode() - 200 != 0) {
				Log.error("获取"+fileName+":"+hr.toString());
				return "获取"+fileName+"异常:"+hr.toString();
			}
			
			source = hr.getContent();
		}
		
		source = TemplateUtil.replaceAll(source, "\\{name\\}", javadoc.name);
		source = TemplateUtil.replaceAll(source, "\\{version\\}", javadoc.version);
		source = TemplateUtil.replaceAll(source, "\\{domain\\}", javadoc.domain);
		source = TemplateUtil.replaceAll(source, "\\{token\\}", javadoc.token);
		
		return source;
	}
	

	/**
	 * 替换特殊字符,避免再执行替换使,因为特殊字符的存在,影响正则匹配,导致替换出错
	 * @param sourceText 进行替换的原始字符串 sourceText.replaceALl
	 * @param regex 要替换sourceText的什么文字
	 * @param replacement 要将regex替换成什么
	 * @return 替换好的
	 */
	public static String replaceAll(String sourceText, String regex, String replacement){
		if(sourceText == null){
			return null;
		}
		if(regex == null || replacement == null){
			return sourceText;
		}

		//将$符号替换为 \$
		replacement = replacement.replaceAll("\\$", "\\\\\\$");  
		
		return sourceText.replaceAll(regex, replacement);
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy