public static List< IFigure > loadFromFiles( final File file ) {
        if( file == null ) {
            throw new IllegalArgumentException( "The parameter 'file' must not be 'null'." );
        }
        final List< IFigure > figures = new ArrayList< IFigure >();

        try {
            final BufferedReader reader = new BufferedReader( new FileReader( file ) );
            String currentLine = null;
            while( (currentLine = reader.readLine()) != null ) {
                final String[] elements = currentLine.split( " " );
                if( elements[0].equals( "line" ) ) {
                    figures.add( FigureLoader.reconstructLine( elements ) );
                } else if( elements[0].equals( "circle" ) ) {
                    figures.add( FigureLoader.reconstructCircle( elements ) );
                } else if( elements[0].equals( "triangle" ) ) {
                    figures.add( FigureLoader.reconstructTriangle( elements ) );
                } else if( elements[0].equals( "polygon" ) ) {
                    figures.add( FigureLoader.reconstructPolygon( elements ) );
                } else if( elements[0].equals( "rectangle" ) ) {
                    figures.add( FigureLoader.reconstructRectangle( elements ) );
                }
            }
            reader.close();
        } catch( final FileNotFoundException ex ) {
            Logger.getLogger( FigureLoader.class.getName()).log( Level.SEVERE, null, ex );
        } catch( final IOException ex ) {
            Logger.getLogger( FigureLoader.class.getName()).log( Level.SEVERE, null, ex );
        }

        return figures;
    }