From dd9461585e799d4f3ee0ff530adcea88aaa27a3d Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Wed, 13 Oct 2010 08:41:31 +0000 Subject: [PATCH] some more sanity checks git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@287 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- .../schildbach/pte/AbstractEfaProvider.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index c55f1ce2..24d59f1c 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -75,11 +75,10 @@ public abstract class AbstractEfaProvider implements NetworkProvider pp.setInput(is, DEFAULT_ENCODING); // parse odv name elements - XmlPullUtil.jumpToStartTag(pp, null, "itdOdv"); - final String usage = pp.getAttributeValue(null, "usage"); - if (!"origin".equals(usage)) - throw new IllegalStateException(); - XmlPullUtil.nextStartTagInsideTree(pp, null, "itdOdvName"); + if (!XmlPullUtil.jumpToStartTag(pp, null, "itdOdv") || !"origin".equals(pp.getAttributeValue(null, "usage"))) + throw new IllegalStateException("cannot find "); + if (!XmlPullUtil.nextStartTagInsideTree(pp, null, "itdOdvName")) + throw new IllegalStateException("cannot find "); final String nameState = pp.getAttributeValue(null, "state"); if ("identified".equals(nameState) || "list".equals(nameState)) while (XmlPullUtil.nextStartTagInsideTree(pp, null, "odvNameElem")) @@ -218,9 +217,12 @@ public abstract class AbstractEfaProvider implements NetworkProvider final XmlPullParser pp = factory.newPullParser(); pp.setInput(is, DEFAULT_ENCODING); - XmlPullUtil.jumpToStartTag(pp, null, "itdOdvName"); + if (!XmlPullUtil.jumpToStartTag(pp, null, "itdOdv") || !"dm".equals(pp.getAttributeValue(null, "usage"))) + throw new IllegalStateException("cannot find "); + if (!XmlPullUtil.nextStartTagInsideTree(pp, null, "itdOdvName")) + throw new IllegalStateException("cannot find "); final String nameState = pp.getAttributeValue(null, "state"); - if (nameState.equals("identified")) + if ("identified".equals(nameState)) { final List stations = new ArrayList(); @@ -279,7 +281,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider else return new NearbyStationsResult(uri, stations.subList(0, maxStations)); } - else if (nameState.equals("notidentified")) + else if ("notidentified".equals(nameState)) { return new NearbyStationsResult(uri, NearbyStationsResult.Status.INVALID_STATION); } @@ -591,7 +593,10 @@ public abstract class AbstractEfaProvider implements NetworkProvider final XmlPullParser pp = factory.newPullParser(); pp.setInput(is, DEFAULT_ENCODING); - XmlPullUtil.jumpToStartTag(pp, null, "itdOdvName"); + if (!XmlPullUtil.jumpToStartTag(pp, null, "itdOdv") || !"dm".equals(pp.getAttributeValue(null, "usage"))) + throw new IllegalStateException("cannot find "); + if (!XmlPullUtil.nextStartTagInsideTree(pp, null, "itdOdvName")) + throw new IllegalStateException("cannot find "); final String nameState = pp.getAttributeValue(null, "state"); if ("identified".equals(nameState)) {