001 package org.LiveGraph.dataFile.read;
002
003 import java.util.List;
004
005
006 /**
007 * Defines an observer that is notified about parsing events of a data stream.
008 * Objects implementing this interface can be registered with a {@link DataStreamReader}
009 * which will then notify these objects whenever new information has been read from the
010 * underlying data stream.
011 *
012 * <p><strong>LiveGraph</strong> (http://www.live-graph.org).</p>
013 * <p>Copyright (c) 2007 by G. Paperin.</p>
014 * <p>File: DataStreamObserver.java</p>
015 * <p style="font-size:smaller;">Redistribution and use in source and binary forms, with or
016 * without modification, are permitted provided that the following terms and conditions are met:
017 * </p>
018 * <p style="font-size:smaller;">1. Redistributions of source code must retain the above
019 * acknowledgement of the LiveGraph project and its web-site, the above copyright notice,
020 * this list of conditions and the following disclaimer.<br />
021 * 2. Redistributions in binary form must reproduce the above acknowledgement of the
022 * LiveGraph project and its web-site, the above copyright notice, this list of conditions
023 * and the following disclaimer in the documentation and/or other materials provided with
024 * the distribution.<br />
025 * 3. All advertising materials mentioning features or use of this software or any derived
026 * software must display the following acknowledgement:<br />
027 * <em>This product includes software developed by the LiveGraph project and its
028 * contributors.<br />(http://www.live-graph.org)</em><br />
029 * 4. All advertising materials distributed in form of HTML pages or any other technology
030 * permitting active hyper-links that mention features or use of this software or any
031 * derived software must display the acknowledgment specified in condition 3 of this
032 * agreement, and in addition, include a visible and working hyper-link to the LiveGraph
033 * homepage (http://www.live-graph.org).
034 * </p>
035 * <p style="font-size:smaller;">THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
036 * OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
037 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
038 * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
039 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
040 * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
041 * </p>
042 *
043 * @author Greg Paperin (http://www.paperin.org)
044 * @version {@value org.LiveGraph.LiveGraph#version}
045 */
046 public interface DataStreamObserver {
047
048 /**
049 * Is called when a data values separator has been parsed by the data reader.
050 *
051 * @param separator The new data values separator string.
052 * @param reader The reader which produced this event.
053 */
054 public void eventSeparatorSet(String separator, DataStreamReader reader);
055
056 /**
057 * Is called when a comment line has been encontered by the data reader.
058 *
059 * @param comment The comment line.
060 * @param reader The reader which produced this event.
061 */
062 public void eventCommentLine(String comment, DataStreamReader reader);
063
064 /**
065 * Is called when a file info/description comment line has been parsed by the data reader.
066 *
067 * @param info File description/info string.
068 * @param reader The reader which produced this event.
069 */
070 public void eventFileInfoLine(String info, DataStreamReader reader);
071
072 /**
073 * Is called when data series labels have been parsed by the data reader.
074 *
075 * @param labels An <em>unmodifiable</em> list containing all parsed data series labels.
076 * @param reader The reader which produced this event.
077 */
078 public void eventLabelsSet(List<String> labels, DataStreamReader reader);
079
080 /**
081 * Is called each time a data line (data set) has been parsed by the data reader.
082 *
083 * @param dataTokens An <em>unmodifiable</em> list containing all data tokens parsed from this line.
084 * @param datasetIndex The number of this data line in the stream (i.e. dataset file index).
085 * @param reader The reader which produced this event.
086 */
087 public void eventDataLineRead(List<String> dataTokens, int datasetIndex, DataStreamReader reader);
088
089 }