forked from nhnb/zipdiff
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathXmlBuilder.java
More file actions
112 lines (96 loc) · 2.33 KB
/
Copy pathXmlBuilder.java
File metadata and controls
112 lines (96 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/* zipdiff is available under the terms of the
* Apache License, version 2.0
*
* Link: http://www.apache.org/licenses/
*/
package zipdiff.output;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.Set;
import zipdiff.Differences;
/**
*
* Generates xml output for a Differences instance
*
* @author Sean C. Sullivan
*
*/
public class XmlBuilder extends AbstractBuilder {
/**
* builds the output
*
* @param out OutputStream to write to
* @param d differences
*/
@Override
public void build(OutputStream out, Differences d) {
PrintWriter pw = new PrintWriter(out);
pw.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
pw.print("<zipdiff filename1=\"");
String filename1 = d.getFilename1();
if (filename1 == null) {
filename1 = "filename1.zip";
}
pw.print(filename1);
pw.print("\" filename2=\"");
String filename2 = d.getFilename2();
if (filename2 == null) {
filename2 = "filename2.zip";
}
pw.print(filename2);
pw.println("\">");
pw.println("<differences>");
writeAdded(pw, d.getAdded().keySet());
writeRemoved(pw, d.getRemoved().keySet());
writeChanged(pw, d.getChanged().keySet());
pw.println("</differences>");
pw.println("</zipdiff>");
pw.flush();
}
/**
* writes the list of added files
*
* @param pw write to write to
* @param added set of added files
*/
protected void writeAdded(PrintWriter pw, Set added) {
Iterator iter = added.iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
pw.print("<added>");
pw.print(key);
pw.println("</added>");
}
}
/**
* writes the list of removed files
*
* @param pw write to write to
* @param removed set of removed files
*/
protected void writeRemoved(PrintWriter pw, Set removed) {
Iterator iter = removed.iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
pw.print("<removed>");
pw.print(key);
pw.println("</removed>");
}
}
/**
* writes the list of modified files
*
* @param pw write to write to
* @param changed set of modified files
*/
protected void writeChanged(PrintWriter pw, Set changed) {
Iterator iter = changed.iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
pw.print("<changed>");
pw.print(key);
pw.println("</changed>");
}
}
}