From 018d084b65408fd3d457a031c1e367634a7ec5e6 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 15 Nov 2018 13:06:57 +0100 Subject: [PATCH] AbstractHafasProvider.intToProduct(): Don't throw 'ambiguous value' if values are in fact not ambiguous. --- .../src/de/schildbach/pte/AbstractHafasProvider.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 041e45b3..000090a1 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -81,7 +81,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider { protected final Product intToProduct(final int productInt) { final int allProductsInt = allProductsInt(); - checkArgument(productInt < allProductsInt, "value " + productInt + " must be smaller than " + allProductsInt); + checkArgument(productInt <= allProductsInt, + "value " + productInt + " cannot be greater than " + allProductsInt); int value = productInt; Product product = null; @@ -89,10 +90,11 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider { final int v = 1 << i; if (value >= v) { final Product p = productsMap[i]; - if (product == Product.ON_DEMAND && p == Product.BUS) - ; // just ON_DEMAND - else if (product != null) - throw new IllegalArgumentException("ambigous value: " + productInt); + if ((product == Product.ON_DEMAND && p == Product.BUS) + || (product == Product.BUS && p == Product.ON_DEMAND)) + product = Product.ON_DEMAND; + else if (product != null && p != product) + throw new IllegalArgumentException("ambiguous value: " + productInt); else product = p; value -= v;