Migrate time zone from abstract method to simple property.

This commit is contained in:
Andreas Schildbach 2014-07-14 22:37:29 +02:00
parent bff85b9f6c
commit e691e7c2fb
16 changed files with 52 additions and 115 deletions

View file

@ -37,7 +37,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -229,11 +228,6 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
this.fareCorrectionFactor = fareCorrectionFactor;
}
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Europe/Berlin");
}
private final void appendCommonRequestParams(final StringBuilder uri, final String outputFormat)
{
uri.append("?outputFormat=").append(outputFormat);
@ -1549,8 +1543,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
if (XmlPullUtil.test(pp, "itdMessage"))
XmlPullUtil.next(pp);
final Calendar plannedDepartureTime = new GregorianCalendar(timeZone());
final Calendar predictedDepartureTime = new GregorianCalendar(timeZone());
final Calendar plannedDepartureTime = new GregorianCalendar(timeZone);
final Calendar predictedDepartureTime = new GregorianCalendar(timeZone);
XmlPullUtil.require(pp, "itdServingLines");
if (!pp.isEmptyElementTag())
@ -1716,8 +1710,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{
XmlPullUtil.enter(pp, "dps");
final Calendar plannedDepartureTime = new GregorianCalendar(timeZone());
final Calendar predictedDepartureTime = new GregorianCalendar(timeZone());
final Calendar plannedDepartureTime = new GregorianCalendar(timeZone);
final Calendar predictedDepartureTime = new GregorianCalendar(timeZone);
while (XmlPullUtil.test(pp, "dp"))
{
@ -2440,7 +2434,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{
XmlPullUtil.enter(pp, "itdRouteList");
final Calendar time = new GregorianCalendar(timeZone());
final Calendar time = new GregorianCalendar(timeZone);
while (XmlPullUtil.test(pp, "itdRoute"))
{
@ -2859,8 +2853,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
pp.setInput(is, null);
final ResultHeader header = enterEfa(pp);
final Calendar plannedTime = new GregorianCalendar(timeZone());
final Calendar predictedTime = new GregorianCalendar(timeZone());
final Calendar plannedTime = new GregorianCalendar(timeZone);
final Calendar predictedTime = new GregorianCalendar(timeZone);
final List<Trip> trips = new ArrayList<Trip>();
@ -3330,7 +3324,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String now = XmlPullUtil.attr(pp, "now");
final String sessionId = XmlPullUtil.attr(pp, "sessionID");
final Calendar serverTime = new GregorianCalendar(timeZone());
final Calendar serverTime = new GregorianCalendar(timeZone);
ParserUtils.parseIsoDate(serverTime, now.substring(0, 10));
ParserUtils.parseEuropeanTime(serverTime, now.substring(11));
@ -3366,7 +3360,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.enter(pp, "efa");
final String now = XmlPullUtil.valueTag(pp, "now");
final Calendar serverTime = new GregorianCalendar(timeZone());
final Calendar serverTime = new GregorianCalendar(timeZone);
ParserUtils.parseIsoDate(serverTime, now.substring(0, 10));
ParserUtils.parseEuropeanTime(serverTime, now.substring(11));

View file

@ -39,7 +39,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -201,11 +200,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
this.extXmlEndpoint = extXmlEndpoint;
}
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("CET");
}
protected final String allProductsString()
{
final StringBuilder allProducts = new StringBuilder(numProductBits);
@ -529,7 +523,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (!isEquivStation && !"cancel".equals(eDelay))
{
final Calendar plannedTime = new GregorianCalendar(timeZone());
final Calendar plannedTime = new GregorianCalendar(timeZone);
plannedTime.clear();
ParserUtils.parseEuropeanTime(plannedTime, fpTime);
if (fpDate.length() == 8)
@ -542,7 +536,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final Calendar predictedTime;
if (eDelay != null)
{
predictedTime = new GregorianCalendar(timeZone());
predictedTime = new GregorianCalendar(timeZone);
predictedTime.setTimeInMillis(plannedTime.getTimeInMillis());
predictedTime.add(Calendar.MINUTE, Integer.parseInt(eDelay));
}
@ -553,7 +547,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
if (m.group(1) != null)
{
predictedTime = new GregorianCalendar(timeZone());
predictedTime = new GregorianCalendar(timeZone);
predictedTime.setTimeInMillis(plannedTime.getTimeInMillis());
predictedTime.add(Calendar.MINUTE, Integer.parseInt(m.group(1)));
}
@ -710,7 +704,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
uri.append("&REQ0HafasSearchForw=").append(dep ? "1" : "0");
final Calendar c = new GregorianCalendar(timeZone());
final Calendar c = new GregorianCalendar(timeZone);
c.setTime(date);
final String dateStr = useIso8601 ? String.format(Locale.ENGLISH, "%04d-%02d-%02d", c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1,
c.get(Calendar.DAY_OF_MONTH)) : String.format(Locale.ENGLISH, "%02d.%02d.%02d", c.get(Calendar.DAY_OF_MONTH),
@ -781,7 +775,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
to = locations.get(0);
}
final Calendar c = new GregorianCalendar(timeZone());
final Calendar c = new GregorianCalendar(timeZone);
c.setTime(date);
final StringBuilder productsStr = new StringBuilder(numProductBits);
@ -938,7 +932,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
XmlPullUtil.next(pp);
XmlPullUtil.enter(pp, "Overview");
final Calendar currentDate = new GregorianCalendar(timeZone());
final Calendar currentDate = new GregorianCalendar(timeZone);
currentDate.clear();
parseDate(currentDate, XmlPullUtil.valueTag(pp, "Date"));
XmlPullUtil.enter(pp, "Departure");
@ -989,7 +983,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
XmlPullUtil.enter(pp, "ConSectionList");
final Calendar time = new GregorianCalendar(timeZone());
final Calendar time = new GregorianCalendar(timeZone);
while (XmlPullUtil.test(pp, "ConSection"))
{
@ -2004,7 +1998,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final int days = is.readShortReverse();
final Calendar date = new GregorianCalendar(timeZone());
final Calendar date = new GregorianCalendar(timeZone);
date.clear();
date.set(Calendar.YEAR, 1980);
date.set(Calendar.DAY_OF_YEAR, days);
@ -2024,7 +2018,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (minutes < 0 || minutes > 60)
throw new IllegalStateException("minutes out of range: " + minutes);
final Calendar time = new GregorianCalendar(timeZone());
final Calendar time = new GregorianCalendar(timeZone);
time.setTimeInMillis(baseDate);
if (time.get(Calendar.HOUR) != 0 || time.get(Calendar.MINUTE) != 0)

View file

@ -22,6 +22,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.Product;
@ -36,8 +37,8 @@ public abstract class AbstractNetworkProvider implements NetworkProvider
protected static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
protected static final Set<Product> ALL_EXCEPT_HIGHSPEED;
protected TimeZone timeZone = TimeZone.getTimeZone("CET");
protected int numTripsRequested = 6;
private Map<String, Style> styles = null;
static
@ -51,6 +52,11 @@ public abstract class AbstractNetworkProvider implements NetworkProvider
return ALL_EXCEPT_HIGHSPEED;
}
protected void setTimeZone(final String timeZoneId)
{
this.timeZone = TimeZone.getTimeZone(timeZoneId);
}
protected void setNumTripsRequested(final int numTripsRequested)
{
this.numTripsRequested = numTripsRequested;

View file

@ -339,7 +339,7 @@ public final class BvgProvider extends AbstractHafasProvider
if (mHead.matches())
{
final String[] placeAndName = splitPlaceAndName(ParserUtils.resolveEntities(mHead.group(1)));
final Calendar currentTime = new GregorianCalendar(timeZone());
final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear();
parseDateTime(currentTime, mHead.group(2));
@ -372,7 +372,7 @@ public final class BvgProvider extends AbstractHafasProvider
final Matcher mDepFine = P_DEPARTURES_LIVE_FINE.matcher(mDepCoarse.group(1));
if (mDepFine.matches())
{
final Calendar parsedTime = new GregorianCalendar(timeZone());
final Calendar parsedTime = new GregorianCalendar(timeZone);
parsedTime.setTimeInMillis(currentTime.getTimeInMillis());
ParserUtils.parseEuropeanTime(parsedTime, mDepFine.group(1));
@ -438,7 +438,7 @@ public final class BvgProvider extends AbstractHafasProvider
if (mHead.matches())
{
final String[] placeAndName = splitPlaceAndName(ParserUtils.resolveEntities(mHead.group(1)));
final Calendar currentTime = new GregorianCalendar(timeZone());
final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear();
ParserUtils.parseGermanDate(currentTime, mHead.group(2));
final List<Departure> departures = new ArrayList<Departure>(8);
@ -449,7 +449,7 @@ public final class BvgProvider extends AbstractHafasProvider
final Matcher mDepFine = P_DEPARTURES_PLAN_FINE.matcher(mDepCoarse.group(1));
if (mDepFine.matches())
{
final Calendar parsedTime = new GregorianCalendar(timeZone());
final Calendar parsedTime = new GregorianCalendar(timeZone);
parsedTime.setTimeInMillis(currentTime.getTimeInMillis());
ParserUtils.parseEuropeanTime(parsedTime, mDepFine.group(1));

View file

@ -18,7 +18,6 @@
package de.schildbach.pte;
import java.io.IOException;
import java.util.TimeZone;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
@ -36,6 +35,7 @@ public class DubProvider extends AbstractEfaProvider
{
super(API_BASE);
setTimeZone("Asia/Dubai");
setUseRouteIndexAsTripId(false);
setFareCorrectionFactor(0.01f);
}
@ -45,12 +45,6 @@ public class DubProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Asia/Dubai");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -193,7 +193,7 @@ public class InvgProvider extends AbstractHafasProvider
if (mHeadFine.matches())
{
final String location = ParserUtils.resolveEntities(mHeadFine.group(1));
final Calendar currentTime = new GregorianCalendar(timeZone());
final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear();
ParserUtils.parseGermanDate(currentTime, mHeadFine.group(2));
ParserUtils.parseEuropeanTime(currentTime, mHeadFine.group(3));
@ -212,7 +212,7 @@ public class InvgProvider extends AbstractHafasProvider
final Matcher mDepFine = P_DEPARTURES_FINE.matcher(mDepCoarse.group(2));
if (mDepFine.matches())
{
final Calendar plannedTime = new GregorianCalendar(timeZone());
final Calendar plannedTime = new GregorianCalendar(timeZone);
plannedTime.setTimeInMillis(currentTime.getTimeInMillis());
ParserUtils.parseEuropeanTime(plannedTime, mDepFine.group(1));
@ -223,7 +223,7 @@ public class InvgProvider extends AbstractHafasProvider
final String prognosis = ParserUtils.resolveEntities(mDepFine.group(2));
if (prognosis != null)
{
predictedTime = new GregorianCalendar(timeZone());
predictedTime = new GregorianCalendar(timeZone);
if (prognosis.equals("pünktlich"))
{
predictedTime.setTimeInMillis(plannedTime.getTimeInMillis());

View file

@ -19,7 +19,6 @@ package de.schildbach.pte;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
import de.schildbach.pte.dto.Style;
@ -37,6 +36,7 @@ public class MetProvider extends AbstractEfaProvider
{
super(API_BASE);
setTimeZone("Australia/Melbourne");
setUseRouteIndexAsTripId(false);
setStyles(STYLES);
}
@ -46,12 +46,6 @@ public class MetProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Australia/Melbourne");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -27,7 +27,6 @@ import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -59,6 +58,8 @@ public class SeptaProvider extends AbstractHafasProvider
public SeptaProvider()
{
super(API_BASE + "stboard.exe/en", API_BASE + "ajax-getstop.exe/dny", API_BASE + "query.exe/en", 4);
setTimeZone("EST");
}
public NetworkId id()
@ -66,12 +67,6 @@ public class SeptaProvider extends AbstractHafasProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("EST");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
@ -143,7 +138,7 @@ public class SeptaProvider extends AbstractHafasProvider
private String departuresQueryUri(final String stationId, final int maxDepartures)
{
final Calendar now = new GregorianCalendar(timeZone());
final Calendar now = new GregorianCalendar(timeZone);
final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
uri.append("?input=").append(normalizeStationId(stationId));
@ -214,7 +209,7 @@ public class SeptaProvider extends AbstractHafasProvider
return new QueryDeparturesResult(header, Status.SERVICE_DOWN);
final String location = ParserUtils.resolveEntities(mPageCoarse.group(1));
final Calendar currentTime = new GregorianCalendar(timeZone());
final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear();
ParserUtils.parseAmericanDate(currentTime, mPageCoarse.group(2));
ParserUtils.parseAmericanTime(currentTime, mPageCoarse.group(3));
@ -234,7 +229,7 @@ public class SeptaProvider extends AbstractHafasProvider
final Matcher mDepFine = P_DEPARTURES_FINE.matcher(mDepCoarse.group(2));
if (mDepFine.matches())
{
final Calendar plannedTime = new GregorianCalendar(timeZone());
final Calendar plannedTime = new GregorianCalendar(timeZone);
plannedTime.setTimeInMillis(currentTime.getTimeInMillis());
ParserUtils.parseAmericanTime(plannedTime, mDepFine.group(1));
@ -245,7 +240,7 @@ public class SeptaProvider extends AbstractHafasProvider
final String prognosis = ParserUtils.resolveEntities(mDepFine.group(2));
if (prognosis != null)
{
predictedTime = new GregorianCalendar(timeZone());
predictedTime = new GregorianCalendar(timeZone);
if (prognosis.equals("pünktlich"))
{
predictedTime.setTimeInMillis(plannedTime.getTimeInMillis());

View file

@ -19,7 +19,6 @@ package de.schildbach.pte;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
import de.schildbach.pte.dto.Style;
@ -35,6 +34,7 @@ public class SfProvider extends AbstractEfaProvider
{
super(API_BASE);
setTimeZone("America/Los_Angeles");
setUseRouteIndexAsTripId(false);
setFareCorrectionFactor(0.01f);
setStyles(STYLES);
@ -45,12 +45,6 @@ public class SfProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("America/Los_Angeles");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -219,7 +219,7 @@ public class ShProvider extends AbstractHafasProvider
return new QueryDeparturesResult(header, Status.SERVICE_DOWN);
final String location = ParserUtils.resolveEntities(mHeadCoarse.group(1));
final Calendar currentTime = new GregorianCalendar(timeZone());
final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear();
ParserUtils.parseGermanDate(currentTime, mHeadCoarse.group(2));
ParserUtils.parseEuropeanTime(currentTime, mHeadCoarse.group(3));
@ -239,7 +239,7 @@ public class ShProvider extends AbstractHafasProvider
final Matcher mDepFine = P_DEPARTURES_FINE.matcher(mDepCoarse.group(2));
if (mDepFine.matches())
{
final Calendar plannedTime = new GregorianCalendar(timeZone());
final Calendar plannedTime = new GregorianCalendar(timeZone);
plannedTime.setTimeInMillis(currentTime.getTimeInMillis());
ParserUtils.parseEuropeanTime(plannedTime, mDepFine.group(1));

View file

@ -17,8 +17,6 @@
package de.schildbach.pte;
import java.util.TimeZone;
/**
* @author Andreas Schildbach
*/
@ -31,6 +29,7 @@ public class SydneyProvider extends AbstractEfaProvider
{
super(API_BASE);
setTimeZone("Australia/Sydney");
setUseRouteIndexAsTripId(false);
}
@ -39,12 +38,6 @@ public class SydneyProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Australia/Sydney");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -18,7 +18,6 @@
package de.schildbach.pte;
import java.util.Collection;
import java.util.TimeZone;
import de.schildbach.pte.dto.Product;
@ -33,6 +32,8 @@ public class TfiProvider extends AbstractEfaProvider
public TfiProvider()
{
super(API_BASE);
setTimeZone("Europe/London");
}
public NetworkId id()
@ -40,12 +41,6 @@ public class TfiProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Europe/London");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -19,7 +19,6 @@ package de.schildbach.pte;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
import de.schildbach.pte.dto.Style;
@ -35,6 +34,7 @@ public class TflProvider extends AbstractEfaProvider
{
super(API_BASE);
setTimeZone("Europe/London");
setUseLineRestriction(false);
setStyles(STYLES);
}
@ -44,12 +44,6 @@ public class TflProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Europe/London");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -19,7 +19,6 @@ package de.schildbach.pte;
import java.io.IOException;
import java.util.Collection;
import java.util.TimeZone;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
@ -40,6 +39,8 @@ public class TlemProvider extends AbstractEfaProvider
public TlemProvider()
{
super(API_BASE);
setTimeZone("Europe/London");
}
public NetworkId id()
@ -47,12 +48,6 @@ public class TlemProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Europe/London");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -19,7 +19,6 @@ package de.schildbach.pte;
import java.io.IOException;
import java.util.Collection;
import java.util.TimeZone;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
@ -38,6 +37,7 @@ public class TlswProvider extends AbstractEfaProvider
{
super(API_BASE);
setTimeZone("Europe/London");
setUseRouteIndexAsTripId(false);
}
@ -46,12 +46,6 @@ public class TlswProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Europe/London");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)

View file

@ -18,7 +18,6 @@
package de.schildbach.pte;
import java.util.Collection;
import java.util.TimeZone;
import de.schildbach.pte.dto.Product;
@ -35,6 +34,8 @@ public class TlwmProvider extends AbstractEfaProvider
public TlwmProvider()
{
super(API_BASE);
setTimeZone("Europe/London");
}
public NetworkId id()
@ -42,12 +43,6 @@ public class TlwmProvider extends AbstractEfaProvider
return NETWORK_ID;
}
@Override
protected TimeZone timeZone()
{
return TimeZone.getTimeZone("Europe/London");
}
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)