From 1587f7fa9f667b47e941f916501d3b6b3f3722e9 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sun, 20 Nov 2016 16:33:01 +0100 Subject: [PATCH] Add XmlPullUtil.optSkipMultiple() and use it where possible. --- .../de/schildbach/pte/AbstractEfaProvider.java | 18 ++++-------------- .../de/schildbach/pte/util/XmlPullUtil.java | 6 ++++++ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index e8411c33..b819cb3a 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -707,9 +707,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { throw new RuntimeException("cannot handle nameState '" + nameState + "'"); } - while (XmlPullUtil.test(pp, "infoLink")) - XmlPullUtil.requireSkip(pp, "infoLink"); - + XmlPullUtil.optSkipMultiple(pp, "infoLink"); XmlPullUtil.optSkip(pp, "odvNameInput"); XmlPullUtil.exit(pp, "itdOdvName"); @@ -2261,8 +2259,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { XmlPullUtil.skipExit(pp, "itdTripDateTime"); XmlPullUtil.requireSkip(pp, "itdTripOptions"); - while (XmlPullUtil.test(pp, "omcTaxi")) - XmlPullUtil.requireSkip(pp, "omcTaxi"); + XmlPullUtil.optSkipMultiple(pp, "omcTaxi"); final List trips = new ArrayList(); @@ -2292,8 +2289,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { final int numChanges = XmlPullUtil.intAttr(pp, "changes"); XmlPullUtil.enter(pp, "itdRoute"); - while (XmlPullUtil.test(pp, "itdDateTime")) - XmlPullUtil.next(pp); + XmlPullUtil.optSkipMultiple(pp, "itdDateTime"); XmlPullUtil.optSkip(pp, "itdMapItemList"); XmlPullUtil.enter(pp, "itdPartialRouteList"); @@ -2887,13 +2883,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { XmlPullUtil.enter(pp, "tcs"); fares = new ArrayList(2); - - while (XmlPullUtil.test(pp, "tc")) { - XmlPullUtil.enter(pp, "tc"); - // TODO fares - XmlPullUtil.skipExit(pp, "tc"); - } - + XmlPullUtil.optSkipMultiple(pp, "tc"); // TODO fares XmlPullUtil.skipExit(pp, "tcs"); } else { fares = null; diff --git a/enabler/src/de/schildbach/pte/util/XmlPullUtil.java b/enabler/src/de/schildbach/pte/util/XmlPullUtil.java index 5179b3a3..a8f79647 100644 --- a/enabler/src/de/schildbach/pte/util/XmlPullUtil.java +++ b/enabler/src/de/schildbach/pte/util/XmlPullUtil.java @@ -106,6 +106,12 @@ public final class XmlPullUtil { requireSkip(pp, tagName); } + public static void optSkipMultiple(final XmlPullParser pp, final String tagName) + throws XmlPullParserException, IOException { + while (test(pp, tagName)) + requireSkip(pp, tagName); + } + public static void next(final XmlPullParser pp) throws XmlPullParserException, IOException { skipSubTree(pp); pp.next();