most efa fare related attributes are optional

This commit is contained in:
Andreas Schildbach 2013-06-28 21:20:04 +02:00
parent 6561a811be
commit 9dd41526dd

View file

@ -2690,21 +2690,19 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{ {
final String net = XmlPullUtil.attr(pp, "net"); final String net = XmlPullUtil.attr(pp, "net");
final Currency currency = parseCurrency(XmlPullUtil.attr(pp, "currency")); final Currency currency = parseCurrency(XmlPullUtil.attr(pp, "currency"));
final String fareAdult = XmlPullUtil.attr(pp, "fareAdult"); final String fareAdult = XmlPullUtil.optAttr(pp, "fareAdult", null);
final String fareChild = XmlPullUtil.attr(pp, "fareChild"); final String fareChild = XmlPullUtil.optAttr(pp, "fareChild", null);
final String unitName = XmlPullUtil.attr(pp, "unitName"); final String unitName = XmlPullUtil.optAttr(pp, "unitName", null);
final String unitsAdult = XmlPullUtil.attr(pp, "unitsAdult"); final String unitsAdult = XmlPullUtil.optAttr(pp, "unitsAdult", null);
final String unitsChild = XmlPullUtil.attr(pp, "unitsChild"); final String unitsChild = XmlPullUtil.optAttr(pp, "unitsChild", null);
final String levelAdult = pp.getAttributeValue(null, "levelAdult"); final String levelAdult = XmlPullUtil.optAttr(pp, "levelAdult", null);
final boolean hasLevelAdult = levelAdult != null && levelAdult.length() > 0; final String levelChild = XmlPullUtil.optAttr(pp, "levelChild", null);
final String levelChild = pp.getAttributeValue(null, "levelChild"); if (fareAdult != null)
final boolean hasLevelChild = levelChild != null && levelChild.length() > 0; fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult), levelAdult != null ? null : unitName,
if (fareAdult != null && fareAdult.length() > 0) levelAdult != null ? levelAdult : unitsAdult));
fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult), hasLevelAdult ? null : unitName, if (fareChild != null)
hasLevelAdult ? levelAdult : unitsAdult)); fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild), levelChild != null ? null : unitName,
if (fareChild != null && fareChild.length() > 0) levelChild != null ? levelChild : unitsChild));
fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild), hasLevelChild ? null : unitName,
hasLevelChild ? levelChild : unitsChild));
if (!pp.isEmptyElementTag()) if (!pp.isEmptyElementTag())
{ {