moved 'canAcceptPoiID' from redundant code to provider parameter

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@579 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-04-29 12:15:14 +00:00
parent 2486f3f0a6
commit 36059cc37e
5 changed files with 21 additions and 37 deletions

View file

@ -67,6 +67,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider
{ {
private final String apiBase; private final String apiBase;
private final String additionalQueryParameter; private final String additionalQueryParameter;
private final boolean canAcceptPoiID;
private final XmlPullParserFactory parserFactory; private final XmlPullParserFactory parserFactory;
public AbstractEfaProvider() public AbstractEfaProvider()
@ -75,6 +76,11 @@ public abstract class AbstractEfaProvider implements NetworkProvider
} }
public AbstractEfaProvider(final String apiBase, final String additionalQueryParameter) public AbstractEfaProvider(final String apiBase, final String additionalQueryParameter)
{
this(apiBase, additionalQueryParameter, false);
}
public AbstractEfaProvider(final String apiBase, final String additionalQueryParameter, final boolean canAcceptPoiID)
{ {
try try
{ {
@ -87,6 +93,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider
this.apiBase = apiBase; this.apiBase = apiBase;
this.additionalQueryParameter = additionalQueryParameter; this.additionalQueryParameter = additionalQueryParameter;
this.canAcceptPoiID = canAcceptPoiID;
} }
protected TimeZone timeZone() protected TimeZone timeZone()
@ -410,16 +417,16 @@ public abstract class AbstractEfaProvider implements NetworkProvider
type = LocationType.STATION; type = LocationType.STATION;
id = Integer.parseInt(stopIdStr); id = Integer.parseInt(stopIdStr);
} }
else if (stopIdStr == null && idStr == null && (lat != 0 || lon != 0))
{
type = LocationType.ADDRESS;
id = 0;
}
else if (poiIdStr != null) else if (poiIdStr != null)
{ {
type = LocationType.POI; type = LocationType.POI;
id = Integer.parseInt(poiIdStr); id = Integer.parseInt(poiIdStr);
} }
else if (stopIdStr == null && idStr == null && (lat != 0 || lon != 0))
{
type = LocationType.ADDRESS;
id = 0;
}
else if (streetIdStr != null) else if (streetIdStr != null)
{ {
type = LocationType.ADDRESS; type = LocationType.ADDRESS;
@ -1888,7 +1895,12 @@ public abstract class AbstractEfaProvider implements NetworkProvider
protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix) protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix)
{ {
if ((location.type == LocationType.POI || location.type == LocationType.ADDRESS) && location.hasLocation()) if (canAcceptPoiID && location.type == LocationType.POI && location.hasId())
{
uri.append("&type_").append(paramSuffix).append("=poiID");
uri.append("&name_").append(paramSuffix).append("=").append(location.id);
}
else if ((location.type == LocationType.POI || location.type == LocationType.ADDRESS) && location.hasLocation())
{ {
uri.append("&type_").append(paramSuffix).append("=coord"); uri.append("&type_").append(paramSuffix).append("=coord");
uri.append("&name_").append(paramSuffix).append("=") uri.append("&name_").append(paramSuffix).append("=")

View file

@ -38,7 +38,7 @@ public class MvvProvider extends AbstractEfaProvider
public MvvProvider() public MvvProvider()
{ {
super(API_BASE, null); super(API_BASE, null, false);
} }
public NetworkId id() public NetworkId id()

View file

@ -67,18 +67,4 @@ public class VmvProvider extends AbstractEfaProvider
{ {
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId, "ISO-8859-1")); return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId, "ISO-8859-1"));
} }
@Override
protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix)
{
if (location.type == LocationType.POI && location.hasId())
{
uri.append("&type_").append(paramSuffix).append("=poiID");
uri.append("&name_").append(paramSuffix).append("=").append(location.id);
}
else
{
super.appendLocation(uri, location, paramSuffix);
}
}
} }

View file

@ -38,7 +38,7 @@ public class VrrProvider extends AbstractEfaProvider
public VrrProvider() public VrrProvider()
{ {
super(API_BASE, null); super(API_BASE, null, false);
} }
public NetworkId id() public NetworkId id()

View file

@ -35,7 +35,7 @@ public class VvsProvider extends AbstractEfaProvider
public VvsProvider() public VvsProvider()
{ {
super(API_BASE, null); super(API_BASE, null, true);
} }
public NetworkId id() public NetworkId id()
@ -67,18 +67,4 @@ public class VvsProvider extends AbstractEfaProvider
{ {
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId, "ISO-8859-1")); return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId, "ISO-8859-1"));
} }
@Override
protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix)
{
if (location.type == LocationType.POI && location.hasId())
{
uri.append("&type_").append(paramSuffix).append("=poiID");
uri.append("&name_").append(paramSuffix).append("=").append(location.id);
}
else
{
super.appendLocation(uri, location, paramSuffix);
}
}
} }