浏览代码

Refactoring

jhonnymertz@gmail.com 11 年之前
父节点
当前提交
5d7976a368

+ 6 - 18
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Command.java

@@ -1,26 +1,14 @@
 package br.eti.mertz.wkhtmltopdf.wrapper;
 
-import java.util.List;
 
-import lombok.Data;
-import lombok.NonNull;
-
-@Data
 public class Command {
 	
-	@NonNull
-	private String name;
-	
-	private List<Param> params;
-	
-	public void addParams(Param... params){
-		for(Param param : params){
-			addParam(param);
-		}
-	}
-	
-	public void addParam(Param param){
-		params.add(param);
+	public static void main(String[] args) {
+		Pdf pdf = new Pdf();
+		
+		pdf.getParams().add(new Param("enable-javascript"), new Param("html-header", "file:///lala.html"));
+		
+		System.out.println(pdf);
 	}
 
 }

+ 0 - 17
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/HtmlToPdfUtils.java

@@ -1,17 +0,0 @@
-package br.eti.mertz.wkhtmltopdf.wrapper;
-
-public class HtmlToPdfUtils {
-	
-	private static String command = "wkhtmltopdf";
-	
-	public static void execute(Pdf pdf){
-		
-		pdf.getAttrsAsCommandParams();
-		
-		Runtime rt = Runtime.getRuntime();
-		
-		Process proc = rt.exec();
-		
-	}
-
-}

+ 20 - 4
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Param.java

@@ -4,11 +4,27 @@ import lombok.Data;
 import lombok.NonNull;
 
 @Data
-public class Param {
-	
+public class Param{
+
 	@NonNull
-	private Object key;
+	private String key;
+
+	private String value;
+
+	public Param(String key, String value) {
+		this.key = key;
+		this.value = value;
+	}
 	
-	private Object value;
+	public Param(String key) {
+		this(key, null);
+	}
+
+	public String toString() {
+		StringBuilder sb = new StringBuilder().append(Symbol.separator)
+				.append(Symbol.param).append(key).append(Symbol.separator)
+				.append(value);
+		return sb.toString();
+	}
 
 }

+ 35 - 0
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Params.java

@@ -0,0 +1,35 @@
+package br.eti.mertz.wkhtmltopdf.wrapper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
+
+@Data
+public class Params {
+
+	List<Param> params;
+
+	public Params() {
+		this.params = new ArrayList<Param>();
+	}
+
+	public void add(Param param) {
+		params.add(param);
+	}
+
+	public void add(Param... params) {
+		for (Param param : params) {
+			add(param);
+		}
+	}
+	
+	public String toString(){
+		StringBuilder sb = new StringBuilder();
+		for(Param param : params){
+			sb.append(param);
+		}
+		return sb.toString();
+	}
+
+}

+ 41 - 29
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Pdf.java

@@ -1,59 +1,71 @@
 package br.eti.mertz.wkhtmltopdf.wrapper;
 
 import java.io.File;
+import java.io.IOException;
 
-import lombok.experimental.Builder;
+import lombok.Data;
 
-@Builder
-public class Pdf implements PdfService{
-	
-	private Boolean enableJavascript = true;
-	private Boolean debugJavascript = false;
-	private Long javascriptDelay = 0L;
-	private String headerHtml;
-	private String footerHtml;
-	private String url;
-	private String path;
-	private Param cookie;
-	
-	public String getAttrsAsCommandParams(){
-		return "";
+@Data
+public class Pdf implements PdfService {
+
+	private String wkhtmlpdf;
+	private Params params;
+
+	public Pdf(String wkhtmltopdf, Params params) {
+		this.wkhtmlpdf = wkhtmltopdf;
+		this.params = params;
+	}
+
+	public Pdf(Params params) {
+		this("wkhtmltopdf", params);
+	}
+
+	public Pdf() {
+		this("wkhtmltopdf", new Params());
 	}
 
 	/**
-	 * TODO
-	 * Add a HTML file, a HTML string or a page from a URL
+	 * TODO Add a HTML file, a HTML string or a page from a URL
 	 */
 	public void addPage(String page) {
 		// TODO Auto-generated method stub
-		
+
 	}
 
 	/**
-	 * TODO
-	 * Add a HTML file, a HTML string or a page from a URL
+	 * TODO Add a HTML file, a HTML string or a page from a URL
 	 */
 	public void addCover(String cover) {
 		// TODO Auto-generated method stub
-		
+
 	}
 
 	/**
-	 * TODO
-	 * just the TOC option from wkhtmltopdf
+	 * TODO just the TOC option from wkhtmltopdf
 	 */
 	public void addToc() {
 		// TODO Auto-generated method stub
-		
+
 	}
 
 	/**
-	 * TODO
-	 * save file and returns
+	 * TODO save file and returns
+	 * @throws IOException 
+	 * @throws InterruptedException 
 	 */
-	public File saveAs(String path) {
-		// TODO Auto-generated method stub
-		return null;
+	public File saveAs(String path) throws IOException, InterruptedException {
+
+		Runtime rt = Runtime.getRuntime();
+		Process proc = rt.exec(this.toString());
+		
+		proc.waitFor();
+
+		return new File(path);
+	}
+
+	public String toString() {
+		StringBuilder sb = new StringBuilder(wkhtmlpdf).append(params);
+		return sb.toString();
 	}
 
 }

+ 2 - 1
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/PdfService.java

@@ -1,6 +1,7 @@
 package br.eti.mertz.wkhtmltopdf.wrapper;
 
 import java.io.File;
+import java.io.IOException;
 
 public interface PdfService {
 	
@@ -10,6 +11,6 @@ public interface PdfService {
 	
 	public void addToc();
 	
-	public File saveAs(String path);
+	public File saveAs(String path) throws IOException, InterruptedException;
 
 }

+ 18 - 0
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Symbol.java

@@ -0,0 +1,18 @@
+package br.eti.mertz.wkhtmltopdf.wrapper;
+
+public enum Symbol {
+
+	separator(" "), param("--");
+
+	private String symbol;
+
+	private Symbol(String symbol) {
+		this.symbol = symbol;
+	}
+
+	@Override
+	public String toString() {
+		return symbol;
+	}
+
+}