Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/server/MetaDataServiceImpl.java @ 286:0fa8bf8a2295
Datacage: Better converter for incoming XML tree
flys-client/trunk@1916 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 13 May 2011 09:06:13 +0000 |
parents | f33af25b7490 |
children | 2e02db03e576 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/MetaDataServiceImpl.java Thu May 12 16:47:23 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/MetaDataServiceImpl.java Fri May 13 09:06:13 2011 +0000 @@ -26,6 +26,8 @@ import de.intevation.flys.client.shared.model.DataCageTree; import de.intevation.flys.client.shared.model.DataCageNode; +import de.intevation.flys.client.server.meta.Converter; + public class MetaDataServiceImpl extends RemoteServiceServlet implements MetaDataService @@ -54,7 +56,8 @@ HttpClient client = new HttpClientImpl(url, locale); try { - return convert(client.callService(url, "metadata", doc)); + Converter converter = new Converter(); + return converter.convert(client.callService(url, "metadata", doc)); } catch (ConnectionException ce) { System.err.println(ce.getLocalizedMessage()); @@ -62,27 +65,5 @@ throw new ServerException(ERROR_NO_META_DATA_FOUND); } - - protected static DataCageNode convert(Node node) { - String name = node.getLocalName(); - DataCageNode dvn = new DataCageNode(name); - NodeList children = node.getChildNodes(); - for (int i = 0, N = children.getLength(); i < N; ++i) { - dvn.addChild(convert(children.item(i))); - } - return dvn; - } - - protected static DataCageTree convert(Document document) { - ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); - NodeList nodes = document.getChildNodes(); - for (int i = 0, N = nodes.getLength(); i < N; ++i) { - Node node = nodes.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) { - roots.add(convert(nodes.item(i))); - } - } - return new DataCageTree(roots.get(0)); - } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :