|
From: <de...@us...> - 2003-07-04 12:41:23
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/fichiers
In directory sc8-pr-cvs1:/tmp/cvs-serv16548
Added Files:
FileFormat.java FileOpReadCharSimpleAbstract.java
FileOpWriterCharSimpleAbstract.java FileOperationAbstract.java
FileOperationInterface.java FileOperationSynthese.java
Log Message:
Nouvelles classes gerant les io
--- NEW FILE: FileFormat.java ---
/*
* @file FileFormat.java
* @creation 12 mars 2003
* @modification $Date: 2003/07/04 12:41:19 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.fichiers;
import java.io.File;
import com.memoire.bu.BuInformationsSoftware;
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.commun.ProgressionInterface;
/**
*
* @author deniger
* @version $Id: FileFormat.java,v 1.1 2003/07/04 12:41:19 deniger Exp $
*/
public abstract class FileFormat
{
public static final int MODE_ASCII = 0;
public static final int MODE_BINAIRE = 1;
//Le nombre de fichiers demandé par ce format.
private int nbFile_;
protected String[] extensions_;
protected String nom_;
protected String ID_;
protected String version_;
protected String description_;
protected int mode_;
protected BuInformationsSoftware software_;
public FileFormat(int _nbFile)
{
if (_nbFile < 1)
throw new IllegalArgumentException("Nombre de fichier strictement positif");
nbFile_ = _nbFile;
}
/**
* Returns the description.
* @return String
*/
public String getDescription()
{
return description_;
}
public String getID()
{
return ID_;
}
/**
* Returns the extensions.
* @return String[]
*/
public String[] getExtensions()
{
return extensions_;
}
/**
* Returns the mode.
* @return int
*/
public int getMode()
{
return mode_;
}
/**
* Returns the nbFile.
* @return int
*/
public final int getNbFile()
{
return nbFile_;
}
/**
* Returns the nom.
* @return String
*/
public String getName()
{
return nom_;
}
/**
* Returns the software.
* @return BuInformationsSoftware
*/
public BuInformationsSoftware getSoftware()
{
return software_;
}
/**
* Renvoie a partir du nombre de fichier et des extensions du format les fichiers
* correspondants (si le nombre de fichier est 1, fichier donne est renvoye).
*
* @return un tableau de taille getNbFile() avec les fichiers existants
* et correspondant aux extensions.
*/
public final File[] getFile(File _fInit)
{
File[] r = new File[nbFile_];
if (_fInit == null)
return r;
if (nbFile_ == 1)
return new File[] { _fInit };
String base = DodicoLib.getSansExtension(_fInit.getAbsolutePath());
for (int i = 0; i < nbFile_; i++)
{
r[i] = new File(base + "." + extensions_[i]);
}
return r;
}
public static void initOperation(
FileOperationSynthese _synt,
FileOperationInterface _op,
ProgressionInterface _progress,
File _f)
{
_op.setProgressReceiver(_progress);
_op.setFile(_f);
_synt.setMainFile(_f);
}
public static FileOperationSynthese initOperation(
FileOperationInterface _op,
ProgressionInterface _progress,
File _f)
{
FileOperationSynthese r = new FileOperationSynthese();
initOperation(r,_op,_progress,_f);
return r;
}
/**
* Methode generale permettant de lire le fichier _f et renvoie une structure
* donnant la synthese (resultat, erreur) de la lecture.
* @param _progress l'etat d'avancement de la lecture.
*/
// public final FileOperationSynthese read(File _f, ProgressionInterface _progress)
// {
// FileReaderInterface r = createReader();
// IOException[] exs = read(_f, r, _progress);
// return new FileOperationSynthese(_f, r, exs);
// }
/**
* Permet de le lire le fichier <code>_f</code>.
* @return les exceptions levees lors de la fermeture du flux.
*/
// public final IOException[] read(File _f, FileReaderInterface _r, ProgressionInterface _progress)
// {
// if (getNbFile() == 1)
// {
// _r.setFile(_f);
// _r.setProgressReceiver(_progress);
// _r.read();
// return _r.close();
// }
// else
// return read(getFile(_f), _r, _progress);
// }
//
// public static final IOException[] readFile(File _f, FileReaderInterface _reader, ProgressionInterface _progress)
// {
// _reader.setFile(_f);
// _reader.setProgressReceiver(_progress);
// _reader.read();
// return _reader.close();
// }
//
// public static final IOException[] readFile(File[] _f, FileReaderInterface _reader, ProgressionInterface _progress)
// {
// _reader.setFile(_f);
// _reader.setProgressReceiver(_progress);
// _reader.read();
// return _reader.close();
// }
//
// public final FileOperationSynthese read(File[] _f)
// {
// return read(_f, null);
// }
//
// public final IOException[] read(File[] _f, FileReaderInterface _r, ProgressionInterface _progress)
// {
// int l = _f.length;
// if (l != getNbFile())
// throw new IllegalArgumentException("Le nombre de fichier donne " + l + DodicoLib.LINE_SEP + "Nb Fichier attendu " + getNbFile());
// _r.setFile(_f);
// _r.setProgressReceiver(_progress);
// _r.read();
// return _r.close();
//
// }
//
//
// public final FileOperationSynthese read(File[] _f, ProgressionInterface _progress)
// {
// FileReaderInterface r = createReader();
// IOException[] exs = read(_f, r, _progress);
// return new FileOperationSynthese(_f, r, exs);
// }
//
// public final FileOperationSynthese write(File _f, Object _interface, ProgressionInterface _progress)
// {
// if (getNbFile() == 1)
// {
// FileWriterInterface r = createWriter();
// r.setFile(_f);
// r.setInterface(_interface);
// r.setProgressReceiver(_progress);
// r.write();
// IOException[] exs = r.close();
// return new FileOperationSynthese(_f, r, exs);
// }
// else
// return write(getFile(_f), _interface, _progress);
// }
//
// public final FileOperationSynthese write(File[] _f, Object _interface)
// {
// return write(_f, _interface, null);
// }
//
// public final FileOperationSynthese write(File[] _f, Object _interface, ProgressionInterface _progress)
// {
// int l = _f.length;
// if (l != getNbFile())
// throw new IllegalArgumentException("Le nombre de fichier donne " + l + DodicoLib.LINE_SEP + "Nb Fichier attendu " + getNbFile());
// FileWriterInterface r = createWriter();
// r.setFile(_f);
// r.setProgressReceiver(_progress);
// r.setInterface(_interface);
// r.write();
// IOException[] exs = r.close();
// return new FileOperationSynthese(_f, r, exs);
// }
//
}
--- NEW FILE: FileOpReadCharSimpleAbstract.java ---
/*
* @file TrReaderCharSimple.java
* @creation 21 mars 2003
* @modification $Date: 2003/07/04 12:41:19 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.fichiers;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import org.fudaa.dodico.commun.DodicoAnalyze;
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.fortran.FortranReader;
/**
*
* @author deniger
* @version $Id: FileOpReadCharSimpleAbstract.java,v 1.1 2003/07/04 12:41:19 deniger Exp $
*/
public abstract class FileOpReadCharSimpleAbstract
extends FileOperationAbstract
{
protected FortranReader in_;
public final void setFile(File _f)
{
FileReader r= null;
try
{
r= new FileReader(_f);
}
catch (FileNotFoundException _e)
{
//manageException(_e, analyze_);
}
if (r != null)
setFile(r);
}
public final void setFile(File[] _f)
{
setFile(_f[0]);
}
public final void setFile(Reader _r)
{
in_= new FortranReader(_r);
}
public final void close() throws IOException
{
in_.close();
}
protected void addAnalyzeLigneLue(DodicoAnalyze.Editor _analyze)
{
_analyze.addInfo(DodicoLib.geti18n("Ligne lue") + ": " + in_.getLine(), in_);
}
}
--- NEW FILE: FileOpWriterCharSimpleAbstract.java ---
/*
* @file TrWriterCharSimpleAbstract.java
* @creation 21 mars 2003
* @modification $Date: 2003/07/04 12:41:19 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.fichiers;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.fortran.FortranLib;
/**
*
* @author deniger
* @version $Id: FileOpWriterCharSimpleAbstract.java,v 1.1 2003/07/04 12:41:19 deniger Exp $
*/
public abstract class FileOpWriterCharSimpleAbstract extends FileOperationAbstract
{
protected String lineSep_;
protected Writer out_;
public FileOpWriterCharSimpleAbstract()
{
lineSep_ = DodicoLib.LINE_SEP;
}
public void writeln() throws IOException
{
out_.write(lineSep_);
}
public void writeln(StringBuffer _b) throws IOException
{
write(_b.append(lineSep_));
}
public void write(StringBuffer _b) throws IOException
{
out_.write(_b.toString());
_b.setLength(0);
}
public void writeln(String _b) throws IOException
{
write(_b + lineSep_);
}
public void write(String _b) throws IOException
{
out_.write(_b);
}
/**
* Renvoie le separateur de ligne.
* @return separateur de ligne
*/
public final String getLineSeparator()
{
return lineSep_;
}
/**
* Modifie le separateur de ligne.
* @param lineSep The lineSep to set
*/
public final void setLineSeparator(String lineSep)
{
lineSep_ = lineSep;
}
public final void setFile(File _f)
{
FileWriter out = null;
try
{
out = new FileWriter(_f);
}
catch (IOException _e)
{
// manageException(_e, analyze_);
}
if (out != null)
setFile(out);
}
public final void setFile(File[] _f)
{
setFile(_f[0]);
}
public final void setFile(Writer _f)
{
out_ = _f;
}
public final void close() throws IOException
{
out_.close();
}
}
--- NEW FILE: FileOperationAbstract.java ---
/*
* @file FileOperationAbstract.java
* @creation 8 juin 2003
* @modification $Date: 2003/07/04 12:41:19 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.fichiers;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.fudaa.dodico.commun.DodicoAnalyze;
import org.fudaa.dodico.commun.ProgressionInterface;
/**
* @author fred deniger
* @version $Id: FileOperationAbstract.java,v 1.1 2003/07/04 12:41:19 deniger Exp $
*
*/
public abstract class FileOperationAbstract implements FileOperationInterface
{
protected ProgressionInterface progress_;
public ProgressionInterface getProgressReceiver()
{
return progress_;
}
public void setProgressReceiver(ProgressionInterface _progressReceiver)
{
progress_= _progressReceiver;
}
protected final DodicoAnalyze.Editor[] initAnalyze(int _nb)
{
DodicoAnalyze.Editor[] analyze_= new DodicoAnalyze.Editor[_nb];
for (int i= _nb - 1; i >= 0; i--)
{
analyze_[i]= new DodicoAnalyze.Editor();
}
return analyze_;
}
public static final FileReader initFileReader(File _f)
{
FileReader r= null;
try
{
r= new FileReader(_f);
}
catch (FileNotFoundException _e)
{
//manageException(_e, analyze_[_i]);
}
return r;
}
public static final FileWriter initFileWriter(File _f)
{
FileWriter r= null;
try
{
r= new FileWriter(_f);
}
catch (IOException _e)
{
//manageException(_e, analyze_[_i]);
}
return r;
}
}
--- NEW FILE: FileOperationInterface.java ---
/*
* @file FileInterface.java
* @creation 6 juin 2003
* @modification $Date: 2003/07/04 12:41:19 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.fichiers;
import java.io.File;
import org.fudaa.dodico.commun.ProgressionInterface;
import org.fudaa.dodico.fortran.FortranInterface;
/**
* @author deniger
* @version $Id: FileOperationInterface.java,v 1.1 2003/07/04 12:41:19 deniger Exp $
*/
public interface FileOperationInterface extends FortranInterface
{
public ProgressionInterface getProgressReceiver();
public void setProgressReceiver(ProgressionInterface progressReceiver);
public void setFile(File _f);
public FileFormat getFileFormat();
}
--- NEW FILE: FileOperationSynthese.java ---
/*
* @file TrFileReadView.java
* @creation 12 mars 2003
* @modification $Date: 2003/07/04 12:41:19 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.fichiers;
import java.io.File;
import org.fudaa.dodico.commun.DodicoAnalyze;
import org.fudaa.dodico.fortran.FortranLib;
/**
*
* @author deniger
* @version $Id: FileOperationSynthese.java,v 1.1 2003/07/04 12:41:19 deniger Exp $
*/
public class FileOperationSynthese
{
private File[] files_;
private File mainFile_;
private String exClose_;
private DodicoAnalyze analyze_;
FileOperationInterface fileOp_;
private String desc_;
private long opTime_;
/**
*
*/
public final String getDesc()
{
return desc_;
}
/**
*
*/
public final void setDesc(String _string)
{
desc_= _string;
}
/**
*
*/
public long getOpTime()
{
return opTime_;
}
/**
*
*/
public void setOpTime(long _l)
{
opTime_= _l;
}
public void initOpTime()
{
opTime_= System.currentTimeMillis();
}
public FileOperationSynthese()
{
}
public void setRessource(File[] _f)
{
files_=_f;
}
public static void initAndClose(
FileOperationSynthese _opResults,
DodicoAnalyze.Editor _analyze,
FileOperationInterface _op,
String _desc)
{
_opResults.setAnalyze(_analyze.toAnalyze());
_opResults.setFileOp(_op);
_opResults.setOpTime(System.currentTimeMillis());
_opResults.setDesc(_desc);
_opResults.setExClose(FortranLib.closeState(_op));
}
public DodicoAnalyze getAnalyze()
{
return analyze_;
}
public String getClosingException()
{
return exClose_;
}
public boolean containsFatalError()
{
return ((analyze_ != null) && (analyze_.containsFatalError()));
}
public boolean containsClosingError()
{
return exClose_ != null;
}
/**
*
*/
public boolean containsMessages()
{
return analyze_ != null;
}
/**
*
*/
public String getExClose()
{
return exClose_;
}
/**
*
*/
public File getFile()
{
return mainFile_;
}
/**
*
*/
public FileOperationInterface getFileOp()
{
return fileOp_;
}
/**
*
*/
public void setAnalyze(DodicoAnalyze _analyze)
{
analyze_= _analyze;
}
/**
*
*/
public void setExClose(String _exception)
{
exClose_= _exception;
}
/**
*
*/
public void setFileOp(FileOperationInterface _interface)
{
fileOp_= _interface;
}
/**
* @return
*/
public File[] getFiles()
{
return files_;
}
/**
* @return
*/
public File getMainFile()
{
return mainFile_;
}
/**
* @param _files
*/
public void setFiles(File[] _files)
{
files_= _files;
}
/**
* @param _file
*/
public void setMainFile(File _file)
{
mainFile_= _file;
}
}
|