01: package it.unimi.dsi.mg4j.index.cluster;
02:
03: /*
04: * MG4J: Managing Gigabytes for Java
05: *
06: * Copyright (C) 2006-2007 Sebastiano Vigna
07: *
08: * This library is free software; you can redistribute it and/or modify it
09: * under the terms of the GNU Lesser General Public License as published by the Free
10: * Software Foundation; either version 2.1 of the License, or (at your option)
11: * any later version.
12: *
13: * This library is distributed in the hope that it will be useful, but
14: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16: * for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public License
19: * along with this program; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21: *
22: */
23:
24: import it.unimi.dsi.mg4j.index.AbstractIndexReader;
25: import it.unimi.dsi.mg4j.index.IndexReader;
26:
27: import java.io.IOException;
28:
29: /** An abstract implementation of an {@link IndexReader} for an {@link IndexCluster}. It
30: * just keeps track of one reader per local index in {@link #indexReader}.
31: * It is up to the implementing subclasses to use the readers appropriately.
32: *
33: * @author Alessandro Arrabito
34: * @author Sebastiano Vigna
35: */
36: public abstract class AbstractIndexClusterIndexReader extends
37: AbstractIndexReader {
38: /** One reader per local index. */
39: protected final IndexReader[] indexReader;
40:
41: public AbstractIndexClusterIndexReader(final IndexCluster index,
42: final int bufferSize) throws IOException {
43: indexReader = new IndexReader[index.localIndex.length];
44: for (int i = 0; i < index.localIndex.length; i++)
45: indexReader[i] = index.localIndex[i].getReader(bufferSize);
46: }
47:
48: public void close() throws IOException {
49: super .close();
50: for (int i = 0; i < indexReader.length; i++)
51: indexReader[i].close();
52: }
53: }
|