/* * Grid2DSquareCellDoubleFileFactory.java * * Created on 01 February 2002, 11:46 */ package uk.ac.leeds.ccg.cluster.grids; import java.io.*; /** * * @author andyt */ public class Grid2DSquareCellDoubleFileFactory extends AbstractGrid2DSquareCellDoubleFactory { /** * For storing what directory to store data in */ String dataDirectory; /** Creates new Grid2DSquareCellDoubleFileFactory. */ public Grid2DSquareCellDoubleFileFactory() { this(System.getProperty("java.io.tmpdir")); } /** Creates new Grid2DSquareCellDoubleFileFactory. */ public Grid2DSquareCellDoubleFileFactory(String dataDirectory) { setDataDirectory(dataDirectory); } /** * Returns dataDirectory */ public String getDataDirectory() {return this.dataDirectory;} /** * Sets dataDirectory */ public void setDataDirectory(String dataDirectory) {this.dataDirectory = dataDirectory;} /** * Creates a Grid2DSquareCellDoubleFile and returns it as an Abstract2DGrid2DSquareCellDouble */ public AbstractGrid2DSquareCellDouble createGrid2DSquareCellDouble(int nrows,int ncols,double xllcorner,double yllcorner,double cellsize,double noDataValue) { boolean isNewFile = false; String filename = new String(getDataDirectory()+"f"+System.currentTimeMillis()); File file = new File(filename); try { if (file.exists()) { while (!isNewFile) { filename = getDataDirectory()+"f"+System.currentTimeMillis(); file = new File(filename); if (!file.exists()) { file.createNewFile(); isNewFile = true; } } } else { file.createNewFile(); } // Set to delete on exiting the Java Virtual Machine file.deleteOnExit(); } catch (java.io.IOException ioe1) { System.out.println(ioe1+" in Grid2DSquareCellDoubleFileFactory createGrid2DSquareCellDouble(ncols("+ncols+"),nrows("+nrows+"),xllcorner("+xllcorner+"),yllcorner("+yllcorner+"),cellsize("+cellsize+"),noDataValue("+noDataValue+"))"); System.exit(0); } return new Grid2DSquareCellDoubleFile(file,nrows,ncols,xllcorner,yllcorner,cellsize,noDataValue); } public String toString() { return "Grid2DSquareCellDoubleFileFactory"; } }