/*
* This file or a portion of this file is licensed under the terms of
* the Globus Toolkit Public License, found in file ../GTPL, or at
* http://www.globus.org/toolkit/download/license.html. This notice must
* appear in redistributions of this file, with or without modification.
*
* Redistributions of this Software, with or without modification, must
* reproduce the GTPL in: (1) the Software, or (2) the Documentation or
* some other similar material which is provided with the Software (if
* any).
*
* Copyright 1999-2004 University of Chicago and The University of
* Southern California. All rights reserved.
*/
package org.griphyn.vdl.euryale;
import java.io.*;
/**
* This interface describes what file factories should look like.
*
* @author Kavitha Ranganathan
* @author Jens-S. Vöckler
* @author Yong Zhao
* @version $Revision$
*
* @see DAX2DAG
*/
public interface FileFactory {
/**
* Virtual constructor: Creates the next file with the given basename.
*
* @param basename is the filename to create. Don't specify dirs here.
* @return a File structure which points to the new file.
* @see #getCount()
*/
public File createFile(String basename)
throws IOException;
/**
* Virtual constructor: Creates the next file with the given basename.
*
* @param basename is the filename to create. Don't specify dirs here.
*
* @return a relative File structure (relative to the base directory)
* which points to the new file.
*
* @see #getCount()
*/
public File createRelativeFile(String basename)
throws IOException;
/**
* Returns the number of times the regular virtual constructor for
* structured entries was called.
*
* @return the count for createFile invocations.
* @see #createFile( String )
*/
public int getCount();
/**
* Virtual constructor: Creates the next file with the given basename which
* is guaranteed to be created in the base directory, and never in any
* structured directories that child classes may implement.
*
* @param basename is the filename to create. Don't specify dirs here.
* @return a File structure which points to the new file.
* @see #getFlatCount()
*/
public File createFlatFile(String basename)
throws IOException;
/**
* Returns the number of times the virtual constructor for flat files was
* called.
*
* @return the count for createFlatFile invocations.
* @see #createFlatFile( String )
*/
public int getFlatCount();
/**
* Resets the helper structures after changing layout parameters. You will
* also need to call this function after you invoked the virtual
* constructors, but want to change parameter pertaining to the directory
* structure. The file counters will also be reset!
*/
public void reset();
}