Correct some fares by a factor

This commit is contained in:
Andreas Schildbach 2013-08-09 16:15:43 +02:00
parent 2efd86ebf8
commit 65127104d2
3 changed files with 15 additions and 7 deletions

View file

@ -104,6 +104,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private boolean suppressPositions = false; private boolean suppressPositions = false;
private boolean useRouteIndexAsTripId = true; private boolean useRouteIndexAsTripId = true;
private boolean useLineRestriction = true; private boolean useLineRestriction = true;
private float fareCorrectionFactor = 1f;
private final XmlPullParserFactory parserFactory; private final XmlPullParserFactory parserFactory;
@ -165,6 +166,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
this.coordEndpoint = coordEndpoint; this.coordEndpoint = coordEndpoint;
} }
protected void setAdditionalQueryParameter(final String additionalQueryParameter)
{
this.additionalQueryParameter = additionalQueryParameter;
}
protected void setRequestUrlEncoding(final Charset requestUrlEncoding) protected void setRequestUrlEncoding(final Charset requestUrlEncoding)
{ {
this.requestUrlEncoding = requestUrlEncoding; this.requestUrlEncoding = requestUrlEncoding;
@ -216,9 +222,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
this.needsSpEncId = needsSpEncId; this.needsSpEncId = needsSpEncId;
} }
protected void setAdditionalQueryParameter(final String additionalQueryParameter) protected void setFareCorrectionFactor(final float fareCorrectionFactor)
{ {
this.additionalQueryParameter = additionalQueryParameter; this.fareCorrectionFactor = fareCorrectionFactor;
} }
protected TimeZone timeZone() protected TimeZone timeZone()
@ -2702,11 +2708,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String levelAdult = XmlPullUtil.optAttr(pp, "levelAdult", null); final String levelAdult = XmlPullUtil.optAttr(pp, "levelAdult", null);
final String levelChild = XmlPullUtil.optAttr(pp, "levelChild", null); final String levelChild = XmlPullUtil.optAttr(pp, "levelChild", null);
if (fareAdult != null) if (fareAdult != null)
fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult), levelAdult != null ? null : unitName, fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult) * fareCorrectionFactor,
levelAdult != null ? levelAdult : unitsAdult)); levelAdult != null ? null : unitName, levelAdult != null ? levelAdult : unitsAdult));
if (fareChild != null) if (fareChild != null)
fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild), levelChild != null ? null : unitName, fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild) * fareCorrectionFactor,
levelChild != null ? levelChild : unitsChild)); levelChild != null ? null : unitName, levelChild != null ? levelChild : unitsChild));
if (!pp.isEmptyElementTag()) if (!pp.isEmptyElementTag())
{ {
@ -3090,7 +3096,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
} }
else if (key.equals("PRICE")) else if (key.equals("PRICE"))
{ {
fare = Float.parseFloat(value) * (currency.getCurrencyCode().equals("USD") ? 0.01f : 1); fare = Float.parseFloat(value) * fareCorrectionFactor;
} }
XmlPullUtil.exit(pp, "itdGenericTicket"); XmlPullUtil.exit(pp, "itdGenericTicket");

View file

@ -37,6 +37,7 @@ public class DubProvider extends AbstractEfaProvider
super(API_BASE); super(API_BASE);
setUseRouteIndexAsTripId(false); setUseRouteIndexAsTripId(false);
setFareCorrectionFactor(0.01f);
} }
public NetworkId id() public NetworkId id()

View file

@ -36,6 +36,7 @@ public class SfProvider extends AbstractEfaProvider
super(API_BASE); super(API_BASE);
setUseRouteIndexAsTripId(false); setUseRouteIndexAsTripId(false);
setFareCorrectionFactor(0.01f);
} }
public NetworkId id() public NetworkId id()