Newer
Older
import java.util.ArrayList;
import java.util.HashMap;
private static final Map<String, ShapeSerializer<?>> serializers = new HashMap<>();
static {
serializers.put("circle", new CircleSerializer());
serializers.put("rectangle", new RectangleSerializer());
}
public static List<Shape> read(File file) throws IOException {
List<Shape> shapes = new ArrayList<>();
try(BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
String line ;
while ((line = bufferedReader.readLine()) != null) {
String[] parts = line.split(" ",2);
String code = parts[0];
String data = parts[1];
ShapeSerializer<?> serializer = serializers.get(code);
if (serializer != null) {
Shape shape = serializer.unserialize(data);
shapes.add(shape);
}
}
return shapes;
}