Skip to content
Snippets Groups Projects
Select Git revision
  • 0784c6fd276be450d7a66c2a189480c49ebd2676
  • master default protected
  • revert-d81c9d6d
3 results

ShapeReader.java

Blame
  • Forked from MANSOUR Chadi / graphic-2020-TP5
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ShapeReader.java 1.18 KiB
    package serializer;
    
    import shape.Circle;
    import shape.Shape;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class ShapeReader {
    
        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;
            }
        }
    }