split more places and name

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@742 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-08-16 13:16:50 +00:00
parent a2833ba166
commit ba155714e1

View file

@ -90,19 +90,22 @@ public final class BvgProvider extends AbstractHafasProvider
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
private static final Pattern P_SPLIT_NAME_PAREN = Pattern.compile("(.*?) \\((.{4,}?)\\)(?: \\((U|S|S\\+U)\\))?");
private static final Pattern P_SPLIT_NAME_COMMA = Pattern.compile("([^,]*), ([^,]*)");
@Override @Override
protected String[] splitPlaceAndName(final String name) protected String[] splitPlaceAndName(final String name)
{ {
if (name.endsWith(" (Berlin)")) final Matcher mParen = P_SPLIT_NAME_PAREN.matcher(name);
return new String[] { "Berlin", name.substring(0, name.length() - 9) }; if (mParen.matches())
else if (name.startsWith("Potsdam, ")) {
return new String[] { "Potsdam", name.substring(9) }; final String su = mParen.group(3);
else if (name.startsWith("Cottbus, ")) return new String[] { mParen.group(2), mParen.group(1) + (su != null ? " (" + su + ")" : "") };
return new String[] { "Cottbus", name.substring(9) }; }
else if (name.startsWith("Brandenburg, "))
return new String[] { "Brandenburg", name.substring(13) }; final Matcher mComma = P_SPLIT_NAME_COMMA.matcher(name);
else if (name.startsWith("Frankfurt (Oder), ")) if (mComma.matches())
return new String[] { "Frankfurt (Oder)", name.substring(18) }; return new String[] { mComma.group(1), mComma.group(2) };
return super.splitPlaceAndName(name); return super.splitPlaceAndName(name);
} }