1 /*
2 * SymmetricDS is an open source database synchronization solution.
3 *
4 * Copyright (C) Eric Long <erilong@users.sourceforge.net>,
5 * Chris Henson <chenson42@users.sourceforge.net>
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 3 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, see
19 * <http://www.gnu.org/licenses/>.
20 */
21
22 package org.jumpmind.symmetric.load;
23
24 import java.io.BufferedReader;
25 import java.io.IOException;
26 import java.util.List;
27 import java.util.Map;
28
29 import org.springframework.transaction.annotation.Transactional;
30
31 public interface IDataLoader extends Cloneable {
32
33 public void open(BufferedReader in) throws IOException;
34
35 public void open(BufferedReader in, List<IDataLoaderFilter> filters, Map<String, IColumnFilter> columnFilters)
36 throws IOException;
37
38 public boolean hasNext() throws IOException;
39
40 @Transactional
41 public void load() throws IOException;
42
43 public void skip() throws IOException;
44
45 public void close();
46
47 public IDataLoader clone();
48
49 public IDataLoaderContext getContext();
50
51 public IDataLoaderStatistics getStatistics();
52
53 }