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: /** A way to associate (quite bidirectionally) local and global document pointers.
25: *
26: * <p>A {@link it.unimi.dsi.mg4j.index.cluster.DocumentalCluster} needs a way to turn
27: * {@linkplain #globalPointer(int, int) local document pointer into global pointers},
28: * but also {@linkplain #localPointer(int) global pointers into local pointers} (for skipping).
29: *
30: * @see it.unimi.dsi.mg4j.index.cluster.DocumentalPartitioningStrategy
31: * @author Alessandro Arrabito
32: * @author Sebastiano Vigna
33: */
34:
35: public interface DocumentalClusteringStrategy extends
36: ClusteringStrategy {
37:
38: /** Returns the global document pointer given a local index and a local document pointer.
39: *
40: * @param localIndex the local index.
41: * @param localPointer the local document pointer in <code>localIndex</code>.
42: * @return the global document pointer.
43: */
44: int globalPointer(int localIndex, int localPointer);
45:
46: /** Returns the local document pointer corresponding to a global document pointer.
47: *
48: * @param globalPointer a global document pointer.
49: * @return the corresponding local document pointer.
50: */
51: int localPointer(int globalPointer);
52:
53: /** Returns the number of documents that will be assigned to the given local index.
54: *
55: * @param localIndex the local index.
56: * @return the number of documents that will be assigned to <code>localIndex</code>.
57: */
58: int numberOfDocuments(int localIndex);
59: }
|