Rev 347 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2014 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 or
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
package test.svg;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* Convert a nod file to svg to show the routing relationships.
*
* @author Steve Ratcliffe
*/
public class Main
{
private static final String USAGE_MSG =
"Usage: nod2svg [--node 1dc[, ...] <filename>";
private SvgDoc doc
;
/**
* Create an XML document.
*/
private void createDoc
() {
doc =
new SvgDoc
();
doc.
createDoc();
}
/**
* Write the document.
*/
private void writeDoc
() {
doc.
setTransform(doc.
getLeftOffset(), doc.
getTopOffset());
try {
OutputFormat fmt = OutputFormat.
createPrettyPrint();
XMLWriter output =
new XMLWriter
(new FileWriter( new File("out.svg") ), fmt
);
output.
write(doc.
getDoc());
output.
close();
} catch (IOException e
) {
e.
printStackTrace();
}
}
private void run
(String[] args
) {
createDoc
();
String name =
null;
Set<Integer> nodes =
new HashSet<>();
Set<Integer> centers =
new HashSet<>();
int i =
0;
while (i
< args.
length) {
String s = args
[i
];
if (s.
startsWith("--node")) {
String ns = args
[++i
];
for (String s1 : ns.
split("[, ]"))
nodes.
add(Integer.
parseInt(s1,
16));
} else if (s.
startsWith("--center")) {
String ns = args
[++i
];
for (String s1 : ns.
split("[, ]"))
centers.
add(Integer.
parseInt(s1
));
} else {
name = s
;
}
i++
;
}
if (name ==
null)
System.
out.
println(USAGE_MSG
);
// Draw the route network
Route route =
new Route
();
route.
run(doc, name, nodes, centers
);
writeDoc
();
}
public static void main
(String[] args
) {
if (args.
length < 1) {
System.
err.
println(USAGE_MSG
);
System.
exit(1);
}
Main main =
new Main
();
main.
run(args
);
}
}