source: josm/trunk/src/org/openstreetmap/josm/io/session/OsmDataSessionImporter.java@ 4815

Last change on this file since 4815 was 4815, checked in by bastiK, 12 years ago

fixed #7281 - compile error

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io.session;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.io.IOException;
7import java.io.InputStream;
8
9import javax.xml.xpath.XPath;
10import javax.xml.xpath.XPathConstants;
11import javax.xml.xpath.XPathExpression;
12import javax.xml.xpath.XPathExpressionException;
13import javax.xml.xpath.XPathFactory;
14
15import org.w3c.dom.Element;
16
17import org.openstreetmap.josm.gui.layer.Layer;
18import org.openstreetmap.josm.gui.progress.ProgressMonitor;
19import org.openstreetmap.josm.io.IllegalDataException;
20import org.openstreetmap.josm.io.OsmImporter;
21import org.openstreetmap.josm.io.session.SessionReader.ImportSupport;
22
23public class OsmDataSessionImporter implements SessionLayerImporter {
24
25 @Override
26 public Layer load(Element elem, ImportSupport support, ProgressMonitor progressMonitor) throws IOException, IllegalDataException {
27 String version = elem.getAttribute("version");
28 if (!"0.1".equals(version)) {
29 throw new IllegalDataException(tr("Version ''{0}'' of meta data for osm data layer is not supported. Expected: 0.1", version));
30 }
31 try {
32 XPathFactory xPathFactory = XPathFactory.newInstance();
33 XPath xpath = xPathFactory.newXPath();
34 XPathExpression fileExp = xpath.compile("file/text()");
35 String fileStr = (String) fileExp.evaluate(elem, XPathConstants.STRING);
36 if (fileStr == null || fileStr.equals("")) {
37 throw new IllegalDataException(tr("File name expected for layer no. {0}", support.getLayerIndex()));
38 }
39
40 OsmImporter importer = new OsmImporter();
41 InputStream in = support.getInputStream(fileStr);
42 OsmImporter.OsmImporterData importData = importer.loadLayer(in, support.getFile(fileStr), support.getLayerName(), progressMonitor);
43
44 support.addPostLayersTask(importData.getPostLayerTask());
45 return importData.getLayer();
46
47 } catch (XPathExpressionException e) {
48 throw new RuntimeException(e);
49 }
50 }
51}
52
Note: See TracBrowser for help on using the repository browser.