package com.papagiannis.tuberun; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Set; public class StationDetails { private static ArrayList<String> resultsTube = null; static public ArrayList<String> FetchTubeStationsClaims() { if (resultsTube != null) return resultsTube; ArrayList<String> results = new ArrayList<String>(277); results.add("Acton Town"); results.add("Aldgate"); results.add("Alperton"); results.add("Amersham"); results.add("Angel"); results.add("Archway"); results.add("Arnos Grove"); results.add("Arsenal"); results.add("Baker Street"); results.add("Balham"); results.add("Bank"); results.add("Barbican"); results.add("Barking"); results.add("Barkingside"); results.add("Barons Court"); results.add("Bayswater"); results.add("Becontree"); results.add("Belsize Park"); results.add("Bermondsey"); results.add("Bethnal Green"); results.add("Blackfriars"); results.add("Blackhorse Road"); results.add("Bond Street"); results.add("Borough"); results.add("Boston Manor"); results.add("Bounds Green"); results.add("Bow Road"); results.add("Brent Cross"); results.add("Brixton"); results.add("Bromley-by-Bow"); results.add("Buckhurst Hill"); results.add("Burnt Oak"); results.add("Caledonian Road"); results.add("Camden Town"); results.add("Canada Water"); results.add("Canary Wharf"); results.add("Canning Town"); results.add("Cannon Street"); results.add("Canons Park"); results.add("Chalfont & Latimer"); results.add("Chalk Farm"); results.add("Chancery Lane"); results.add("Charing Cross"); results.add("Chesham"); results.add("Chigwell"); results.add("Chiswick Park"); results.add("Chorleywood"); results.add("Clapham Common"); results.add("Clapham North"); results.add("Clapham South"); results.add("Cockfosters"); results.add("Colindale"); results.add("Colliers Wood"); results.add("Covent Garden"); results.add("Croxley"); results.add("Dagenham East"); results.add("Dagenham Heathway"); results.add("Debden"); results.add("Dollis Hill"); results.add("Ealing Broadway"); results.add("Ealing Common"); results.add("Earl's Court"); results.add("East Acton"); results.add("East Finchley"); results.add("East Ham"); results.add("East Putney"); results.add("Eastcote"); results.add("Edgware"); results.add("Edgware Road (Bak)"); results.add("Edgware Road (Cir)"); results.add("Elephant & Castle"); results.add("Elm Park"); results.add("Embankment"); results.add("Epping"); results.add("Euston"); results.add("Euston Square"); results.add("Fairlop"); results.add("Farringdon"); results.add("Finchley Central"); results.add("Finchley Road"); results.add("Finsbury Park"); results.add("Fulham Broadway"); results.add("Gants Hill"); results.add("Gloucester Road"); results.add("Golders Green"); results.add("Goldhawk Road"); results.add("Goodge Street"); results.add("Grange Hill"); results.add("Great Portland Street"); results.add("Green Park"); results.add("Greenford"); results.add("Gunnersbury"); results.add("Hainault"); results.add("Hammersmith (Dis)"); results.add("Hammersmith (H&C)"); results.add("Hampstead"); results.add("Hanger Lane"); results.add("Harlesden"); results.add("Harrow & Wealdstone"); results.add("Harrow-on-the-Hill"); results.add("Hatton Cross"); results.add("Heathrow Terminal 4"); results.add("Heathrow Terminal 5"); results.add("Heathrow Terminals 123"); results.add("Hendon Central"); results.add("High Barnet"); results.add("High Street Kensington"); results.add("Highbury & Islington"); results.add("Highgate"); results.add("Hillingdon"); results.add("Holborn"); results.add("Holland Park"); results.add("Holloway Road"); results.add("Hornchurch"); results.add("Hounslow Central"); results.add("Hounslow East"); results.add("Hounslow West"); results.add("Hyde Park Corner"); results.add("Ickenham"); results.add("Kennington"); results.add("Kensal Green"); results.add("Kensington (Olympia)"); results.add("Kentish Town"); results.add("Kenton"); results.add("Kew Gardens"); results.add("Kilbur"); results.add("Kilburn Park"); results.add("King's Cross St. Pancras"); results.add("Kingsbury"); results.add("Knightsbridge"); results.add("Ladbroke Grove"); results.add("Lambeth North"); results.add("Lancaster Gate"); results.add("Latimer Road"); results.add("Leicester Square"); results.add("Leyton"); results.add("Leytonstone"); results.add("Liverpool Street"); results.add("London Bridge"); results.add("Loughton"); results.add("Maida Vale"); results.add("Manor House"); results.add("Mansion House"); results.add("Marble Arch"); results.add("Marylebone"); results.add("Mile End"); results.add("Mill Hill East"); results.add("Monument"); results.add("Moor Park"); results.add("Moorgate"); results.add("Morden"); results.add("Moor Park"); results.add("Moorgate"); results.add("Morden"); results.add("Mornington Crescent"); results.add("Neasden"); results.add("New Cross"); results.add("New Cross Gate"); results.add("Newbury Park"); results.add("North Acton"); results.add("North Ealing"); results.add("North Greenwich"); results.add("North Harrow"); results.add("North Wembley"); results.add("Northfields"); results.add("Northolt"); results.add("Northwick Park"); results.add("Northwood"); results.add("Northwood Hills"); results.add("Notting Hill Gate"); results.add("Oakwood"); results.add("Old Street"); results.add("Osterley"); results.add("Oval"); results.add("Oxford Circus"); results.add("Paddington"); results.add("Park Royal"); results.add("Parsons Green"); results.add("Perivale"); results.add("Piccadilly Circus"); results.add("Pimlico"); results.add("Pinner"); results.add("Plaistow"); results.add("Preston Road"); results.add("Putney Bridge"); results.add("Queen's Park"); results.add("Queensbury"); results.add("Queensway"); results.add("Ravenscourt Park"); results.add("Rayners Lane"); results.add("Redbridge"); results.add("Regent's Park"); results.add("Richmond"); results.add("Rickmansworth"); results.add("Roding Valley"); results.add("Rotherhithe"); results.add("Royal Oak"); results.add("Ruislip"); results.add("Ruislip Gardens"); results.add("Ruislip Manor"); results.add("Russell Square"); results.add("Seven Sisters"); results.add("Shadwell"); results.add("Shepherd's Bush (Cen)"); results.add("Shepherd's Bush (H&C)"); results.add("Shepherd's Bush Market"); results.add("Sloane Square"); results.add("Snaresbrook"); results.add("South Ealing"); results.add("South Harrow"); results.add("South Kensington"); results.add("South Kenton"); results.add("South Ruislip"); results.add("South Wimbledon"); results.add("South Woodford"); results.add("Southfields"); results.add("Southgate"); results.add("Southwark"); results.add("St. James's Park"); results.add("St. John's Wood"); results.add("St. Paul's"); results.add("Stamford Brook"); results.add("Stanmore"); results.add("Stepney Green"); results.add("Stockwell"); results.add("Stonebridge Park"); results.add("Stratford"); results.add("Sudbury Hill"); results.add("Sudbury Town"); results.add("Surrey Quays"); results.add("Swiss Cottage"); results.add("Temple"); results.add("Theydon Bois"); results.add("Tooting Bec"); results.add("Tooting Broadway"); results.add("Tottenham Court Road"); results.add("Tottenham Hale"); results.add("Totteridge & Whetstone"); results.add("Tower Hill"); results.add("Tufnell Park"); results.add("Turnham Green"); results.add("Turnpike Lane"); results.add("Upminster"); results.add("Upminster Bridge"); results.add("Upney"); results.add("Upton Park"); results.add("Uxbridge"); results.add("Vauxhall"); results.add("Victoria"); results.add("Walthamstow Central"); results.add("Wanstead"); results.add("Wapping"); results.add("Warren Street"); results.add("Warwick Avenue"); results.add("Waterloo"); results.add("Watford"); results.add("Wembley Central"); results.add("Wembley Park"); results.add("West Acton"); results.add("West Brompton"); results.add("West Finchley"); results.add("West Ham"); results.add("West Hampstead"); results.add("West Harrow"); results.add("West Kensington"); results.add("West Ruislip"); results.add("Westbourne Park"); results.add("Westminster"); results.add("White City"); results.add("Whitechapel"); results.add("Willesden Green"); results.add("Willesden Junction"); results.add("Wimbledon"); results.add("Wimbledon Park"); results.add("Wood Green"); results.add("Wood Lane"); results.add("Woodford"); results.add("Woodside Park"); resultsTube = results; return results; } private static ArrayList<String> resultsDLR = null; public static ArrayList<String> FetchDLRStationsClaims() { if (resultsDLR != null) return resultsDLR; ArrayList<String> results = new ArrayList<String>(40); results.add("All Saints"); results.add("Bank"); results.add("Beckton"); results.add("Beckton Park"); results.add("Blackwall"); results.add("Bow Church"); results.add("Canary Wharf"); results.add("Canning Town"); results.add("Crossharbour"); results.add("Custom House"); results.add("Cutty Sark"); results.add("Cyprus"); results.add("Deptford Bridge"); results.add("Devons Road"); results.add("East India"); results.add("Elverson Road"); results.add("Gallions Reach"); results.add("Greenwich"); results.add("Heron Quays"); results.add("Island Gardens"); results.add("King George V"); results.add("Langdon Park"); results.add("Lewisham"); results.add("Limehouse"); results.add("London City Airport"); results.add("Mudchute"); results.add("Pontoon Dock"); results.add("Poplar"); results.add("Prince Regent"); results.add("Pudding Mill Lane"); results.add("Royal Albert"); results.add("Royal Victoria"); results.add("Shadwell"); results.add("South Quay"); results.add("Stratford"); results.add("Tower Gateway"); results.add("Westferry"); results.add("West India Quay"); results.add("West Silvertown"); results.add("Woolwich Arsenal"); resultsDLR = results; return results; } private static ArrayList<String> resultsOverground = null; public static ArrayList<String> FetchOvergroundStationsClaims() { if (resultsOverground != null) return resultsOverground; ArrayList<String> results = new ArrayList<String>(90); results.add("Acton Central"); results.add("Anerley"); results.add("Barking"); results.add("Blackhorse Road"); results.add("Brockley"); results.add("Brondesbury"); results.add("Brondesbury Park"); results.add("Bushey"); results.add("Caledonian Road and Barnsbury"); results.add("Camden Road"); results.add("Canada Water"); results.add("Canonbury"); results.add("Carpenders Park"); results.add("Clapham Junction"); results.add("Crouch Hill"); results.add("Crystal Palace"); results.add("Dalston Junction"); results.add("Dalston Kingsland"); results.add("Euston"); results.add("Finchley Road and Frognal"); results.add("Forest Hill"); results.add("Gospel Oak"); results.add("Gunnersbury"); results.add("Hackney Central"); results.add("Hackney Wick"); results.add("Haggerston"); results.add("Hampstead Heath"); results.add("Harlesden"); results.add("Harringay Green Lanes"); results.add("Harrow & Wealdstone"); results.add("Hatch End"); results.add("Headstone Lane"); results.add("Highbury & Islington"); results.add("Homerton"); results.add("Honor Oak Park"); results.add("Hoxton"); results.add("Imperial Wharf"); results.add("Kensal Green"); results.add("Kensal Rise"); results.add("Kensington Olympia"); results.add("Kentish Town West"); results.add("Kenton"); results.add("Kew Gardens"); results.add("Kilburn High Road"); results.add("Leyton Midland Road"); results.add("Leytonstone High Road"); results.add("New Cross"); results.add("New Cross Gate"); results.add("North Wembley"); results.add("Norwood Junction"); results.add("Penge West"); results.add("Queen's Park"); results.add("Richmond"); results.add("Rotherhithe"); results.add("Shadwell"); results.add("Shepherd's Bush"); results.add("Shoreditch High Street"); results.add("South Acton"); results.add("South Hampstead"); results.add("South Kenton"); results.add("South Tottenham"); results.add("Stonebridge Park"); results.add("Stratford"); results.add("Surrey Quays"); results.add("Sydenham"); results.add("Upper Holloway"); results.add("Walthamstow Queens Road"); results.add("Wanstead Park"); results.add("Wapping"); results.add("Watford High Street"); results.add("Watford Junction"); results.add("Wembley Central"); results.add("West Brompton"); results.add("West Croydon"); results.add("West Hampstead"); results.add("Whitechapel"); results.add("Willesden Junction"); results.add("Woodgrange Park"); resultsOverground = results; return results; } static public HashMap<String, String> FetchStations(LineType line) { HashMap<String, String> res = new HashMap<String, String>(); switch (line) { case DLR: res.put("Abbey Road" , "abr"); res.put("All Saints" , "als"); res.put("Bank","ban"); res.put("Beckton","bec"); res.put("Beckton Park","bep"); res.put("Blackwall","bla"); res.put("Bow Church","boc"); res.put("Canary Wharf","caw"); res.put("Canning Town","cat"); res.put("Crossharbour","cro"); res.put("Custom House","cuh"); res.put("Cutty Sark","cus"); res.put("Cyprus","cyp"); res.put("Deptford Bridge","deb"); res.put("Devons Road","der"); res.put("East India","eai"); res.put("Elverson Road","elr"); res.put("Gallions Reach","gar"); res.put("Greenwich","gre"); res.put("Heron Quays","heq"); res.put("Island Gardens","isg"); res.put("King George V","kgv"); res.put("Langdon Park","lap"); res.put("Lewisham","lew"); res.put("Limehouse","lim"); res.put("London City Airport","lca"); res.put("Mudchute","mud"); res.put("Poplar","pop"); res.put("Pontoon Dock","pdk"); res.put("Prince Regent","prr"); res.put("Pudding Mill Lane","pml"); res.put("Royal Albert","roa"); res.put("Royal Victoria","rov"); res.put("Shadwell","sha"); res.put("South Quay","soq"); res.put("Stratford","str"); res.put("Stratford High Street","shs"); res.put("Stratford International","sti"); res.put("Tower Gateway","tog"); res.put("Westferry","wes"); res.put("Westham","weh"); res.put("West India Quay","wiq"); res.put("West Silvertown","wst"); res.put("Woolwich Arsenal","woa"); break; case PICACIDILY: res.put("Acton Town","ACT"); res.put("Alperton","ALP"); res.put("Gloucester Road","GRD"); res.put("Finsbury Park","FPK"); res.put("Eastcote","ETE"); res.put("Earl's Court","ECT"); res.put("Ealing Common","ECM"); res.put("Covent Garden","COV"); res.put("Cockfosters","CFS"); res.put("Caledonian Road","CRD"); res.put("Bounds Green","BGR"); res.put("Boston Manor","BOS"); res.put("Barons Court","BCT"); res.put("Arsenal","ARL"); res.put("Arnos Grove","AGR"); res.put("Green Park","GPK"); res.put("Hammersmith","HMD"); res.put("Hatton Cross","HTX"); res.put("Heathrow Terminal 4","HRF"); res.put("Heathrow Terminal 5","HRV"); res.put("Heathrow Terminals 1 2 3","HRC"); res.put("Hillingdon","HDN"); res.put("Holborn","HOL"); res.put("Holloway Road","HRD"); res.put("Hounslow Central","HNC"); res.put("Hounslow East","HNE"); res.put("Hounslow West","HNW"); res.put("Hyde Park Corner","HPC"); res.put("Ickenham","ICK"); res.put("King's Cross St. Pancras","KXX"); res.put("Knightsbridge","KNB"); res.put("Leicester Square","LSQ"); res.put("Manor House","MNR"); res.put("North Ealing","NEL"); res.put("Northfields","NFD"); res.put("Oakwood","OAK"); res.put("Osterley","OST"); res.put("Park Royal","PRY"); res.put("Piccadilly Circus","PIC"); res.put("Rayners Lane","RLN"); res.put("Ruislip","RUI"); res.put("Ruislip Manor","RUM"); res.put("Russell Square","RSQ"); res.put("South Ealing","SEL"); res.put("South Harrow","SHR"); res.put("South Kensington","SKN"); res.put("Southgate","SGT"); res.put("Sudbury Hill","SHL"); res.put("Sudbury Town","STN"); res.put("Turnham Green","TGR"); res.put("Turnpike Lane","TPL"); res.put("Uxbridge","UXB"); res.put("Wood Green","WGN"); break; case BAKERLOO: res.put("Baker Street","BST"); res.put("Charing Cross","CHX"); res.put("Edgware Road (Bakerloo)","ERB"); res.put("Elephant & Castle","ELE"); res.put("Embankment","EMB"); res.put("Harlesden","HSD"); res.put("Harrow & Wealdstone","HAW"); res.put("Kensal Green","KGN"); res.put("Kenton","KNT"); res.put("Kilburn Park","KPK"); res.put("Lambeth North","LAM"); res.put("Maida Vale","MDV"); res.put("Marylebone","MYB"); res.put("North Wembley","NWM"); res.put("Oxford Circus","OXC"); res.put("Paddington","PAD"); res.put("Piccadilly Circus","PIC"); res.put("Queen's Park","QPK"); res.put("Regent's Park","RPK"); res.put("South Kenton","SKT"); res.put("Stonebridge Park","SPK"); res.put("Warwick Avenue","WAR"); res.put("Waterloo","WLO"); res.put("Wembley Central","WEM"); res.put("Willesden Junction","WJN"); break; case CENTRAL: res.put("Bank","BNK"); res.put("Barkingside","BDE"); res.put("Bethnal Green","BNG"); res.put("Bond Street","BDS"); res.put("Buckhurst Hill","BHL"); res.put("Chancery Lane","CYL"); res.put("Chigwell","CHG"); res.put("Debden","DEB"); res.put("Ealing Broadway","EBY"); res.put("East Acton","EAC"); res.put("Epping","EPP"); res.put("Fairlop","FLP"); res.put("Gants Hill","GHL"); res.put("Grange Hill","GRH"); res.put("Greenford","GFD"); res.put("Hainault","HAI"); res.put("Hanger Lane","HLN"); res.put("Holborn","HOL"); res.put("Holland Park","HPK"); res.put("Lancaster Gate","LAN"); res.put("Leyton","LEY"); res.put("Leytonstone","LYS"); res.put("Liverpool Street","LST"); res.put("Loughton","LTN"); res.put("Marble Arch","MAR"); res.put("Mile End","MLE"); res.put("Newbury Park","NEP"); res.put("North Acton","NAC"); res.put("Northolt","NHT"); res.put("Notting Hill Gate","NHG"); res.put("Oxford Circus","OXC"); res.put("Perivale","PER"); res.put("Queensway","QWY"); res.put("Redbridge","RED"); res.put("Roding Valley","ROD"); res.put("Ruislip Gardens","RUG"); res.put("Shepherd's Bush","SBC"); res.put("Snaresbrook","SNB"); res.put("South Ruislip","SRP"); res.put("South Woodford","SWF"); res.put("St. Paul's","STP"); res.put("Stratford","SFD"); res.put("Theydon Bois","THB"); res.put("Tottenham Court Road","TCR"); res.put("Wanstead","WAN"); res.put("West Acton","WAC"); res.put("West Ruislip","WRP"); res.put("White City","WCT"); res.put("Woodford","WFD"); break; case CIRCLE: res.put("Aldgate","ALD"); //res.put("Aldgate East"]="ALE"); res.put("Baker Street","BST"); res.put("Barbican","BAR"); //res.put("Barking"]="BKG"); res.put("Bayswater","BAY"); res.put("Blackfriars","BLF"); //res.put("Bow Road"]="BWR"); //res.put("Bromley-by-Bow"]="BBB"); res.put("Cannon Street","CST"); //res.put("East Ham"]="EHM"); res.put("Edgware Road (H & C)","ERD"); res.put("Embankment","EMB"); res.put("Euston Square","ESQ"); res.put("Farringdon","FAR"); res.put("Gloucester Road","GRD"); res.put("Great Portland Street","GPS"); res.put("Hammersmith (Circle and H&C)","HMS"); res.put("High Street Kensington","HST"); res.put("King's Cross St. Pancras","KXX"); //res.put("Ladbroke Grove"]="LBG"); res.put("Liverpool Street","LST"); res.put("Mansion House","MAN"); //res.put("Mile End"]="MLE"); res.put("Monument","MON"); res.put("Moorgate","MGT"); res.put("Notting Hill Gate","NHG"); res.put("Paddington Circle","PADc"); res.put("Paddington H & C","PADs"); //res.put("Plaistow"]="PLW"); //res.put("Royal Oak"]="ROA"); res.put("Sloane Square","SSQ"); res.put("South Kensington","SKN"); res.put("St. James's Park","SJP"); //res.put("Stepney Green"]="STG"); res.put("Temple","TEM"); res.put("Tower Hill","THL"); //res.put("Upton Park"]="UPK"); res.put("Victoria","VIC"); //res.put("West Ham"]="WHM"); //res.put("Westbourne Park"]="WBP"); res.put("Westminster","WMS"); res.put("Whitechapel","WCL"); break; case DISTRICT: res.put("Acton Town","ACT"); res.put("Aldgate East","ALE"); res.put("Barking","BKG"); res.put("Barons Court","BCT"); res.put("Bayswater","BAY"); res.put("Becontree","BEC"); res.put("Blackfriars","BLF"); res.put("Bow Road","BWR"); res.put("Bromley-by-Bow","BBB"); res.put("Cannon Street","CST"); res.put("Chiswick Park","CHP"); res.put("Dagenham East","DGE"); res.put("Dagenham Heathway","DGH"); res.put("Ealing Broadway","EBY"); res.put("Ealing Common","ECM"); res.put("Earl's Court","ECT"); res.put("East Ham","EHM"); res.put("East Putney","EPY"); res.put("Edgware Road (H & C)","ERD"); res.put("Elm Park","EPK"); res.put("Embankment","EMB"); res.put("Fulham Broadway","FBY"); res.put("Gloucester Road","GRD"); res.put("Gunnersbury","GUN"); res.put("Hammersmith (District and Picc)","HMD"); res.put("High Street Kensington","HST"); res.put("Hornchurch","HCH"); res.put("Kew Gardens","KEW"); res.put("Mansion House","MAN"); res.put("Mile End","MLE"); res.put("Monument","MON"); res.put("Notting Hill Gate","NHG"); res.put("Kensington (Olympia)","OLY"); res.put("Paddington","PAD"); res.put("Parsons Green","PGR"); res.put("Plaistow","PLW"); res.put("Putney Bridge","PUT"); res.put("Ravenscourt Park","RCP"); res.put("Richmond","RMD"); res.put("Sloane Square","SSQ"); res.put("Southfields","SFS"); res.put("South Kensington","SKN"); res.put("St. James's Park","SJP"); res.put("Stamford Brook","STB"); res.put("Stepney Green","STG"); res.put("Temple","TEM"); res.put("Tower Hill","THL"); res.put("Turnham Green","TGR"); res.put("Upminster","UPM"); res.put("Upminster Bridge","UPB"); res.put("Upney","UPY"); res.put("Upton Park","UPK"); res.put("Victoria","VIC"); res.put("West Brompton","WBT"); res.put("West Ham","WHM"); res.put("West Kensington","WKN"); res.put("Westminster","WMS"); res.put("Whitechapel","WCL"); res.put("Wimbledon","WDN"); res.put("Wimbledon Park","WMP"); break; case HAMMERSMITH: //res.put("Aldgate"]="ALD"); res.put("Aldgate East","ALE"); res.put("Baker Street","BST"); res.put("Barbican","BAR"); res.put("Barking","BKG"); //res.put("Bayswater"]="BAY"); res.put("Blackfriars","BLF"); res.put("Bow Road","BWR"); res.put("Bromley-by-Bow","BBB"); //res.put("Cannon Street"]="CST"); res.put("East Ham","EHM"); res.put("Edgware Road (H & C)","ERD"); //res.put("Embankment"]="EMB"); res.put("Euston Square","ESQ"); res.put("Farringdon","FAR"); res.put("Great Portland Street","GPS"); res.put("Hammersmith (Circle and H&C)","HMS"); //res.put("High Street Kensington"]="HST"); res.put("King's Cross St. Pancras","KXX"); res.put("Ladbroke Grove","LBG"); res.put("Liverpool Street","LST"); //res.put("Mansion House"]="MAN"); res.put("Mile End","MLE"); //res.put("Monument"]="MON"); res.put("Moorgate","MGT"); //res.put("Notting Hill Gate"]="NHG"); res.put("Paddington Circle","PADc"); res.put("Paddington H & C","PADs"); res.put("Plaistow","PLW"); res.put("Royal Oak","ROA"); //res.put("Sloane Square"]="SSQ"); //res.put("South Kensington"]="SKN"); //res.put("St. James's Park"]="SJP"); res.put("Stepney Green","STG"); //res.put("Temple"]="TEM"); //res.put("Tower Hill"]="THL"); res.put("Upton Park","UPK"); //res.put("Victoria"]="VIC"); res.put("West Ham","WHM"); res.put("Westbourne Park","WBP"); //res.put("Westminster"]="WMS"); res.put("Whitechapel","WCL"); break; case JUBILEE: res.put("Baker Street","BST"); res.put("Bermondsey","BER"); res.put("Bond Street","BDS"); res.put("Canada Water","CWR"); res.put("Canary Wharf","CWF"); res.put("Canning Town","CNT"); res.put("Canons Park","CPK"); //res.put("Charing Cross"]="CHX"); res.put("Dollis Hill","DHL"); res.put("Finchley Road","FRD"); res.put("Green Park","GPK"); res.put("Kilburn","KIL"); res.put("Kingsbury","KBY"); res.put("London Bridge","LON"); res.put("Neasden","NEA"); res.put("North Greenwich","NGW"); res.put("Queensbury","QBY"); res.put("Southwark","SWK"); res.put("St. John's Wood","SJW"); res.put("Stanmore","STA"); res.put("Stratford","SFD"); res.put("Swiss Cottage","SWC"); res.put("Waterloo","WLO"); res.put("Wembley Park","WPK"); res.put("West Ham","WHM"); res.put("West Hampstead","WHD"); res.put("Westminster","WMS"); res.put("Willesden Green","WLG"); break; case NORTHERN: res.put("Angel","ANG"); res.put("Archway","ARC"); res.put("Balham","BAL"); res.put("Bank","BNK"); res.put("Belsize Park","BPK"); res.put("Borough","BOR"); res.put("Brent Cross","BTX"); res.put("Burnt Oak","BUR"); res.put("Camden Town","CTN"); res.put("Chalk Farm","CHF"); res.put("Charing Cross","CHX"); res.put("Clapham Common","CPC"); res.put("Clapham North","CPN"); res.put("Clapham South","CPS"); res.put("Colindale","COL"); res.put("Colliers Wood","CLW"); res.put("East Finchley","EFY"); res.put("Edgware","EDG"); res.put("Elephant & Castle","ELE"); res.put("Embankment","EMB"); res.put("Euston","EUS"); res.put("Finchley Central","FYC"); res.put("Golders Green","GGR"); res.put("Goodge Street","GST"); res.put("Hampstead","HMP"); res.put("Hendon Central","HND"); res.put("High Barnet","HBT"); res.put("Highgate","HIG"); res.put("Kennington","KEN"); res.put("Kentish Town","KTN"); res.put("King's Cross St. Pancras","KXX"); res.put("Leicester Square","LSQ"); res.put("London Bridge","LON"); res.put("Mill Hill East","MHE"); res.put("Moorgate","MGT"); res.put("Morden","MOR"); res.put("Mornington Crescent","MCR"); res.put("Old Street","OLD"); res.put("Oval","OVL"); res.put("South Wimbledon","SWM"); res.put("Stockwell","STK"); res.put("Tooting Bec","TBE"); res.put("Tooting Broadway","TBY"); res.put("Tottenham Court Road","TCR"); res.put("Totteridge and Whetstone","TOT"); res.put("Tufnell Park","TPK"); res.put("Warren Street","WST"); res.put("Waterloo","WLO"); res.put("West Finchley","WFY"); res.put("Woodside Park","WSP"); break; case VICTORIA: res.put("Blackhorse Road","BHR"); res.put("Brixton","BRX"); res.put("Euston","EUS"); res.put("Finsbury Park","FPK"); res.put("Green Park","GPK"); res.put("Highbury & Islington","HBY"); res.put("King's Cross St. Pancras","KXX"); res.put("Oxford Circus","OXC"); res.put("Pimlico","PIM"); res.put("Seven Sisters","SVS"); res.put("Stockwell","STK"); res.put("Tottenham Hale","TTH"); res.put("Vauxhall","VUX"); res.put("Victoria","VIC"); res.put("Walthamstow Central","WAL"); res.put("Warren Street","WST"); break; case WATERLOO: res.put("Bank","BNK"); res.put("Waterloo","WLO"); break; case METROPOLITAN: res.put("Aldgate","ALD"); res.put("Amersham","AME"); res.put("Baker Street","BST"); res.put("Barbican","BAR"); res.put("Chalfont & Latimer","CLF"); res.put("Chorleywood","CWD"); res.put("Croxley","CRX"); res.put("Eastcote","ETE"); res.put("Euston Square","ESQ"); res.put("Farringdon","FAR"); res.put("Finchley Road","FRD"); res.put("Great Portland Street","GPS"); res.put("Harrow-on-the-Hill","HOH"); res.put("Hillingdon","HDN"); res.put("Ickenham","ICK"); res.put("King's Cross St. Pancras","KXX"); res.put("Liverpool Street","LST"); res.put("Moor Park","MPK"); res.put("Moorgate","MGT"); res.put("North Harrow","NHR"); res.put("Northwick Park","NWP"); res.put("Northwood","NWD"); res.put("Northwood Hills","NWH"); res.put("Pinner","PIN"); res.put("Rayners Lane","RLN"); res.put("Rickmansworth","RKY"); res.put("Ruislip","RUI"); res.put("Ruislip Manor","RUM"); res.put("Uxbridge","UXB"); res.put("Watford","WAT"); res.put("Wembley Park","WPK"); res.put("West Harrow","WHR"); res.put("Whitechapel","WCL"); break; } return res; } static private boolean containsStation(LineType line, String station_nice) { HashMap<String, String> h = FetchStations(line); Set<String> s=h.keySet(); boolean res=s.contains(station_nice); return res; } static public ArrayList<LineType> FetchLinesForStation(String station_nice) { ArrayList<LineType> result = new ArrayList<LineType>(); if (containsStation(LineType.BAKERLOO, station_nice)) result.add(LineType.BAKERLOO); if (containsStation(LineType.CENTRAL, station_nice)) result.add(LineType.CENTRAL); if (containsStation(LineType.CIRCLE, station_nice)) result.add(LineType.CIRCLE); if (containsStation(LineType.DISTRICT, station_nice)) result.add(LineType.DISTRICT); if (containsStation(LineType.DLR, station_nice)) result.add(LineType.DLR); if (containsStation(LineType.HAMMERSMITH, station_nice)) result.add(LineType.HAMMERSMITH); if (containsStation(LineType.JUBILEE, station_nice)) result.add(LineType.JUBILEE); if (containsStation(LineType.METROPOLITAN, station_nice)) result.add(LineType.METROPOLITAN); if (containsStation(LineType.NORTHERN, station_nice)) result.add(LineType.NORTHERN); if (containsStation(LineType.OVERGROUND, station_nice)) result.add(LineType.OVERGROUND); if (containsStation(LineType.PICACIDILY, station_nice)) result.add(LineType.PICACIDILY); if (containsStation(LineType.VICTORIA, station_nice)) result.add(LineType.VICTORIA); if (containsStation(LineType.WATERLOO, station_nice)) result.add(LineType.WATERLOO); return result; } private static HashMap<String,List<LineType>> stationLinesWikipedia=null; public static HashMap<String,List<LineType>> getStationLinesWikipedia() { if (stationLinesWikipedia!=null) return stationLinesWikipedia; //compiled at 27/3/2012 from Wikipedia HashMap<String,List<LineType>> result = new HashMap<String, List<LineType>>(); result.put("Acton Town", Arrays.asList(LineType.DISTRICT, LineType.PICACIDILY)); result.put("Aldgate", Arrays.asList(LineType.METROPOLITAN, LineType.CIRCLE)); result.put("Aldgate East", Arrays.asList(LineType.HAMMERSMITH, LineType.DISTRICT)); result.put("Alperton", Arrays.asList(LineType.PICACIDILY)); result.put("Amersham", Arrays.asList(LineType.METROPOLITAN )); result.put("Angel", Arrays.asList(LineType.NORTHERN )); result.put("Archway", Arrays.asList(LineType.NORTHERN )); result.put("Arnos Grove", Arrays.asList(LineType.PICACIDILY )); result.put("Arsenal", Arrays.asList(LineType.PICACIDILY )); result.put("Baker Street", Arrays.asList(LineType.METROPOLITAN, LineType.BAKERLOO, LineType.CIRCLE, LineType.JUBILEE, LineType.HAMMERSMITH )); result.put("Balham", Arrays.asList(LineType.NORTHERN )); result.put("Bank", Arrays.asList(LineType.WATERLOO, LineType.NORTHERN, LineType.CENTRAL )); result.put("Barbican", Arrays.asList(LineType.METROPOLITAN, LineType.CIRCLE, LineType.HAMMERSMITH )); result.put("Barking", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Barkingside", Arrays.asList(LineType.CENTRAL )); result.put("Barons Court", Arrays.asList(LineType.PICACIDILY, LineType.DISTRICT )); result.put("Bayswater", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Becontree", Arrays.asList(LineType.DISTRICT )); result.put("Belsize Park", Arrays.asList(LineType.NORTHERN )); result.put("Bermondsey", Arrays.asList(LineType.JUBILEE )); result.put("Bethnal Green", Arrays.asList(LineType.CENTRAL )); result.put("Blackfriars", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Blackhorse Road", Arrays.asList(LineType.VICTORIA )); result.put("Bond Street", Arrays.asList(LineType.CENTRAL, LineType.JUBILEE )); result.put("Borough", Arrays.asList(LineType.NORTHERN )); result.put("Boston Manor", Arrays.asList(LineType.PICACIDILY )); result.put("Bounds Green", Arrays.asList(LineType.PICACIDILY )); result.put("Bow Road", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Brent Cross", Arrays.asList(LineType.NORTHERN )); result.put("Brixton", Arrays.asList(LineType.VICTORIA )); result.put("Bromley-by-Bow", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Buckhurst Hill", Arrays.asList(LineType.CENTRAL )); result.put("Burnt Oak", Arrays.asList(LineType.NORTHERN )); result.put("Caledonian Road", Arrays.asList(LineType.PICACIDILY )); result.put("Camden Town", Arrays.asList(LineType.NORTHERN )); result.put("Canada Water", Arrays.asList(LineType.JUBILEE )); result.put("Canary Wharf", Arrays.asList(LineType.JUBILEE )); result.put("Canning Town", Arrays.asList(LineType.JUBILEE )); result.put("Cannon Street", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Canons Park", Arrays.asList(LineType.JUBILEE )); result.put("Chalfont & Latimer", Arrays.asList(LineType.METROPOLITAN )); result.put("Chalk Farm", Arrays.asList(LineType.NORTHERN )); result.put("Chancery Lane", Arrays.asList(LineType.CENTRAL )); result.put("Charing Cross", Arrays.asList(LineType.BAKERLOO, LineType.NORTHERN )); result.put("Chesham", Arrays.asList(LineType.METROPOLITAN )); result.put("Chigwell", Arrays.asList(LineType.CENTRAL )); result.put("Chiswick Park", Arrays.asList(LineType.DISTRICT )); result.put("Chorleywood", Arrays.asList(LineType.METROPOLITAN )); result.put("Clapham Common", Arrays.asList(LineType.NORTHERN )); result.put("Clapham North", Arrays.asList(LineType.NORTHERN )); result.put("Clapham South", Arrays.asList(LineType.NORTHERN )); result.put("Cockfosters", Arrays.asList(LineType.PICACIDILY )); result.put("Colindale", Arrays.asList(LineType.NORTHERN )); result.put("Colliers Wood", Arrays.asList(LineType.NORTHERN )); result.put("Covent Garden", Arrays.asList(LineType.PICACIDILY )); result.put("Croxley", Arrays.asList(LineType.METROPOLITAN )); result.put("Dagenham East", Arrays.asList(LineType.DISTRICT )); result.put("Dagenham Heathway", Arrays.asList(LineType.DISTRICT )); result.put("Debden", Arrays.asList(LineType.CENTRAL )); result.put("Dollis Hill", Arrays.asList(LineType.JUBILEE )); result.put("Ealing Broadway", Arrays.asList(LineType.DISTRICT, LineType.CENTRAL )); result.put("Ealing Common", Arrays.asList(LineType.DISTRICT, LineType.PICACIDILY )); result.put("Earl's Court", Arrays.asList(LineType.DISTRICT, LineType.PICACIDILY )); result.put("East Acton", Arrays.asList(LineType.CENTRAL )); result.put("East Finchley", Arrays.asList(LineType.NORTHERN )); result.put("East Ham", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("East Putney", Arrays.asList(LineType.DISTRICT )); result.put("Eastcote", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Edgware", Arrays.asList(LineType.NORTHERN )); result.put("Edgware Road", Arrays.asList(LineType.BAKERLOO, LineType.HAMMERSMITH, LineType.DISTRICT, LineType.CENTRAL )); result.put("Elephant & Castle", Arrays.asList(LineType.NORTHERN, LineType.BAKERLOO )); result.put("Elm Park", Arrays.asList(LineType.DISTRICT )); result.put("Embankment", Arrays.asList(LineType.DISTRICT, LineType.BAKERLOO, LineType.NORTHERN, LineType.CIRCLE )); result.put("Epping", Arrays.asList(LineType.CENTRAL )); result.put("Euston", Arrays.asList(LineType.NORTHERN, LineType.VICTORIA )); result.put("Euston Square", Arrays.asList(LineType.METROPOLITAN, LineType.CIRCLE, LineType.HAMMERSMITH )); result.put("Fairlop", Arrays.asList(LineType.CENTRAL )); result.put("Farringdon", Arrays.asList(LineType.METROPOLITAN, LineType.CIRCLE, LineType.HAMMERSMITH )); result.put("Finchley Central", Arrays.asList(LineType.NORTHERN )); result.put("Finchley Road", Arrays.asList(LineType.METROPOLITAN, LineType.JUBILEE )); result.put("Finsbury Park", Arrays.asList(LineType.PICACIDILY, LineType.VICTORIA )); result.put("Fulham Broadway", Arrays.asList(LineType.DISTRICT )); result.put("Gants Hill", Arrays.asList(LineType.CENTRAL )); result.put("Gloucester Road", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE, LineType.PICACIDILY)); result.put("Golders Green", Arrays.asList(LineType.NORTHERN )); result.put("Goldhawk Road", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Goodge Street", Arrays.asList(LineType.NORTHERN )); result.put("Grange Hill", Arrays.asList(LineType.CENTRAL )); result.put("Great Portland Street", Arrays.asList(LineType.METROPOLITAN, LineType.CIRCLE, LineType.HAMMERSMITH)); result.put("Greenford", Arrays.asList(LineType.CENTRAL )); result.put("Green Park", Arrays.asList(LineType.PICACIDILY, LineType.VICTORIA, LineType.JUBILEE )); result.put("Gunnersbury", Arrays.asList(LineType.DISTRICT )); result.put("Hainault", Arrays.asList(LineType.CENTRAL )); result.put("Hammersmith", Arrays.asList(LineType.DISTRICT, LineType.PICACIDILY, LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Hampstead", Arrays.asList(LineType.NORTHERN )); result.put("Hanger Lane", Arrays.asList(LineType.CENTRAL )); result.put("Harlesden", Arrays.asList(LineType.BAKERLOO )); result.put("Harrow & Wealdstone", Arrays.asList(LineType.BAKERLOO )); result.put("Harrow-on-the-Hill", Arrays.asList(LineType.METROPOLITAN )); result.put("Hatton Cross", Arrays.asList(LineType.PICACIDILY )); result.put("Heathrow Terminals 1 2 3", Arrays.asList(LineType.PICACIDILY )); result.put("Heathrow Terminal 4", Arrays.asList(LineType.PICACIDILY )); result.put("Heathrow Terminal 5", Arrays.asList(LineType.PICACIDILY )); result.put("Hendon Central", Arrays.asList(LineType.NORTHERN )); result.put("High Barnet", Arrays.asList(LineType.NORTHERN )); result.put("Highbury & Islington", Arrays.asList(LineType.VICTORIA )); result.put("Highgate", Arrays.asList(LineType.NORTHERN )); result.put("High Street Kensington", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Hillingdon", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Holborn", Arrays.asList(LineType.CENTRAL, LineType.PICACIDILY )); result.put("Holland Park", Arrays.asList(LineType.CENTRAL )); result.put("Holloway Road", Arrays.asList(LineType.PICACIDILY )); result.put("Hornchurch", Arrays.asList(LineType.DISTRICT )); result.put("Hounslow Central", Arrays.asList(LineType.PICACIDILY )); result.put("Hounslow East", Arrays.asList(LineType.PICACIDILY )); result.put("Hounslow West", Arrays.asList(LineType.PICACIDILY )); result.put("Hyde Park Corner", Arrays.asList(LineType. PICACIDILY)); result.put("Ickenham", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Kennington", Arrays.asList(LineType.NORTHERN )); result.put("Kensal Green", Arrays.asList(LineType.BAKERLOO )); result.put("Kensington (Olympia)", Arrays.asList(LineType.DISTRICT )); result.put("Kentish Town", Arrays.asList(LineType.NORTHERN )); result.put("Kenton", Arrays.asList(LineType.BAKERLOO )); result.put("Kew Gardens", Arrays.asList(LineType.DISTRICT )); result.put("Kilburn", Arrays.asList(LineType.JUBILEE )); result.put("Kilburn Park", Arrays.asList(LineType.BAKERLOO )); result.put("Kingsbury", Arrays.asList(LineType.JUBILEE )); result.put("King's Cross St. Pancras", Arrays.asList(LineType.METROPOLITAN, LineType.NORTHERN, LineType.PICACIDILY, LineType.CIRCLE, LineType.VICTORIA, LineType.HAMMERSMITH)); result.put("Knightsbridge", Arrays.asList(LineType.PICACIDILY )); result.put("Ladbroke Grove", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Lamberth North", Arrays.asList(LineType.BAKERLOO )); result.put("Lancaster Gate", Arrays.asList(LineType.CENTRAL )); result.put("Latimer Road", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE)); result.put("Leicester Square", Arrays.asList(LineType.PICACIDILY, LineType.NORTHERN )); result.put("Leyton", Arrays.asList(LineType.CENTRAL )); result.put("Leytonstone", Arrays.asList(LineType.CENTRAL )); result.put("Liverpool Street", Arrays.asList(LineType.METROPOLITAN, LineType.CENTRAL, LineType.CIRCLE, LineType.HAMMERSMITH )); result.put("London Bridge", Arrays.asList(LineType.NORTHERN, LineType.JUBILEE )); result.put("Loughton", Arrays.asList(LineType.CENTRAL )); result.put("Maida Vale", Arrays.asList(LineType.BAKERLOO )); result.put("Manor House", Arrays.asList(LineType.PICACIDILY )); result.put("Mansion House", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Marble Arch", Arrays.asList(LineType.CENTRAL )); result.put("Marylebone", Arrays.asList(LineType.BAKERLOO )); result.put("Mile End", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH, LineType.CENTRAL )); result.put("Mill Hill East", Arrays.asList(LineType.NORTHERN )); result.put("Monument", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Moorgate", Arrays.asList(LineType.METROPOLITAN, LineType.NORTHERN, LineType.CIRCLE, LineType.HAMMERSMITH )); result.put("Moor Park", Arrays.asList(LineType.METROPOLITAN )); result.put("Morden", Arrays.asList(LineType.NORTHERN )); result.put("Mornington Crescent", Arrays.asList(LineType.NORTHERN )); result.put("Neasden", Arrays.asList(LineType.JUBILEE )); result.put("Newbury Park", Arrays.asList(LineType.CENTRAL)); result.put("North Acton", Arrays.asList(LineType.CENTRAL )); result.put("North Ealing", Arrays.asList(LineType.PICACIDILY )); result.put("North Greenwich", Arrays.asList(LineType.JUBILEE )); result.put("North Harrow", Arrays.asList(LineType.METROPOLITAN )); result.put("North Wembley", Arrays.asList(LineType.BAKERLOO )); result.put("Northfields", Arrays.asList(LineType.PICACIDILY )); result.put("Northolt", Arrays.asList(LineType.CENTRAL )); result.put("Northwick Park", Arrays.asList(LineType.METROPOLITAN )); result.put("Northwood", Arrays.asList(LineType.METROPOLITAN )); result.put("Northwood Hills", Arrays.asList(LineType.METROPOLITAN )); result.put("Notting Hill Gate", Arrays.asList(LineType.DISTRICT, LineType.CENTRAL, LineType.CIRCLE )); result.put("Oakwood", Arrays.asList(LineType.PICACIDILY )); result.put("Old Street", Arrays.asList(LineType.NORTHERN )); result.put("Osterley", Arrays.asList(LineType.PICACIDILY )); result.put("Oval", Arrays.asList(LineType.NORTHERN )); result.put("Oxford Circus", Arrays.asList(LineType.CENTRAL, LineType.BAKERLOO, LineType.VICTORIA )); result.put("Paddington", Arrays.asList(LineType.HAMMERSMITH, LineType.DISTRICT, LineType.CIRCLE, LineType.BAKERLOO )); result.put("Park Royal", Arrays.asList(LineType.PICACIDILY )); result.put("Parsons Green", Arrays.asList(LineType.DISTRICT )); result.put("Perivale", Arrays.asList(LineType.CENTRAL )); result.put("Piccadilly Circus", Arrays.asList(LineType.BAKERLOO, LineType.PICACIDILY )); result.put("Pimlico", Arrays.asList(LineType.VICTORIA )); result.put("Pinner", Arrays.asList(LineType.METROPOLITAN )); result.put("Plaistow", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Preston Road", Arrays.asList(LineType.METROPOLITAN )); result.put("Putney Bridge", Arrays.asList(LineType.DISTRICT )); result.put("Queen's Park", Arrays.asList(LineType.BAKERLOO )); result.put("Queensbury", Arrays.asList(LineType.JUBILEE )); result.put("Queensway", Arrays.asList(LineType.CENTRAL )); result.put("Ravenscourt Park", Arrays.asList(LineType.DISTRICT )); result.put("Rayners Lane", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Redbridge", Arrays.asList(LineType.CENTRAL )); result.put("Regent's Park", Arrays.asList(LineType.BAKERLOO )); result.put("Richmond", Arrays.asList(LineType.DISTRICT )); result.put("Rickmansworth", Arrays.asList(LineType.METROPOLITAN )); result.put("Roding Valley", Arrays.asList(LineType.CENTRAL )); result.put("Royal Oak", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Ruislip", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Ruislip Gardens", Arrays.asList(LineType.CENTRAL )); result.put("Ruislip Manor", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Russel Square", Arrays.asList(LineType.PICACIDILY )); result.put("St. James's Park", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("St. John's Wood", Arrays.asList(LineType.JUBILEE )); result.put("St. Paul's", Arrays.asList(LineType.CENTRAL )); result.put("Seven Sisters", Arrays.asList(LineType.VICTORIA )); result.put("Shepherd's Bush", Arrays.asList(LineType.CENTRAL )); result.put("Shepherd's Bush Market", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Sloane Square", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Snaresbrook", Arrays.asList(LineType.CENTRAL )); result.put("South Ealing", Arrays.asList(LineType.PICACIDILY )); result.put("South Harrow", Arrays.asList(LineType.PICACIDILY )); result.put("South Kensington", Arrays.asList(LineType.PICACIDILY, LineType.DISTRICT, LineType.CIRCLE)); result.put("South Kenton", Arrays.asList(LineType.BAKERLOO )); result.put("South Ruislip", Arrays.asList(LineType.CENTRAL )); result.put("South Wimbledon", Arrays.asList(LineType.NORTHERN )); result.put("South Woodford", Arrays.asList(LineType.CENTRAL )); result.put("Southfields", Arrays.asList(LineType.DISTRICT )); result.put("Southgate", Arrays.asList(LineType.PICACIDILY )); result.put("Southwark", Arrays.asList(LineType.JUBILEE )); result.put("Stamford Brook", Arrays.asList(LineType.HAMMERSMITH )); result.put("Stanmore", Arrays.asList(LineType.JUBILEE )); result.put("Stepney Green", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Stockwell", Arrays.asList(LineType.VICTORIA, LineType.NORTHERN )); result.put("Stonebridge Park", Arrays.asList(LineType.BAKERLOO )); result.put("Stratford", Arrays.asList(LineType.CENTRAL, LineType.JUBILEE )); result.put("Sudbury Kill", Arrays.asList(LineType.PICACIDILY )); result.put("Sudbury Town", Arrays.asList(LineType.PICACIDILY )); result.put("Swiss Cottage", Arrays.asList(LineType.JUBILEE )); result.put("Temple", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Theydon Bois", Arrays.asList(LineType.CENTRAL )); result.put("Tooting Bec", Arrays.asList(LineType.NORTHERN )); result.put("Tooting Broadway", Arrays.asList(LineType.NORTHERN )); result.put("Tottenham Court Road", Arrays.asList(LineType.CENTRAL, LineType.NORTHERN )); result.put("Tottenham Hale", Arrays.asList(LineType.VICTORIA )); result.put("Totteridge & Whetstone", Arrays.asList(LineType.NORTHERN )); result.put("Tower Hill", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE )); result.put("Tufnell Park", Arrays.asList(LineType.NORTHERN )); result.put("Turnham Green", Arrays.asList(LineType.DISTRICT, LineType.PICACIDILY )); result.put("Turnpike Lane", Arrays.asList(LineType.PICACIDILY )); result.put("Upminster", Arrays.asList(LineType.DISTRICT )); result.put("Upminster Bridge", Arrays.asList(LineType.DISTRICT )); result.put("Upney", Arrays.asList(LineType.DISTRICT )); result.put("Upton Park", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Uxbridge", Arrays.asList(LineType.METROPOLITAN, LineType.PICACIDILY )); result.put("Vauxhall", Arrays.asList(LineType.VICTORIA )); result.put("Victoria", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE, LineType.VICTORIA )); result.put("Walthamstow Central", Arrays.asList(LineType.VICTORIA )); result.put("Wanstead", Arrays.asList(LineType.CENTRAL )); result.put("Warren Street", Arrays.asList(LineType.NORTHERN, LineType.VICTORIA )); result.put("Warwick Avenue", Arrays.asList(LineType.BAKERLOO )); result.put("Waterloo", Arrays.asList(LineType.WATERLOO, LineType.BAKERLOO, LineType.NORTHERN, LineType.JUBILEE )); result.put("Watford", Arrays.asList(LineType.METROPOLITAN )); result.put("Wembley Central", Arrays.asList(LineType.BAKERLOO )); result.put("Wembley Park", Arrays.asList(LineType.METROPOLITAN, LineType.JUBILEE )); result.put("West Acton", Arrays.asList(LineType.CENTRAL )); result.put("West Brompton", Arrays.asList(LineType.DISTRICT )); result.put("West Finchley", Arrays.asList(LineType.NORTHERN )); result.put("West Ham", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH, LineType.JUBILEE )); result.put("West Hampstead", Arrays.asList(LineType.JUBILEE )); result.put("West Harrow", Arrays.asList(LineType.METROPOLITAN )); result.put("West Kensington", Arrays.asList(LineType.DISTRICT )); result.put("West Ruislip", Arrays.asList(LineType.CENTRAL )); result.put("Westbourne Park", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Westminster", Arrays.asList(LineType.DISTRICT, LineType.CIRCLE, LineType.JUBILEE )); result.put("White City", Arrays.asList(LineType.CENTRAL )); result.put("Whitechapel", Arrays.asList(LineType.DISTRICT, LineType.HAMMERSMITH )); result.put("Willesden Grenn", Arrays.asList(LineType.JUBILEE )); result.put("Willesden Junction", Arrays.asList(LineType.BAKERLOO )); result.put("Wimbledon", Arrays.asList(LineType.DISTRICT )); result.put("Wimbledon Park", Arrays.asList(LineType.DISTRICT )); result.put("Wood Green", Arrays.asList(LineType.PICACIDILY )); result.put("Wood Lane", Arrays.asList(LineType.HAMMERSMITH, LineType.CIRCLE )); result.put("Woodford", Arrays.asList(LineType.CENTRAL )); result.put("Woodside Park", Arrays.asList(LineType.NORTHERN )); stationLinesWikipedia=result; return result; } public static List<LineType> FetchLinesForStationWikipedia(String station) { List<LineType> result= new ArrayList<LineType>(); HashMap<String,List<LineType>> all=getStationLinesWikipedia(); if (all.containsKey(station)) result=all.get(station); return result; } }