Author: chatellier Date: 2010-12-20 17:57:37 +0000 (Mon, 20 Dec 2010) New Revision: 429 Log: Replace progress reader by progress stream (can be used in more context) Added: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java Removed: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressReader.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java 2010-12-17 16:45:00 UTC (rev 428) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java 2010-12-20 17:57:37 UTC (rev 429) @@ -33,6 +33,7 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; @@ -62,7 +63,7 @@ import fr.ifremer.coser.storage.DataStorage; import fr.ifremer.coser.storage.MemoryDataStorage; import fr.ifremer.coser.util.ProgressMonitor; -import fr.ifremer.coser.util.ProgressReader; +import fr.ifremer.coser.util.ProgressStream; /** * File import/export service. @@ -127,10 +128,11 @@ CSVReader csvReader = null; try { - Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), CoserConstants.CSV_FILE_ENCODING)); + InputStream stream = new FileInputStream(file); if (progress != null) { - reader = new ProgressReader(reader, progress); + stream = new ProgressStream(stream, progress); } + Reader reader = new BufferedReader(new InputStreamReader(stream, CoserConstants.CSV_FILE_ENCODING)); csvReader = new CSVReader(reader, CoserConstants.CSV_SEPARATOR_CHAR); // check header Deleted: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressReader.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressReader.java 2010-12-17 16:45:00 UTC (rev 428) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressReader.java 2010-12-20 17:57:37 UTC (rev 429) @@ -1,72 +0,0 @@ -/* - * #%L - * - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2010 Codelutin, Chatellier Eric - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package fr.ifremer.coser.util; - -import java.io.IOException; -import java.io.Reader; - -/** - * Reader that notify read progression. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class ProgressReader extends Reader { - - public Reader delegateReader; - - public ProgressMonitor delegateProgress; - - public ProgressReader(Reader delegateReader, ProgressMonitor delegateProgress) { - super(); - this.delegateReader = delegateReader; - this.delegateProgress = delegateProgress; - } - - /* - * @see java.io.Reader#read(char[], int, int) - */ - @Override - public int read(char[] cbuf, int off, int len) throws IOException { - - int nb = delegateReader.read(cbuf, off, len); - if (nb >= 0) { - delegateProgress.addCurrent(nb); - } - return nb; - } - - /* - * @see java.io.Reader#close() - */ - @Override - public void close() throws IOException { - delegateReader.close(); - } -} Added: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java (rev 0) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java 2010-12-20 17:57:37 UTC (rev 429) @@ -0,0 +1,71 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package fr.ifremer.coser.util; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Stream that notify read progression. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class ProgressStream extends InputStream { + + public InputStream delegateStream; + + public ProgressMonitor delegateProgress; + + public ProgressStream(InputStream delegateStream, ProgressMonitor delegateProgress) { + super(); + this.delegateStream = delegateStream; + this.delegateProgress = delegateProgress; + } + + /* + * @see java.io.InputStream#read() + */ + @Override + public int read() throws IOException { + int nb = delegateStream.read(); + if (nb != -1) { + delegateProgress.addCurrent(1); + } + return nb; + } + + /* + * @see java.io.Reader#close() + */ + @Override + public void close() throws IOException { + delegateStream.close(); + } +} Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL