import java.util.*;

public class Maze
{
    public Maze ()
    {
        
    }
}
@@ -12,16 +12,34 @@
 .util.*;
+%0Aimport java.io.*;
 %0A%0Apublic
@@ -69,16 +69,27 @@
 c Maze (
+String data
 )%0A    %7B%0A
@@ -100,12 +100,1568 @@
     
-%0A    %7D
+if (!loadData(data))%0A            System.out.println(%22Error in loading data file: %22+data);%0A    %7D%0A%0A    private final boolean loadData (String file)%0A    %7B%0A        BufferedReader reader = null;%0A        boolean valid = true;%0A%0A        try%0A        %7B%0A            reader = new BufferedReader(new FileReader(file));%0A            String line = null;%0A%0A            while ((line = reader.readLine()) != null)%0A            %7B%0A                char%5B%5D asChar = line.toCharArray();  // all lines are the same length%0A                %0A                if (_width == 0)%0A                    _width = asChar.length;%0A%0A                for (int i = 0; i %3C _width; i++)%0A                %7B%0A                    switch (asChar%5Bi%5D)%0A                    %7B%0A                        case TileId.WALL:%0A                        case TileId.SPACE:%0A                        case TileId.PASSAGE:%0A                            _theMaze.add(new Tile(new Coordinate(i, _height), asChar%5Bi%5D));%0A                        default:%0A                            _theMaze.add(new Tile(new Coordinate(i, _height), TileId.SPACE));%0A                    %7D%0A                %7D%0A%0A                _height++;%0A            %7D%0A        %7D%0A        catch (Throwable ex)%0A        %7B%0A            valid = false;%0A%0A            ex.printStackTrace();%0A        %7D%0A        finally%0A        %7B%0A            try%0A            %7B%0A                reader.close();%0A            %7D%0A            catch (Throwable ex)%0A            %7B%0A            %7D%0A        %7D%0A%0A        return valid;%0A    %7D%0A%0A    private Vector%3CTile%3E _theMaze;%0A    private int _height = 0;%0A    private int _width = 0;
 %0A%7D

Update Maze.java