public I_DataSet processLinkFile(String path)
    {
	// The input file is of the general form:
	//
	// < File path 1> 
	// ...
	// < File path n>
	//
	// The file paths lead to other files that contain the raw,
	// space separated data.

	DataSet dataSet = new DataSet(path.replace("\\", "_"),0);

	// Now read each line of the file one by one.

	//Firstly try to create the file
	File file = new File(path);

	//if the file exists
	if(file.exists())
	{
	    // Variables used to store the line of the being read
	    // using the input stream, and an array list to store the input
	    // patterns into.
	    String line = "";

	    // Read the file and display it line by line. 
	    BufferedReader in = null;

	    try
	    {
		//open stream to file
		in = new BufferedReader(new FileReader(file));

		try
		{   
		    while ((line = in.readLine()) != null)
		    {
			if(Common.fileExist(line))
			    dataSet.addRow(this.processPatternFile(line));
		    }
		}
		catch(IOException e){return null;}
		finally{in.close();}
	    }
	    catch (FileNotFoundException e) { return null; }
	    catch (IOException e) { return null; }
	}
	else{ return null; }

	// causes data set to validate itself.
	if(dataSet.validated())
	    return dataSet;
	else return null;
    }