1 /* 2 * This file is a part of CAST project. 3 * (c) Copyright 2007, AGH University of Science & Technology 4 * https://caribou.iisg.agh.edu.pl/trac/cast 5 * 6 * Licensed under the Eclipse Public License, Version 1.0 (the "License"). 7 * You may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * http://www.eclipse.org/legal/epl-v10.html 10 */ 11 /* 12 * File: IDataImporter.java 13 * Created: 2007-00-00 14 * Author: entrop 15 * $Id: IDataImporter.java 2256 2009-01-07 16:23:10Z bmilos $ 16 */ 17 18 package pl.edu.agh.cast.data.importer.data; 19 20 import java.io.IOException; 21 import java.io.InputStream; 22 import java.nio.charset.Charset; 23 import java.util.Map; 24 25 import pl.edu.agh.cast.rawdata.TabularData; 26 27 /** 28 * Interface for all data importer classes. 29 * 30 * @author AGH CAST Team 31 */ 32 public interface IDataImporter { 33 /** 34 * Transforms the data provided in dataInputStream into TabularData. 35 * 36 * @param dataIS 37 * The data input stream to be transformed 38 * @param rowsLimit 39 * Maximum number of rows which would be imported 40 * @param options 41 * Options passed to data importer 42 * @param charset 43 * Encoding of data contained in input stream 44 * @return Transformed data. 45 * @throws IOException 46 */ 47 public TabularData readData(InputStream dataIS, long rowsLimit, Map<String, String> options, Charset charset) 48 throws IOException; 49 50 /** 51 * Retrieves the importer options. 52 * 53 * @return importer options. 54 */ 55 public Map<String, String> getOptions(); 56 57 /** 58 * Validate if importer is good. 59 * 60 * @param dataIs 61 * The data input stream to be transformed 62 * @param options 63 * Options passed to data importer 64 * @return <code>true</code> is the importer is valid; <code>false</code> otherwise 65 */ 66 public boolean validate(InputStream dataIs, Map<String, String> options); 67 }