package com.papagiannis.tuberun;
import java.util.ArrayList;
public enum LineType
{
ALL,
PICACIDILY,
METROPOLITAN,
DISTRICT,
HAMMERSMITH,
CIRCLE,
NORTHERN,
DLR,
OVERGROUND,
JUBILEE,
VICTORIA,
BAKERLOO,
WATERLOO,
CENTRAL,
BUSES,
RAIL;
private static Iterable<LineType> allTube() {
ArrayList<LineType> res=new ArrayList<LineType>();
res.add(LineType.PICACIDILY);
res.add(LineType.CENTRAL);
res.add(LineType.METROPOLITAN);
res.add(LineType.DISTRICT);
res.add(LineType.CIRCLE);
res.add(LineType.HAMMERSMITH);
res.add(LineType.NORTHERN);
res.add(LineType.JUBILEE);
res.add(LineType.VICTORIA);
res.add(LineType.BAKERLOO);
res.add(LineType.WATERLOO);
return res;
}
public static Iterable<LineType> allStatuses() {
ArrayList<LineType> res= (ArrayList<LineType>) allTube();
res.add(LineType.OVERGROUND);
res.add(LineType.DLR);
return res;
}
public static Iterable<LineType> allDepartures() {
ArrayList<LineType> res=(ArrayList<LineType>)allTube();
res.add(0,LineType.BUSES);
res.add(1,LineType.DLR);
return res;
}
public static Iterable<LineType> allMaps() {
ArrayList<LineType> res=new ArrayList<LineType>();
res.add(LineType.ALL);
res.addAll((ArrayList<LineType>)allTube());
return res;
}
public static LineType fromString(String name) {
LineType ln = LineType.ALL;
if (name.equalsIgnoreCase("bakerloo"))
ln = LineType.BAKERLOO;
else if (name.equalsIgnoreCase("central"))
ln = LineType.CENTRAL;
else if (name.equalsIgnoreCase("circle"))
ln = LineType.CIRCLE;
else if (name.equalsIgnoreCase("district"))
ln = LineType.DISTRICT;
else if (name.equalsIgnoreCase("hammersmithandcity") || name.equalsIgnoreCase("hammersmith"))
ln = LineType.HAMMERSMITH;
else if (name.equalsIgnoreCase("jubilee"))
ln = LineType.JUBILEE;
else if (name.equalsIgnoreCase("metropolitan"))
ln = LineType.METROPOLITAN;
else if (name.equalsIgnoreCase("northern"))
ln = LineType.NORTHERN;
else if (name.equalsIgnoreCase("piccadilly") || name.equalsIgnoreCase("piccadily"))
ln = LineType.PICACIDILY;
else if (name.equalsIgnoreCase("victoria"))
ln = LineType.VICTORIA;
else if (name.equalsIgnoreCase("waterlooandcity"))
ln = LineType.WATERLOO;
else if (name.equalsIgnoreCase("dlr"))
ln = LineType.DLR;
else if (name.equalsIgnoreCase("overground"))
ln = LineType.OVERGROUND;
else if (name.equalsIgnoreCase("rail"))
ln = LineType.RAIL;
return ln;
}
}