annotate src/java/de/intevation/mxd/Converter.java @ 39:f807c9c81019

Read further map attributes.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 14 Apr 2011 11:09:35 +0200
parents 7a927921eb6c
children 60ed2164035a
rev   line source
33
c51376f8e24c Separated converter components into packages.
Raimund Renkert <rrenkert@intevation.de>
parents: 28
diff changeset
1 package de.intevation.mxd;
24
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
25
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
3 import java.io.IOException;
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
4 import java.io.File;
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
5
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
6 import org.apache.log4j.Logger;
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
7 import org.apache.log4j.PropertyConfigurator;
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
8
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
9 import java.net.MalformedURLException;
24
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
33
c51376f8e24c Separated converter components into packages.
Raimund Renkert <rrenkert@intevation.de>
parents: 28
diff changeset
11 import de.intevation.mxd.reader.IReader;
c51376f8e24c Separated converter components into packages.
Raimund Renkert <rrenkert@intevation.de>
parents: 28
diff changeset
12 import de.intevation.mxd.reader.MXDReader;
c51376f8e24c Separated converter components into packages.
Raimund Renkert <rrenkert@intevation.de>
parents: 28
diff changeset
13
24
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 /**
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 * The entry point of the MXD converter tool.
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 *
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 */
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 public class Converter {
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
25
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
21 /**
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
22 * The logging is done via Log4j. To configure the logging
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
23 * a file 'log4j.properties' is search in the configuration
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
24 * directory.
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
25 */
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
26 public static final String LOG4J_PROPERTIES = "log4j.properties";
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
27
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
28 /**
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
29 *
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
30 * The path of the configuration directory.
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
31 */
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
32 public static final String CONFIG_PATH = System.getProperty("config.dir",
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
33 "conf");
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
34
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
35
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
36 /**
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
37 * The logger used in this class.
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
38 */
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
39 private static Logger logger;
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
40
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
41 static {
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
42 configureLogging();
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
43 logger = Logger.getLogger(Converter.class);
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
44 }
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
45
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
46
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
47 /**
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
48 * Trys to load the Log4j configuration
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
49 * from ${config.dir}/log4j.properties.
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
50 */
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
51 public static final void configureLogging() {
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
52 File configDir = new File(CONFIG_PATH);
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
53 File propFile = new File(configDir, LOG4J_PROPERTIES);
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
54 if (propFile.isFile() && propFile.canRead()) {
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
55 try {
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
56 PropertyConfigurator.configure(propFile.toURI().toURL());
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
57 }
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
58 catch (MalformedURLException mue) {
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
59 mue.printStackTrace(System.err);
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
60 }
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
61 }
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
62 }
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
63
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
64 /**
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
65 * Entrypoint for the application.
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
66 */
24
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 public static void main(String[] args) {
25
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
68 try{
28
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
69
25
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
70 IReader reader = new MXDReader();
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
71 reader.init();
28
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
72
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
73 String path = System.getProperty("mxd.file");
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
74 if (path.equals("${MXDFILE}")) {
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
75 System.out.println("No valid MXD file. Use ant parameter" +
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
76 " \"-DMXDFILE=path/to/file.mxd\".");
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
77 System.exit(-1);
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
78 }
0e71a1f71ec0 Added parameter for MXD filename.
Raimund Renkert <rrenkert@intevation.de>
parents: 25
diff changeset
79 reader.setFilename(path);
25
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
80
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
81 reader.read();
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
82 reader.shutdown();
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
83 }
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
84 catch(IOException e){
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
85 e.printStackTrace();
cbd67b1100d8 Initial commit of the first prototype.
Raimund Renkert <rrenkert@intevation.de>
parents: 24
diff changeset
86 }
24
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 }
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 }
c0060abb7457 Added source directory and an initial entry class for a MXD converter tool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)